Imported Upstream version 1.2.0 30/72130/1 list upstream/1.2.0
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 31 May 2016 00:37:52 +0000 (09:37 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 31 May 2016 00:38:26 +0000 (09:38 +0900)
Change-Id: Ib0f832b1ef1191c11543c9c3d432690457fec91c
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
351 files changed:
ChangeLog
Makefile.am
Makefile.in
NEWS
aclocal.m4
build/Makefile.am
build/Makefile.in
build/autotools/Makefile.am
build/autotools/Makefile.am.enums
build/autotools/Makefile.am.gitignore
build/autotools/Makefile.am.gtest [deleted file]
build/autotools/Makefile.am.marshal
build/autotools/Makefile.am.silent [deleted file]
build/autotools/Makefile.in
build/autotools/glib-tap.mk [new file with mode: 0644]
build/autotools/glibtests.m4 [new file with mode: 0644]
build/autotools/gtk-doc.m4
build/autotools/introspection.m4
build/autotools/jh-catalog.m4 [new file with mode: 0644]
build/autotools/libtool.m4
build/autotools/ltoptions.m4
build/autotools/ltsugar.m4
build/autotools/ltversion.m4
build/autotools/lt~obsolete.m4
build/autotools/tap-driver.sh [new file with mode: 0755]
build/autotools/tap-test [new file with mode: 0755]
build/compile
build/config.guess
build/config.sub
build/depcomp
build/install-sh
build/ltmain.sh
build/missing
build/test-driver
build/win32/Makefile.am
build/win32/Makefile.in
build/win32/config.h.win32
build/win32/config.h.win32.in
build/win32/detectenv_msvc.mak [new file with mode: 0644]
build/win32/gen-file-list-jsonglib.py
build/win32/gengir_jsonglib.bat [deleted file]
build/win32/introspection-msvc.mak [new file with mode: 0644]
build/win32/json-glib-introspection-msvc.mak [new file with mode: 0644]
build/win32/vs10/Makefile.am
build/win32/vs10/Makefile.in
build/win32/vs10/array.vcxproj
build/win32/vs10/array.vcxproj.filters
build/win32/vs10/boxed.vcxproj
build/win32/vs10/boxed.vcxproj.filters
build/win32/vs10/builder.vcxproj
build/win32/vs10/builder.vcxproj.filters
build/win32/vs10/generator.vcxproj
build/win32/vs10/generator.vcxproj.filters
build/win32/vs10/gvariant.vcxproj
build/win32/vs10/gvariant.vcxproj.filters
build/win32/vs10/install.vcxproj [deleted file]
build/win32/vs10/invalid.vcxproj [new file with mode: 0644]
build/win32/vs10/invalid.vcxproj.filters [new file with mode: 0644]
build/win32/vs10/json-glib-build-defines.props [new file with mode: 0644]
build/win32/vs10/json-glib-format.vcxproj [new file with mode: 0644]
build/win32/vs10/json-glib-format.vcxproj.filters [new file with mode: 0644]
build/win32/vs10/json-glib-gen-srcs.props [new file with mode: 0644]
build/win32/vs10/json-glib-install.props [new file with mode: 0644]
build/win32/vs10/json-glib-install.vcxproj [moved from build/win32/vs10/gengir.vcxproj with 63% similarity]
build/win32/vs10/json-glib-validate.vcxproj [new file with mode: 0644]
build/win32/vs10/json-glib-validate.vcxproj.filters [new file with mode: 0644]
build/win32/vs10/json-glib-version-paths.props [new file with mode: 0644]
build/win32/vs10/json-glib.props [deleted file]
build/win32/vs10/json-glib.sln
build/win32/vs10/json-glib.vcxproj
build/win32/vs10/json-glib.vcxproj.filters
build/win32/vs10/json-glib.vcxproj.filtersin
build/win32/vs10/json-glib.vcxprojin
build/win32/vs10/node.vcxproj
build/win32/vs10/node.vcxproj.filters
build/win32/vs10/object.vcxproj
build/win32/vs10/object.vcxproj.filters
build/win32/vs10/parser.vcxproj
build/win32/vs10/parser.vcxproj.filters
build/win32/vs10/path.vcxproj
build/win32/vs10/path.vcxproj.filters
build/win32/vs10/reader.vcxproj
build/win32/vs10/reader.vcxproj.filters
build/win32/vs10/serialize-complex.vcxproj
build/win32/vs10/serialize-complex.vcxproj.filters
build/win32/vs10/serialize-full.vcxproj
build/win32/vs10/serialize-full.vcxproj.filters
build/win32/vs10/serialize-simple.vcxproj
build/win32/vs10/serialize-simple.vcxproj.filters
build/win32/vs9/Makefile.am
build/win32/vs9/Makefile.in
build/win32/vs9/array.vcproj
build/win32/vs9/boxed.vcproj
build/win32/vs9/builder.vcproj
build/win32/vs9/generator.vcproj
build/win32/vs9/gengir.vcproj [deleted file]
build/win32/vs9/gvariant.vcproj
build/win32/vs9/invalid.vcproj [new file with mode: 0644]
build/win32/vs9/json-glib-build-defines.vsprops [new file with mode: 0644]
build/win32/vs9/json-glib-format.vcproj [new file with mode: 0644]
build/win32/vs9/json-glib-gen-srcs.vsprops [new file with mode: 0644]
build/win32/vs9/json-glib-install.vcproj [moved from build/win32/vs9/install.vcproj with 67% similarity]
build/win32/vs9/json-glib-install.vsprops [new file with mode: 0644]
build/win32/vs9/json-glib-validate.vcproj [new file with mode: 0644]
build/win32/vs9/json-glib-version-paths.vsprops [new file with mode: 0644]
build/win32/vs9/json-glib.sln
build/win32/vs9/json-glib.vcproj
build/win32/vs9/json-glib.vcprojin
build/win32/vs9/json-glib.vsprops [deleted file]
build/win32/vs9/node.vcproj
build/win32/vs9/object.vcproj
build/win32/vs9/parser.vcproj
build/win32/vs9/path.vcproj
build/win32/vs9/reader.vcproj
build/win32/vs9/serialize-complex.vcproj
build/win32/vs9/serialize-full.vcproj
build/win32/vs9/serialize-simple.vcproj
config.h.in
configure
configure.ac
doc/Makefile.in
doc/reference/Makefile.am
doc/reference/Makefile.in
doc/reference/html/JsonBuilder.html
doc/reference/html/JsonGenerator.html
doc/reference/html/JsonParser.html
doc/reference/html/JsonPath.html
doc/reference/html/JsonReader.html
doc/reference/html/annotation-glossary.html
doc/reference/html/ch01.html
doc/reference/html/ch02.html
doc/reference/html/ch03.html
doc/reference/html/ch04.html
doc/reference/html/ch06.html [new file with mode: 0644]
doc/reference/html/home.png
doc/reference/html/index.html
doc/reference/html/index.sgml
doc/reference/html/ix01.html
doc/reference/html/ix02.html
doc/reference/html/ix03.html
doc/reference/html/ix04.html
doc/reference/html/ix05.html
doc/reference/html/ix06.html
doc/reference/html/ix07.html
doc/reference/html/ix08.html
doc/reference/html/ix09.html [new file with mode: 0644]
doc/reference/html/ix10.html [new file with mode: 0644]
doc/reference/html/ix11.html [new file with mode: 0644]
doc/reference/html/json-advanced.html
doc/reference/html/json-base.html
doc/reference/html/json-format-tool.html [new file with mode: 0644]
doc/reference/html/json-glib-Boxed-Types-Serialization.html
doc/reference/html/json-glib-GObject-Serialization.html
doc/reference/html/json-glib-JSON-Array.html
doc/reference/html/json-glib-JSON-GVariant-Integration.html
doc/reference/html/json-glib-JSON-Node.html
doc/reference/html/json-glib-JSON-Object.html
doc/reference/html/json-glib-Serializable-Interface.html
doc/reference/html/json-glib-Utility-API.html [new file with mode: 0644]
doc/reference/html/json-glib-Versioning-information.html
doc/reference/html/json-glib.devhelp2
doc/reference/html/json-glib.html
doc/reference/html/json-streams.html
doc/reference/html/json-tools.html
doc/reference/html/json-validate-tool.html [new file with mode: 0644]
doc/reference/html/left-insensitive.png [new file with mode: 0644]
doc/reference/html/left.png
doc/reference/html/license.html
doc/reference/html/right-insensitive.png [new file with mode: 0644]
doc/reference/html/right.png
doc/reference/html/style.css
doc/reference/html/tools.html [new file with mode: 0644]
doc/reference/html/up-insensitive.png [new file with mode: 0644]
doc/reference/html/up.png
doc/reference/json-glib-docs.xml
doc/reference/json-glib-format.1 [new file with mode: 0644]
doc/reference/json-glib-format.xml [new file with mode: 0644]
doc/reference/json-glib-sections.txt
doc/reference/json-glib-validate.1 [new file with mode: 0644]
doc/reference/json-glib-validate.xml [new file with mode: 0644]
doc/reference/json-glib.types
doc/reference/version.xml
gtk-doc.make
json-glib/Json-1.0.gir
json-glib/Makefile.am
json-glib/Makefile.in
json-glib/abicheck.sh [deleted file]
json-glib/json-array.c
json-glib/json-builder.c
json-glib/json-builder.h
json-glib/json-debug.c
json-glib/json-debug.h
json-glib/json-enum-types.c
json-glib/json-enum-types.c.in
json-glib/json-enum-types.h
json-glib/json-enum-types.h.in
json-glib/json-gboxed.c
json-glib/json-generator.c
json-glib/json-generator.h
json-glib/json-glib-format.c [new file with mode: 0644]
json-glib/json-glib-validate.c [new file with mode: 0644]
json-glib/json-glib.h
json-glib/json-glib.pc.in [moved from json-glib.pc.in with 100% similarity]
json-glib/json-glib.symbols [deleted file]
json-glib/json-gobject.c
json-glib/json-gobject.h
json-glib/json-gvariant.c
json-glib/json-gvariant.h
json-glib/json-marshal.c
json-glib/json-marshal.h
json-glib/json-node.c
json-glib/json-object.c
json-glib/json-parser.c
json-glib/json-parser.h
json-glib/json-path.c
json-glib/json-path.h
json-glib/json-reader.c
json-glib/json-reader.h
json-glib/json-scanner.c
json-glib/json-scanner.h
json-glib/json-serializable.c
json-glib/json-types-private.h
json-glib/json-types.h
json-glib/json-utils.c [new file with mode: 0644]
json-glib/json-utils.h [new file with mode: 0644]
json-glib/json-value.c
json-glib/json-version-macros.h [new file with mode: 0644]
json-glib/json-version.h
json-glib/json-version.h.in
json-glib/tests/Makefile.am
json-glib/tests/Makefile.in
json-glib/tests/array.c
json-glib/tests/boxed.c
json-glib/tests/builder.c
json-glib/tests/generator.c
json-glib/tests/gvariant.c
json-glib/tests/invalid.c
json-glib/tests/node.c
json-glib/tests/object.c
json-glib/tests/parser.c
json-glib/tests/path.c
json-glib/tests/reader.c
json-glib/tests/serialize-complex.c
json-glib/tests/serialize-full.c
json-glib/tests/serialize-simple.c
po/POTFILES.in
po/as.gmo
po/as.po
po/bg.gmo
po/bg.po
po/bn_IN.gmo
po/bn_IN.po
po/bs.gmo [new file with mode: 0644]
po/bs.po [new file with mode: 0644]
po/ca.gmo
po/ca.po
po/ca@valencia.gmo
po/ca@valencia.po
po/cs.gmo
po/cs.po
po/da.gmo
po/da.po
po/de.gmo
po/de.po
po/el.gmo
po/el.po
po/en_GB.gmo
po/en_GB.po
po/eo.gmo
po/eo.po
po/es.gmo
po/es.po
po/et.gmo
po/et.po
po/eu.gmo
po/eu.po
po/fr.gmo
po/fr.po
po/fur.gmo [new file with mode: 0644]
po/fur.po [new file with mode: 0644]
po/gl.gmo
po/gl.po
po/he.gmo [new file with mode: 0644]
po/he.po [new file with mode: 0644]
po/hi.gmo
po/hi.po
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/json-glib-1.0.pot
po/ko.gmo
po/ko.po
po/ky.gmo
po/ky.po
po/lt.gmo
po/lt.po
po/lv.gmo
po/lv.po
po/ml.gmo
po/ml.po
po/nb.gmo
po/nb.po
po/oc.gmo [new file with mode: 0644]
po/oc.po [new file with mode: 0644]
po/or.gmo
po/or.po
po/pa.gmo
po/pa.po
po/pl.gmo
po/pl.po
po/pt.gmo
po/pt.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo [new file with mode: 0644]
po/ro.po [new file with mode: 0644]
po/ru.gmo
po/ru.po
po/sk.gmo
po/sk.po
po/sl.gmo
po/sl.po
po/sr.gmo
po/sr.po
po/sr@latin.gmo
po/sr@latin.po
po/sv.gmo
po/sv.po
po/te.gmo
po/te.po
po/tg.gmo
po/tg.po
po/tr.gmo
po/tr.po
po/ug.gmo
po/ug.po
po/uk.gmo
po/uk.po
po/vi.gmo
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
po/zh_HK.gmo
po/zh_HK.po
po/zh_TW.gmo
po/zh_TW.po

index c716c9c..06fd379 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+commit 19f5626b70e72a81dae7ee11b4c3a4d75779a7be
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 22 16:14:19 2016 +0000
+
+    Release JSON-GLib 1.2.0 (stable)
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit ae32d238ee2479002d07d7b5b19a482dc31e7ffd
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 22 16:01:46 2016 +0000
+
+    node: Turn a g_debug() call into a JSON_NOTE
+    
+    This allows conditional compilation, and it makes the debugging code
+    consistent.
+
+ json-glib/json-node.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit b659345f0fbf08053ae7087c7c2eb25905e61cf3
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 22 16:01:25 2016 +0000
+
+    debug: Add flag for debugging nodes
+
+ json-glib/json-debug.c | 3 ++-
+ json-glib/json-debug.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit 14fa35ca93b1e553c2f50df5527bb17fb84d69d1
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 18:59:31 2016 +0000
+
+    Post-release version bump to 1.1.3
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 83965c9474dcd35da6bffaa00f0e715986e70d74
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 16:16:05 2016 +0000
+
+    Release JSON-GLib 1.1.2 (snapshot)
+
+ NEWS         | 15 +++++++++++++++
+ configure.ac |  2 +-
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+
+commit f0dfe4f84c924953585db3d53c568cfe7813226a
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 16:18:24 2016 +0000
+
+    build: Update gitignore generation rule
+
+ build/autotools/Makefile.am.gitignore | 29 +++++++++++++----------------
+ 1 file changed, 13 insertions(+), 16 deletions(-)
+
+commit 5e186395aecb256a67a9d06c1749393be681ae38
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 16:02:28 2016 +0000
+
+    fixup! docs: Fix the Since tags
+
+ json-glib/json-types.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 438ca10a27f2732173b345a0ca359d1b8f59c2f6
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 15:05:13 2016 +0000
+
+    parser: Rename `immutable` bit field
+
+ json-glib/json-parser.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit a43a9451b0cf9ebc03c651b5688f0fad56e3bacb
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 1 15:02:19 2016 +0000
+
+    docs: Fix the Since tags
+    
+    The newly added API is available since 1.2.
+
+ json-glib/json-array.c   |  8 ++++----
+ json-glib/json-builder.c |  4 ++--
+ json-glib/json-node.c    | 20 ++++++++++----------
+ json-glib/json-object.c  | 12 ++++++------
+ json-glib/json-parser.c  |  4 ++--
+ json-glib/json-value.c   |  2 +-
+ 6 files changed, 25 insertions(+), 25 deletions(-)
+
+commit 6ddbc94c9888e5ddcd1cbb15845d2f1b5524b3ed
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Tue Mar 1 15:01:07 2016 +0000
+
+    core: Add JSON node, object, array hashes
+    
+    Now that these objects can be marked as immutable, it is possible to
+    calculate and cache hash values for each of them. This allows efficient
+    hash-based deduplication of large numbers of JSON nodes, as needed by
+    Walbottle for JSON test vector generation.
+    
+    To complement the new hash functions, each of JsonNode, JsonValue,
+    JsonObject and JsonArray also now have an equal() comparison method.
+    This compares them structurally and recursively, using the definition of
+    equality from the JSON Schema specification, which seems as good as any
+    other.
+    
+    http://json-schema.org/latest/json-schema-core.html#anchor9
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=756121
+    
+    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+
+ doc/reference/json-glib-sections.txt |  11 ++
+ json-glib/json-array.c               | 104 ++++++++++++++-
+ json-glib/json-node.c                | 245 +++++++++++++++++++++++++++++++++++
+ json-glib/json-object.c              |  99 +++++++++++++-
+ json-glib/json-parser.c              |   8 +-
+ json-glib/json-types-private.h       |   5 +
+ json-glib/json-types.h               |  27 ++++
+ json-glib/json-value.c               |  45 +++++++
+ 8 files changed, 530 insertions(+), 14 deletions(-)
+
+commit 1de237a502ceee96df7091c2df4492b8bc08b2c5
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Sat Nov 7 17:38:22 2015 +0100
+
+    node: Add json_node_ref() and json_node_unref()
+    
+    Add reference counting semantics to JsonNode, in addition to the
+    existing init/unset and alloc/free semantics.
+    
+    json_node_free() must only be used with nodes allocated using
+    json_node_alloc(). json_node_unref() may be used with all nodes (if
+    correctly paired; it may be paired with json_node_alloc()).
+    
+    It is not valid to call json_node_free() on a node whose reference count
+    is not 1.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=756121
+
+ doc/reference/json-glib-sections.txt |   2 +
+ json-glib/json-array.c               |   6 +-
+ json-glib/json-builder.c             |   4 +-
+ json-glib/json-generator.c           |   4 +-
+ json-glib/json-gobject.c             |   4 +-
+ json-glib/json-gvariant.c            |   2 +-
+ json-glib/json-node.c                | 129 ++++++++++++++++++++++++++---------
+ json-glib/json-object.c              |   4 +-
+ json-glib/json-parser.c              |  24 +++----
+ json-glib/json-path.c                |   4 +-
+ json-glib/json-reader.c              |   4 +-
+ json-glib/json-types-private.h       |  13 +++-
+ json-glib/json-types.h               |   5 ++
+ 13 files changed, 141 insertions(+), 64 deletions(-)
+
+commit 58f479b60eb2db4c73605d469d68a8ffd8679327
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Sat Nov 7 14:17:31 2015 +0100
+
+    core: Add immutability support to core objects
+    
+    Add an immutable mode to JsonNode, JsonObject, JsonArray and JsonValue.
+    This is an optional mode which objects enter by calling json_*_seal().
+    It is a one-way transition, which means that we can build and manipulate
+    objects as much as desired, before sealing them and enjoying the
+    benefits of immutable objects: no need to take copies when handling
+    them, persistent hash values (still to be implemented).
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=756121
+
+ doc/reference/json-glib-sections.txt |   8 +
+ json-glib/json-array.c               |  48 ++++++
+ json-glib/json-builder.c             | 106 ++++++++++++
+ json-glib/json-builder.h             |   2 +
+ json-glib/json-node.c                | 127 +++++++++++++-
+ json-glib/json-object.c              |  51 ++++++
+ json-glib/json-parser.c              | 108 ++++++++++++
+ json-glib/json-parser.h              |   2 +
+ json-glib/json-types-private.h       |   7 +
+ json-glib/json-types.h               |  13 ++
+ json-glib/json-value.c               |  23 +++
+ json-glib/tests/node.c               | 320 +++++++++++++++++++++++++++++++++++
+ 12 files changed, 810 insertions(+), 5 deletions(-)
+
+commit a82b93ba60dd0f54660990df86ba0cf7fc74c9a8
+Author: Cédric Valmary <cvalmary@yahoo.fr>
+Date:   Mon Feb 29 19:41:32 2016 +0000
+
+    Updated Occitan translation
+
+ po/oc.po | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8ff4ca0a807e8bb04081bcf47e7a9951edd70ac9
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 29 00:31:57 2016 +0000
+
+    format: Silence a compiler warning
+
+ json-glib/json-glib-format.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 130190ed1ca0387b4bc22b15b0e1a910e961c667
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 29 00:27:59 2016 +0000
+
+    Add autoptr macros
+    
+    GLib can take advantage of the "cleanup" attribute by using a bunch of
+    macro magic. This has been slowly been used across various libraries in
+    the G* stack, so JSON-GLib should provide symbols for the automatic
+    memory management of its types.
+
+ json-glib/json-builder.h   | 4 ++++
+ json-glib/json-generator.h | 4 ++++
+ json-glib/json-parser.h    | 4 ++++
+ json-glib/json-path.h      | 4 ++++
+ json-glib/json-reader.h    | 4 ++++
+ json-glib/json-types.h     | 6 ++++++
+ 6 files changed, 26 insertions(+)
+
+commit a1490d9b6a3a21774d68f085f805d5f7a68b305e
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Feb 25 09:42:54 2016 +0000
+
+    parser: Detect missing commas in arrays
+    
+    Just like we detect trailing commas, we should also detect missing ones
+    to avoid parsing invalid JSON successfully.
+
+ json-glib/json-parser.c   | 15 ++++++++++++++-
+ json-glib/tests/invalid.c | 31 +++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 1 deletion(-)
+
+commit c34b3541f9d2cb388bc20fecc9cf412d6ab0716d
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Feb 25 09:41:38 2016 +0000
+
+    parser: Correctly increment the array index counter
+    
+    We pass the counter to the JsonParser::array-element signal, but we
+    never really increment it.
+
+ json-glib/json-parser.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 28c7347150d24383114f06457c3a8d5f5d8eab00
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Sat Nov 7 18:01:54 2015 +0100
+
+    core: Remove atomic operations for reference counting
+    
+    They are not needed — json-glib is not at all thread safe.
+
+ json-glib/json-array.c  | 4 ++--
+ json-glib/json-object.c | 4 ++--
+ json-glib/json-value.c  | 4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+commit d8720da7ec351e5f15f6ce7baf96434ea42bb111
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Sat Nov 7 15:20:28 2015 +0100
+
+    array: Ensure JsonArray is zero-initialised
+
+ json-glib/json-array.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit db7c76dcdc56ccaaa06051ccde5db808783bef22
+Author: Robert Ancell <robert.ancell@canonical.com>
+Date:   Tue Nov 24 21:15:38 2015 +1300
+
+    Fix code returning FALSE when it should be NULL
+
+ json-glib/json-reader.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e5c11ba342122981a1e3081eb7f82217a0ebb431
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Thu Nov 19 17:49:47 2015 +0000
+
+    docs: Fix section title
+
+ doc/reference/json-glib-docs.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1843dd381ebbe6ea62c2d8b91588eb4dab7c5bab
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Nov 13 13:40:13 2015 +0000
+
+    docs: Fix URL of the project page
+
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3e0985cbb3399af8bece24a2933b9045edcc7a74
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Fri Nov 6 11:23:45 2015 +0100
+
+    types: Tweak dummy padding in JsonObjectIter
+    
+    Use padding which resembles the ABI structure of GHashTableIter so that
+    our struct size is the same as GHashTableIter on all platforms, rather
+    than just on x86_64. This fixes the static assertion failure on i386 and
+    armhf.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=757675
+
+ json-glib/json-types.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit c0607bee11fae7963d64de6556d2dea84310ca63
+Author: Cédric Valmary <cvalmary@yahoo.fr>
+Date:   Sat Oct 31 09:10:45 2015 +0000
+
+    Updated Occitan translation
+
+ po/oc.po | 201 +++++++++++++++++++++++++++++++++++++--------------------------
+ 1 file changed, 117 insertions(+), 84 deletions(-)
+
+commit d720ff7b5447817933f1af38a7f03d0f7ac0b302
+Author: Daniel Șerbănescu <daniel@serbanescu.dk>
+Date:   Sat Oct 24 19:37:07 2015 +0000
+
+    Added Romanian translation
+
+ po/ro.po | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 265 insertions(+)
+
+commit d231976e240f2244c60df26a1a6600ecb325506a
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Thu Sep 24 11:06:34 2015 +0100
+
+    object: Add JsonObjectIter to ease iteration over JsonObject members
+    
+    This is a stack-allocated iterator object similar to GHashTableIter
+    which allows allocation-free iteration over the members in a JsonObject.
+    
+    It differs from json_object_foreach_member() in the order in which it
+    iterates — for JsonObjectIter the order is undefined.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=755509
+
+ doc/reference/json-glib-sections.txt |  3 ++
+ json-glib/json-object.c              | 71 ++++++++++++++++++++++++++++++++++++
+ json-glib/json-types-private.h       |  9 +++++
+ json-glib/json-types.h               | 26 +++++++++++++
+ json-glib/tests/object.c             | 28 ++++++++++++++
+ 5 files changed, 137 insertions(+)
+
+commit 5185a8f8a58e5b455116eaa8c99c4b4c38a45929
+Author: Iain Lane <iain@orangesquash.org.uk>
+Date:   Fri Oct 2 11:28:38 2015 +0100
+
+    tests/builder: Don't duplicate test names
+    
+    GLib 2.46.0 forbids this and so the testsuite fails.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=755977
+
+ json-glib/tests/builder.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit bfbc0b48e9256473491755766c079f73bee80724
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Tue Sep 1 10:05:23 2015 +0100
+
+    lib: Trivial documentation clarifications
+    
+    Clarify the documentation for json_node_set_object() and
+    json_object_get_array_member().
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=754384
+
+ json-glib/json-node.c   | 4 +++-
+ json-glib/json-object.c | 6 ++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 54fedc974f0c0548951454125cd2b2f35528fa67
+Author: Piotr Drąg <piotrdrag@gmail.com>
+Date:   Wed Aug 26 19:43:15 2015 +0200
+
+    Updated Polish translation
+
+ po/pl.po | 118 +++++++++++++++++++++++++++++++--------------------------------
+ 1 file changed, 59 insertions(+), 59 deletions(-)
+
+commit 8fd3660b4bc7e764cc57d11bbba8ef3a0ab2ee7d
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Fri Feb 6 15:10:35 2015 +0000
+
+    reader: Clarify use of json_reader_end_[element|member]() with errors
+    
+    Include an example showing that the end function must be called on both
+    code paths (success and failure) if the reader object is to be used
+    afterwards.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=744100
+
+ json-glib/json-reader.c | 31 +++++++++++++++++++++++++++++--
+ 1 file changed, 29 insertions(+), 2 deletions(-)
+
+commit f7eb50b5b03ee5870e476135bd989cb49d8d44c2
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Aug 18 14:04:05 2015 +0100
+
+    array: Do not create a null node for empty strings
+    
+    The two are fairly different, and JsonObject does not behave this way.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=730803
+
+ json-glib/json-array.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4c1485acaa0f7267c87a37477f43808924e5aece
+Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
+Date:   Sun Aug 9 21:42:03 2015 +0000
+
+    Updated Swedish translation
+
+ po/sv.po | 89 ++++++++++++++++++++++++++++++++--------------------------------
+ 1 file changed, 45 insertions(+), 44 deletions(-)
+
+commit 157820c544291512cfde3e224e6b0af0ab2997cb
+Author: Pedro Albuquerque <palbuquerque73@gmail.com>
+Date:   Wed Jul 1 22:01:02 2015 +0000
+
+    Updated Portuguese translation
+
+ po/pt.po | 102 +++++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 53 insertions(+), 49 deletions(-)
+
+commit 3ae9c9e82dc2423b8f6af23ae2b5d08d30f6b575
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Jun 9 12:56:13 2015 +0100
+
+    parser: Port to GTask
+    
+    GSimpleAsyncResult is deprecated in GLib 2.46, so we should drop its
+    use, and simplify the code in the process.
+
+ json-glib/json-parser.c | 180 +++++++++++++++++-------------------------------
+ 1 file changed, 62 insertions(+), 118 deletions(-)
+
+commit 155991af58d451cf8c4ccfaed432a959f1687b1c
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Jun 9 12:29:06 2015 +0100
+
+    docs: Add 1.2 symbols index
+
+ doc/reference/json-glib-docs.xml | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit fd443041b5243dbb5748ce132c5c14b1c52f23fa
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Jun 9 12:28:57 2015 +0100
+
+    docs: Add missing symbols
+
+ doc/reference/json-glib-sections.txt | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit b6546a62362bafcb0aa2d97175a15c4218cc6023
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Jun 9 12:23:12 2015 +0100
+
+    Add simple JSON/string utilities
+    
+    Wrap JsonParser and JsonGenerator in simple, easy to call functions that
+    manage the objects for you.
+
+ doc/reference/json-glib-docs.xml     |   5 ++
+ doc/reference/json-glib-sections.txt |   6 ++
+ json-glib/Makefile.am                |   2 +
+ json-glib/json-glib.h                |   1 +
+ json-glib/json-utils.c               | 103 +++++++++++++++++++++++++++++++++++
+ json-glib/json-utils.h               |  40 ++++++++++++++
+ json-glib/json-version-macros.h      |  16 ++++++
+ 7 files changed, 173 insertions(+)
+
+commit 445a787757eb08afeee61a6c5fdbd6622c43d0af
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Jun 9 12:24:15 2015 +0100
+
+    Bump up version to 1.1.1
+    
+    New development cycle, for new API.
+
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit b3b996bbdf704bb7488493a8262aff3dc282d496
+Author: Cédric Valmary <cvalmary@yahoo.fr>
+Date:   Thu May 21 17:12:58 2015 +0000
+
+    Added Occitan translation
+
+ po/oc.po | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 235 insertions(+)
+
+commit a7b081b736e632405b36e34bbd01040bde115f92
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Mar 15 17:52:28 2015 +0000
+
+    Post-release version bump to 1.0.5
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit c7bbaf2a3f3e07d9d4e48591e765f388541ecd7f
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Mar 15 17:45:44 2015 +0000
+
+    Release JSON-GLib 1.0.4
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 52cf02caa0db2eee99c3a1145319eea5806b2977
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Mar 15 17:42:58 2015 +0000
+
+    build: Enable subdir-objects
+    
+    We need to remove the path specification inside the sources listing, and
+    modify the enumeration type and marshallers generation rules to cope
+    with it (by adding the $(srcdir) when needed). This is similar to the
+    changes there were made to Clutter.
+
+ .gitignore                          |  1 +
+ build/autotools/Makefile.am.enums   | 29 +++++++++------
+ build/autotools/Makefile.am.marshal | 17 ++++++---
+ configure.ac                        |  2 +-
+ json-glib/Makefile.am               | 70 ++++++++++++++++++-------------------
+ 5 files changed, 68 insertions(+), 51 deletions(-)
+
+commit efecd1214580eb2835f99b8d231b126ee6cafa21
+Author: Samir Ribic <samir.ribic@etf.unsa.ba>
+Date:   Fri Mar 13 21:01:51 2015 +0000
+
+    Added Bosnian translation
+
+ po/bs.po | 252 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 252 insertions(+)
+
+commit 0f4a21d03a16ddd4cf052b9b2230ec004d05d430
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Mar 13 13:43:59 2015 +0000
+
+    build: Enable gtkdoc-check
+    
+    We can verify that the documentation is correct and up to date every
+    time we distcheck by turning on the gtk-doc check tool.
+
+ .gitignore                |  3 +++
+ doc/reference/Makefile.am | 24 ++++++++++--------------
+ 2 files changed, 13 insertions(+), 14 deletions(-)
+
+commit 81174fcdd31f3c1d1601b5d9000c154391f14006
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Mar 13 13:41:36 2015 +0000
+
+    build: Clean up gtk-doc stanzas
+    
+    We need to ensure that gtk-doc looks into both the srcdir and the
+    builddir in order to find all annotations.
+    
+    We also don't need to have the .types file under revision control:
+    gtk-doc is perfectly capable of rebuilding it by itself.
+
+ doc/reference/Makefile.am     | 35 ++---------------------------------
+ doc/reference/json-glib.types |  7 -------
+ 2 files changed, 2 insertions(+), 40 deletions(-)
+
+commit c5183b4546ebaceaf77183f259d354488fea5469
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Mar 13 13:40:41 2015 +0000
+
+    docs: Add missing symbol indices
+
+ doc/reference/json-glib-docs.xml | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit cd0fee83bfde8ccdf4602094e9f14bcd749a12b0
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Mar 13 13:40:27 2015 +0000
+
+    docs: Add missing annotations
+
+ json-glib/json-serializable.c | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+commit d82de8274ac1aa03138078f40f99ea1cc8ef3cd0
+Author: Patrick Welche <prlw1@cam.ac.uk>
+Date:   Fri Mar 13 11:07:54 2015 +0000
+
+    configure: test(1) uses = to test for string equality
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=711600
+    https://bugzilla.gnome.org/show_bug.cgi?id=746143
+
+ build/autotools/glibtests.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5d62e7a6bd5e494f9f80b9ad5f14191e4986c467
+Author: Dušan Kazik <prescott66@gmail.com>
+Date:   Mon Mar 9 17:35:36 2015 +0000
+
+    Updated Slovak translation
+
+ po/sk.po | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 138 insertions(+), 36 deletions(-)
+
+commit 88178ad0c2befc61e8771875f1f7fc2807c075ce
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Mar 6 16:23:53 2015 +0800
+
+    MSVC Builds: Rename "Install" Projects
+    
+    Rename the install projects as json-glib-install, so that it would be
+    easier for one to integrate the project set in a grand solution that can be
+    used to build the entire stack, such as for Clutter.
+
+ build/win32/vs10/Makefile.am               |   2 +-
+ build/win32/vs10/install.vcxproj           | 110 -----------------------------
+ build/win32/vs10/json-glib-install.vcxproj | 110 +++++++++++++++++++++++++++++
+ build/win32/vs10/json-glib.sln             |   2 +-
+ build/win32/vs9/Makefile.am                |   2 +-
+ build/win32/vs9/install.vcproj             |  77 --------------------
+ build/win32/vs9/json-glib-install.vcproj   |  77 ++++++++++++++++++++
+ build/win32/vs9/json-glib.sln              |   2 +-
+ 8 files changed, 191 insertions(+), 191 deletions(-)
+
+commit 5332e0e3ad2ee0d03787569ddcf5cadb608ece23
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Mar 6 16:15:25 2015 +0800
+
+    MSVC Builds: "Install" the .pdb Files
+    
+    "Install" the .pdb files for the json-glib DLL and the tools to ease
+    debugging people developing or using json-glib, as the .pdb files are
+    already generated for all builds.
+
+ build/win32/vs10/json-glib-install.props  | 5 +++--
+ build/win32/vs9/json-glib-install.vsprops | 5 +++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+commit ed05b1c8f0352b22e4a726526d4155f2dc6ac7f6
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Mar 6 16:12:51 2015 +0800
+
+    MSVC 2010 Projects: Clean Up "Installation"
+    
+    The empty lines in the property sheets are not really needed, so remove
+    them.
+
+ build/win32/vs10/json-glib-install.props | 21 ---------------------
+ 1 file changed, 21 deletions(-)
+
+commit c642f6644f82b555b348d3c364efd9961155528d
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Mar 6 16:11:44 2015 +0800
+
+    MSVC Builds: Speed Up Release Builds
+    
+    Use the multiprocessor compilation (/MP) option, which can cut down release
+    build times by quite a bit.  This will emit a brief warning on debug
+    builds, but otherwise the build will proceed as normal.
+    
+    Also use the /d2Zi+ option for MSVC 2010 (and later) builds so that more
+    useful information can be logged to the .pdb files for the release builds.
+
+ build/win32/vs10/json-glib-build-defines.props  | 2 ++
+ build/win32/vs9/json-glib-build-defines.vsprops | 1 +
+ 2 files changed, 3 insertions(+)
+
+commit 80e44db76dd179e4c12d1a11b24f27c7548dc382
+Author: Stef Walter <stefw@redhat.com>
+Date:   Thu Feb 13 22:21:18 2014 +0100
+
+    json-gvariant: Parse json doubles that are whole numbers
+    
+    The json gvariant serializer encodes whole number doubles without
+    a dot. The deserializer needs to be able to parse these as well.
+    
+    Fix problem, and add test cases.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=724319
+
+ json-glib/json-gvariant.c  | 6 +++++-
+ json-glib/tests/gvariant.c | 4 ++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+commit aee569b0bc2542aa8f1d13d66ddadacbda1035ac
+Author: Philip Withnall <philip.withnall@collabora.co.uk>
+Date:   Sun Jan 25 11:47:23 2015 +0000
+
+    builder: Add missing (transfer) annotation to json_builder_add_value()
+    
+    Document and annotate the fact that json_builder_add_value() takes
+    ownership of the JsonNode passed in to it.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=743475
+
+ json-glib/json-builder.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 1f6668a9534c01523361075dad290c0dc49d7623
+Author: Philip Withnall <philip@tecnocode.co.uk>
+Date:   Sat Dec 20 23:22:09 2014 +0000
+
+    reader: Maintain a stack of member names
+    
+    This fixes the case where, with nested objects, we call:
+        json_reader_read_member (reader, "outer");
+        // json_reader_get_member_name (reader) == "outer"
+    
+        json_reader_read_member (reader, "inner");
+        // json_reader_get_member_name (reader) == "inner"
+        // do something useful
+        json_reader_end_member (reader);
+    but at the end, the following assertion no longer holds:
+        // json_reader_get_member_name (reader) == "outer"
+    even though the JsonReader state should have been reset after ending the
+    inner node.
+    
+    Fix it by maintaining a stack of member names. This works with both
+    json_reader_read_member() and json_reader_read_element(). Updates to the
+    unit tests are included.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=741824
+
+ json-glib/json-reader.c  | 29 ++++++++++++++++-------------
+ json-glib/tests/reader.c | 13 +++++++++++++
+ 2 files changed, 29 insertions(+), 13 deletions(-)
+
+commit 23e69e79484d41c722ab8bcab78fe850b960316e
+Author: Tristan Van Berkom <tristan@upstairslabs.com>
+Date:   Sun Mar 9 17:59:02 2014 +0900
+
+    Handle serialization/deserialization of glong gulong and guint64
+    
+    Long and unsigned long was properly serialized but not deserialized, guint64
+    handling is not ideal as the type is cast into a gint64, however this is
+    better than not handling the fundamental type at all.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=725972
+
+ json-glib/json-gobject.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+commit c183513e82e20e7f77821e6a667bf12dfa0b8b20
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Jul 25 10:05:21 2014 +0100
+
+    Drop unnecessary '_' prefix from json_marshal
+    
+    It's not public API anyway, and we use annotations instead of the '_'
+    prefix.
+
+ json-glib/Makefile.am   |  2 +-
+ json-glib/json-parser.c | 18 +++++++++---------
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 2779d537492f1902d71cf648631238110b62b311
+Author: Yaşar Şentürk <yasarix@gmail.com>
+Date:   Thu Dec 4 21:37:26 2014 +0000
+
+    Updated Turkish translation
+
+ po/tr.po | 205 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 152 insertions(+), 53 deletions(-)
+
+commit 4ccb9ab6119b81dde81b04208b98c89fc3a7884c
+Author: Sebastian Rasmussen <sebras@gmail.com>
+Date:   Thu Sep 18 20:13:42 2014 +0000
+
+    Updated Swedish translation
+
+ po/sv.po | 261 +++++++++++++++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 177 insertions(+), 84 deletions(-)
+
+commit 88a3adda5238177084998b734cc0d2f3f8237f38
+Author: ngoswami <ngoswami@redhat.com>
+Date:   Wed Aug 20 07:49:49 2014 +0000
+
+    Updated Assamese translation
+
+ po/as.po | 180 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 140 insertions(+), 40 deletions(-)
+
+commit 5b8fa1bcd8c16e638369db78783feca5fb9fe188
+Author: Wolfgang Stöggl <c72578@yahoo.de>
+Date:   Thu Aug 14 22:20:11 2014 +0000
+
+    Updated German translation
+
+ po/de.po | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 47816385fa7e1f35580b50268e8de38fa22e44d6
+Author: Olav Vitters <olav@vitters.nl>
+Date:   Wed Jul 30 20:24:44 2014 +0200
+
+    doap category core
+
+ json-glib.doap | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit cfc576eb1a22c7ab213e26bba7716534109884fe
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Jul 25 09:12:00 2014 +0100
+
+    Clean up the enumeration type template
+
+ json-glib/json-enum-types.c.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 415c75677544df6aa4929c851f44a412ea39b7b4
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Jul 25 09:10:52 2014 +0100
+
+    Include "config.h" in the enum types template
+    
+    Expands the symbol annotation correctly.
+
+ json-glib/json-enum-types.c.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 2eab41a368620c28bb3c4f9fd0e1a20b2cfdce95
+Author: Tom Tryfonidis <tomtryf@gmail.com>
+Date:   Wed Jul 9 23:21:14 2014 +0000
+
+    Updated Greek translation
+
+ po/el.po | 80 ++++++++++++++++++++++++++++++++--------------------------------
+ 1 file changed, 40 insertions(+), 40 deletions(-)
+
+commit e1141c9ea04a9f11b60d5278693edb819bcac7d9
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Mon Jun 9 18:29:01 2014 +0800
+
+    MSVC 2010+ Projects: Update "Installation" Process
+    
+    Currently, due to the way that Visual Studio 2010+ projects are handled,
+    the "install" project does not re-build upon changes to the sources, as it
+    does not believe that its dependencies have changed, although the changed
+    sources are automatically recompiled.  This means that if a part or more
+    of the solution does not build, or if the sources need some other fixes
+    or enhancements, the up-to-date build is not copied automatically, which
+    can be misleading.
+    
+    Improve on the situation by forcing the "install" project to trigger its
+    rebuild, so that the updated binaries can be copied.  This does trigger an
+    MSBuild warning, but having that warning is way better than not having an
+    up-to-date build, especially during testing and development.
+
+ build/win32/vs10/install.vcxproj         | 28 ++++++++++++++++------------
+ build/win32/vs10/json-glib-install.props | 20 ++++++++++++++++----
+ 2 files changed, 32 insertions(+), 16 deletions(-)
+
+commit a86c22b452afd1dc14916508b9303b7dcce71eff
+Author: Gil Forcada <gforcada@gnome.org>
+Date:   Tue Jun 3 00:49:01 2014 +0200
+
+    [l10n] Update Catalan translation
+
+ po/ca.po | 176 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 139 insertions(+), 37 deletions(-)
+
+commit 298a6f389d376b37f231966affad544b06a06be2
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 29 10:06:13 2014 +0100
+
+    Post-release version bump to 1.0.3
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 82d10baa19383f22b3b8022b01be4ae1b08c968a
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 29 10:04:39 2014 +0100
+
+    Release JSON-GLib 1.0.2
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit bdb27fb70a831e14d569aaff9d7c452978da2236
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 29 09:52:03 2014 +0100
+
+    build: Include enum-types.[ch] in the introspection sources
+    
+    Otherwise g-ir-scanner won't pick the types up, and will not notice that
+    the error enumerations have an associated error domain.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=730917
+
+ json-glib/Makefile.am | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit 8bbc873dccb0426ce7e2ad0974b1397506454674
+Author: Stef Walter <stefw@redhat.com>
+Date:   Wed May 21 12:14:57 2014 +0200
+
+    generator: Add tests for updated string escaping routine
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=730425
+
+ json-glib/tests/generator.c | 47 +++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 47 insertions(+)
+
+commit f2ee9a7e205abe5050fba37fa65aceceeb243898
+Author: Stef Walter <stefw@redhat.com>
+Date:   Tue May 20 10:49:02 2014 +0200
+
+    generator: Escape the control characters correctly
+    
+    Escaping these as octals is out of the JSON spec completely,
+    so roll our own string encoder.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=730425
+
+ json-glib/json-generator.c | 73 +++++++++++++++++++++++++++++-----------------
+ 1 file changed, 47 insertions(+), 26 deletions(-)
+
+commit 8f4816a2e05d0d3672d7723df2feaf466632c498
+Author: Stef Walter <stefw@redhat.com>
+Date:   Tue May 20 10:43:29 2014 +0200
+
+    generator: Escape Object key names correctly
+    
+    Also fix empty keys, which are now encoded properly.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=727593
+
+ json-glib/json-generator.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+commit 0898b9c335a21a82d92621e16be1b1038ccc6991
+Author: Christian Kirbach <Christian.Kirbach@gmail.com>
+Date:   Mon Apr 28 17:27:32 2014 +0000
+
+    Updated German translation
+
+ po/de.po | 175 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 138 insertions(+), 37 deletions(-)
+
+commit 62d9456c3d78286b662e7f96477617fd78358a18
+Author: Daniel Korostil <ted.korostiled@gmail.com>
+Date:   Mon Apr 21 12:20:32 2014 +0300
+
+    Updated Ukrainian translation
+
+ po/uk.po | 225 +++++++++++++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 168 insertions(+), 57 deletions(-)
+
+commit 13397eb080fee132a3d227a6b98b73e75364b4f5
+Author: djcb <djcb@djcbsoftware.nl>
+Date:   Mon Apr 7 17:13:47 2014 +0300
+
+    json-parser: use length parameter when validating utf-8
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=727755
+
+ json-glib/json-parser.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c9de87387f3b2494e4e770fd1d2ffca9ebfdbfe5
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Apr 17 15:30:32 2014 +0100
+
+    tests: Add more checks to the parser stream unit
+
+ json-glib/tests/parser.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+commit e31683d2804916da23d1e48b80b124b37df1c8e6
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Apr 17 15:28:15 2014 +0100
+
+    parser: Use the right length for parsing the stream contents
+    
+    The ByteArray we use to buffer the contents of a stream in order to
+    pass them to the parser may have a bigger length. We should use the
+    cursor position that we use to put a '\0' in the buffer instead. We
+    could also use -1, but this saves us a strlen() later on.
+
+ json-glib/json-parser.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 289e75bd35c5ee268269f09c9e2db90602994fc1
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Mon Apr 7 15:05:40 2014 +0800
+
+    Visual Studio Builds: Fix Installation of Headers
+    
+    json-version-macros.h needs to be installed as well, so fix that.
+
+ build/win32/vs10/json-glib-install.props  | 2 ++
+ build/win32/vs9/json-glib-install.vsprops | 1 +
+ 2 files changed, 3 insertions(+)
+
+commit e645b5a383230ec5233cb0bd389e53e226a4bdd3
+Author: Piotr Drąg <piotrdrag@gmail.com>
+Date:   Sun Apr 6 17:46:40 2014 +0200
+
+    doap: update URLs
+
+ json-glib.doap | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b3e105fa890d4c63708b9cb9d372d9db16a636ff
+Author: Matej Urbančič <mateju@svn.gnome.org>
+Date:   Thu Apr 3 20:37:41 2014 +0200
+
+    Updated Slovenian translation
+
+ po/sl.po | 203 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 150 insertions(+), 53 deletions(-)
+
+commit 82389b02f8b82eb5b3c37e38498975ebd15697ac
+Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
+Date:   Thu Apr 3 17:39:19 2014 +0200
+
+    Updated Basque language
+
+ po/eu.po | 184 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 144 insertions(+), 40 deletions(-)
+
+commit 18c76eff151fd29213401477c2c4a022eec9c698
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Tue Apr 1 19:40:12 2014 +0800
+
+    Fix MSVC Introspection Build
+    
+    Also substitute $(top_builddir), as it is used for json-version.h during
+    the scanning of the headers and sources.
+
+ build/win32/gen-file-list-jsonglib.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit e0aef7ca7ba0c9d94ffa6e814caee956c139ad23
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 25 11:53:25 2014 +0000
+
+    Post-release version bump to 1.0.1
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit cb7212b5ee71f18f4023e928884fd55ef54b9327
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 25 11:50:36 2014 +0000
+
+    Release JSON-GLib 1.0.0
+
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 19981d54171acff70f8a8987e0731fe1d8dd5d89
+Author: Gábor Kelemen <kelemeng@gnome.hu>
+Date:   Fri Mar 21 17:09:53 2014 +0000
+
+    Updated Hungarian translation
+
+ po/hu.po | 181 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 141 insertions(+), 40 deletions(-)
+
+commit bf5295a8b72954bfff5ba89c389f8ace0d913082
+Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
+Date:   Fri Mar 21 04:00:22 2014 +0100
+
+    Updated Serbian translation
+
+ po/sr.po       | 174 +++++++++++++++++++++++++++++++++++++++++++++------------
+ po/sr@latin.po | 174 +++++++++++++++++++++++++++++++++++++++++++++------------
+ 2 files changed, 274 insertions(+), 74 deletions(-)
+
+commit a8c56f54d5f47e35921e50a63e2a59190da13ad0
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Thu Mar 20 10:23:36 2014 +0800
+
+    Visual Studio Builds: Don't Generate .def File
+    
+    The symbols for json-glib is now exported via a visibility-based method,
+    like GLib and GTK+, so do likewise for the Visual Studio builds, by using
+    __declspec(dllexport).  This will also mean that the .def file is no longer
+    needed to export the symbols for json-glib.
+
+ build/win32/config.h.win32.in                |  7 +++++
+ build/win32/vs10/json-glib-gen-srcs.props    |  7 -----
+ build/win32/vs10/json-glib.vcxproj.filtersin |  1 -
+ build/win32/vs10/json-glib.vcxprojin         | 18 -------------
+ build/win32/vs9/json-glib-gen-srcs.vsprops   |  7 -----
+ build/win32/vs9/json-glib.vcprojin           | 38 ----------------------------
+ 6 files changed, 7 insertions(+), 71 deletions(-)
+
+commit b177715f1cb21edf5716a0768d6678096443ad51
+Author: Ask H. Larsen <asklarsen@gmail.com>
+Date:   Wed Mar 19 22:31:43 2014 +0100
+
+    Updated Danish translation
+
+ po/da.po | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 136 insertions(+), 35 deletions(-)
+
+commit 75f00bf9a9d3326444d77a400ca2d5a0378f8d32
+Author: Duarte Loreto <happyguy_pt@hotmail.com>
+Date:   Tue Mar 18 23:32:42 2014 +0000
+
+    Updated Portuguese translation
+
+ po/pt.po | 179 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 140 insertions(+), 39 deletions(-)
+
+commit 7b9d72519777b313d094a0e63a9f138e3fafd54c
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 18 19:22:15 2014 +0000
+
+    build: Resync our copy of introspection.m4
+
+ build/autotools/introspection.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 5adb54c97fb5a87a609584727285f742cd0e2f09
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 18 18:41:40 2014 +0000
+
+    build: Include $(top_builddir)
+    
+    Fixes compilation in cases where builddir != srcdir.
+
+ json-glib/tests/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d3fcd43a73061a64dc5f8b7551c138849a32b719
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 18 18:10:14 2014 +0000
+
+    Remove conditional inclusion of config.h
+    
+    All the platforms and build system we support have a config.h header.
+
+ json-glib/json-array.c        | 2 --
+ json-glib/json-builder.c      | 2 --
+ json-glib/json-debug.c        | 2 --
+ json-glib/json-gboxed.c       | 2 --
+ json-glib/json-generator.c    | 2 --
+ json-glib/json-gobject.c      | 2 --
+ json-glib/json-gvariant.c     | 2 --
+ json-glib/json-node.c         | 2 --
+ json-glib/json-object.c       | 3 ---
+ json-glib/json-parser.c       | 2 --
+ json-glib/json-path.c         | 2 --
+ json-glib/json-reader.c       | 4 ----
+ json-glib/json-scanner.c      | 2 --
+ json-glib/json-serializable.c | 2 --
+ json-glib/json-value.c        | 2 --
+ json-glib/tests/generator.c   | 2 --
+ json-glib/tests/invalid.c     | 2 --
+ json-glib/tests/parser.c      | 2 --
+ 18 files changed, 39 deletions(-)
+
+commit 445b1c4c1efec99ed640c16b92a9b19a87b39082
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Mar 6 15:09:50 2014 +0000
+
+    Add version constants to introspection
+    
+    We need to let g-ir-scanner parse json-version.h.
+
+ json-glib/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit d3095c5f8fe91209cc98e1e2d7e75a8aad1e8d88
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Mar 6 15:09:04 2014 +0000
+
+    Reimplement JSON_VERSION_HEX as a macro call
+    
+    Add a JSON_ENCODE_VERSION macro and use it in JSON_VERSION_HEX.
+
+ doc/reference/json-glib-sections.txt |  1 +
+ json-glib/json-version.h.in          | 12 +++++++-----
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+commit 794664746dcbe8894255f9615357dd51f7f836c3
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Mar 6 14:35:49 2014 +0000
+
+    Use compiler annotations to determine symbol visibility
+    
+    Instead of relying on a separate file that requires being update every
+    time we add a new public function we should use compiler annotations to
+    let the linker know which symbols are public and exported.
+    
+    In order to achieve this we have to:
+    
+     * check for the visibility=hidden attribute
+     * add -fvisibility=hidden to the linker flags
+     * add a macro to annotate all public symbols
+    
+    While we're at it, we should copy the versioned symbols macro layout
+    already used by GLib, GTK+, and other G* libraries, including the
+    ability to express the range of allowed versions of JSON-GLib that
+    third party code can compile against.
+
+ configure.ac                         |  31 ++++++
+ doc/reference/json-glib-sections.txt |  16 +++
+ json-glib/Makefile.am                |  47 ++++-----
+ json-glib/abicheck.sh                |   6 --
+ json-glib/json-builder.h             |  15 +++
+ json-glib/json-enum-types.h.in       |   2 +
+ json-glib/json-generator.h           |  13 +++
+ json-glib/json-glib.h                |   1 +
+ json-glib/json-glib.symbols          | 191 -----------------------------------
+ json-glib/json-gobject.h             |  26 ++++-
+ json-glib/json-gvariant.h            |   4 +
+ json-glib/json-parser.h              |  13 ++-
+ json-glib/json-path.h                |   6 ++
+ json-glib/json-reader.h              |  22 ++++
+ json-glib/json-types.h               | 103 +++++++++++++++++--
+ json-glib/json-version-macros.h      | 135 +++++++++++++++++++++++++
+ 16 files changed, 391 insertions(+), 240 deletions(-)
+
+commit 50bf9cd2f6bc9fb21d9793377f0fd534732d215d
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Mar 6 13:58:52 2014 +0000
+
+    docs: Drop the SGML mode
+    
+    The whole documentation is now MarkDown.
+
+ doc/reference/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 20c861f02f8e41cde2dec92f9d63d8266383c26b
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Mar 6 13:58:15 2014 +0000
+
+    docs: Port to MarkDown
+    
+    Drop the DocBook documentation, and move everything to the MarkDown
+    format used by modern gtk-doc.
+
+ json-glib/json-array.c        |   4 +-
+ json-glib/json-builder.c      |   2 +-
+ json-glib/json-builder.h      |   7 +-
+ json-glib/json-gboxed.c       |   2 +-
+ json-glib/json-generator.c    |   9 +-
+ json-glib/json-gobject.c      |   4 +-
+ json-glib/json-gobject.h      |   2 +-
+ json-glib/json-gvariant.c     |  64 ++++------
+ json-glib/json-node.c         |  13 +-
+ json-glib/json-object.c       |   9 +-
+ json-glib/json-path.c         | 268 +++++++++++++++++-------------------------
+ json-glib/json-path.h         |   9 +-
+ json-glib/json-reader.c       |  19 ++-
+ json-glib/json-reader.h       |   7 +-
+ json-glib/json-serializable.c |  10 +-
+ 15 files changed, 181 insertions(+), 248 deletions(-)
+
+commit ff018d7e560278d65a03c4de71c3cf11b22d3167
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Mar 4 18:30:31 2014 +0000
+
+    build: Bump up the requirement for gtk-doc
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 36872776b354d2b4b39f9da8e12dd51e949b6c90
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Mar 2 14:26:44 2014 +0000
+
+    scanner: Clean up the UTF-16 surrogate pairs decoding
+    
+    We over-assert() our pre-conditions, and the conversion is a bit
+    obfuscated. We should use a proper function, and de-obfuscate the
+    code so that the intent is clear.
+
+ json-glib/json-scanner.c | 42 ++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 36 insertions(+), 6 deletions(-)
+
+commit 16396ab205a5f9bfe7a68aec436fe916bbbee342
+Author: Seong-ho Cho <darkcircle.0426@gmail.com>
+Date:   Sun Mar 16 22:18:26 2014 +0900
+
+    Updated Korean translation
+
+ po/ko.po | 189 ++++++++++++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 145 insertions(+), 44 deletions(-)
+
+commit 87804f9cf3d5cb643b1d92ee8b26547158fbf41a
+Author: Claude Paroz <claude@2xlibre.net>
+Date:   Tue Mar 11 22:44:07 2014 +0100
+
+    Updated French translation
+
+ po/fr.po | 185 +++++++++++++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 139 insertions(+), 46 deletions(-)
+
+commit e2fd54326c3dfa3927c9e78d865ed349b022a7d3
+Author: Yuri Myasoedov <ymyasoedov@yandex.ru>
+Date:   Tue Mar 11 12:23:24 2014 +0400
+
+    Updated Russian translation
+
+ po/ru.po | 75 ++++++++++++++++++++++++++++++++--------------------------------
+ 1 file changed, 37 insertions(+), 38 deletions(-)
+
+commit fd3ccd2c7c19305d099b98c62ad6c0dae536f6bc
+Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
+Date:   Fri Mar 7 16:52:22 2014 +0200
+
+    Updated Latvian translation
+
+ po/lv.po | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 135 insertions(+), 35 deletions(-)
+
+commit e76f0283c3605fb04fb03e5aee56200c1abece2e
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Thu Mar 6 18:47:47 2014 +0800
+
+    Visual Studio 2010 Projects: Add PlatformToolset Tag
+    
+    This adds a PlatformToolset tag to each configuration so that the projects
+    can be updated to Visual Studio 2012 or 2013 formats quite easily, using
+    Visual Studio's round-tripping feature which actually looks at this tag.
+    
+    This, for example, can be quite easily processed by a script to produce
+    the Visual Studio 2012 and 2013 projects.
+
+ build/win32/vs10/array.vcxproj              | 4 ++++
+ build/win32/vs10/boxed.vcxproj              | 4 ++++
+ build/win32/vs10/builder.vcxproj            | 4 ++++
+ build/win32/vs10/generator.vcxproj          | 4 ++++
+ build/win32/vs10/gvariant.vcxproj           | 4 ++++
+ build/win32/vs10/install.vcxproj            | 4 ++++
+ build/win32/vs10/invalid.vcxproj            | 4 ++++
+ build/win32/vs10/json-glib-format.vcxproj   | 4 ++++
+ build/win32/vs10/json-glib-validate.vcxproj | 4 ++++
+ build/win32/vs10/json-glib.vcxprojin        | 4 ++++
+ build/win32/vs10/node.vcxproj               | 4 ++++
+ build/win32/vs10/object.vcxproj             | 4 ++++
+ build/win32/vs10/parser.vcxproj             | 4 ++++
+ build/win32/vs10/path.vcxproj               | 4 ++++
+ build/win32/vs10/reader.vcxproj             | 4 ++++
+ build/win32/vs10/serialize-complex.vcxproj  | 4 ++++
+ build/win32/vs10/serialize-full.vcxproj     | 4 ++++
+ build/win32/vs10/serialize-simple.vcxproj   | 4 ++++
+ 18 files changed, 72 insertions(+)
+
+commit da66fd86764d12640ad2d53a869c77df31f5bd82
+Author: Piotr Drąg <piotrdrag@gmail.com>
+Date:   Mon Mar 3 01:05:53 2014 +0100
+
+    Updated Polish translation
+
+ po/pl.po | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 135 insertions(+), 34 deletions(-)
+
+commit a4d731db0780a87304c98be412d72d615b277592
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Tue Feb 25 13:09:32 2014 +0800
+
+    MSVC Builds: Update Introspection Build Process
+    
+    GObject-Introspection was recently changed to support acquiring the name of
+    the DLL from a library (.lib, etc) that was passed into g-ir-scanner on
+    Windows, like the *nix builds, instead of directly passing in the name of
+    the DLL.
+    
+    This updates the introspection build process, so that introspection files
+    for JSON-GLib can continue to be properly built.
+
+ build/win32/json-glib-introspection-msvc.mak | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+commit 9dc47a1f4e66f871e435675ebe09b554b9fc9e8c
+Author: Sphinx Jiang <yishanj13@gmail.com>
+Date:   Sat Feb 22 01:28:27 2014 +0000
+
+    Updated Chinese (China) translation
+
+ po/zh_CN.po | 113 +++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 58 insertions(+), 55 deletions(-)
+
+commit 843b41e885c2528cb6f146f415a50582c07eaef6
+Author: Aurimas Černius <aurisc4@gmail.com>
+Date:   Fri Feb 21 23:18:30 2014 +0200
+
+    Updated Lithuanian translation
+
+ po/lt.po | 103 ++++++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 56 insertions(+), 47 deletions(-)
+
+commit d8de1631c41333ba72a11658a2102bb42fb15d09
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri Feb 14 17:56:10 2014 +0000
+
+    Add missing annotations
+    
+    JsonNode, JsonObject, and JsonArray have various constructors, so we
+    need to annotate them.
+
+ json-glib/json-array.c  | 10 +++++-----
+ json-glib/json-node.c   |  2 +-
+ json-glib/json-object.c |  6 +++---
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 4726ccc490a30aeff95b7c01fc6c44dbce36a7f4
+Author: Kjartan Maraas <kmaraas@gnome.org>
+Date:   Wed Feb 12 19:47:31 2014 +0100
+
+    Updated Norwegian bokmål translation
+
+ po/nb.po | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 134 insertions(+), 33 deletions(-)
+
+commit d97be101490a46c72f919d3dc45f4bc06e625e0c
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 11:39:29 2014 +0800
+
+    tools: Fix build on Visual Studio
+    
+    As unistd.h is not universally available, don't include it unconditionally
+    and include the corresponding Windows headers where necessary.  Also, use
+    gssize in place of ssize_t and define STDOUT_FILENO on Windows when we
+    don't have unistd.h, which is a constant that is defined in unistd.h.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=723813
+
+ json-glib/json-glib-format.c   | 11 ++++++++++-
+ json-glib/json-glib-validate.c |  2 ++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+commit 0b1397ad168078bf2b588ab413ad921c04aab8a2
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 18:55:32 2014 +0800
+
+    MSVC Builds: Rework Introspection Files Build
+    
+    Use a set of NMake Makefiles in place of custom Visual Studio Projects to
+    generate the introspection files for JSON-GLib.
+    
+    Although this means that one needs to build the introspection files in two
+    stages, namely using the projects to build the JSON-GLib DLL and then
+    running this NMake Makefile to generate the introspection files.  The
+    original approach required setting lots of environment variables for the
+    building of introspection files to work.  Using NMake Makefiles will make
+    it clearer to the one building the introspection files on what items and
+    variables are needed exactly to do the job
+
+ build/win32/Makefile.am                      |   4 +-
+ build/win32/detectenv_msvc.mak               |  65 +++++++++++++
+ build/win32/gengir_jsonglib.bat              | 132 ---------------------------
+ build/win32/introspection-msvc.mak           |  79 ++++++++++++++++
+ build/win32/json-glib-introspection-msvc.mak |  64 +++++++++++++
+ 5 files changed, 211 insertions(+), 133 deletions(-)
+
+commit ed7f9df3c09209749d0d1be0917a80ad6a4f7546
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 18:33:32 2014 +0800
+
+    Overhaul the Visual Studio 2010 Projects
+    
+    Split up the property sheets used to build JSON-GLib. Also add projects to
+    build and "install" the json-glib-validate and json-glib-format tools.
+    
+    Move the introspection file generation out of the Visual Studio projects
+    to add an NMake Makefile later to generate the introspection files, to make
+    the process clearer to people.
+    
+    Stop installing the test programs, although they continue to be built from
+    the projects for now.
+
+ build/win32/vs10/Makefile.am                       |  20 ++-
+ build/win32/vs10/array.vcxproj                     |  12 +-
+ build/win32/vs10/array.vcxproj.filters             |   2 +-
+ build/win32/vs10/boxed.vcxproj                     |  10 +-
+ build/win32/vs10/boxed.vcxproj.filters             |   2 +-
+ build/win32/vs10/builder.vcxproj                   |  10 +-
+ build/win32/vs10/builder.vcxproj.filters           |   2 +-
+ build/win32/vs10/generator.vcxproj                 |  10 +-
+ build/win32/vs10/generator.vcxproj.filters         |   2 +-
+ build/win32/vs10/gengir.vcxproj                    | 104 -------------
+ build/win32/vs10/gvariant.vcxproj                  |  10 +-
+ build/win32/vs10/gvariant.vcxproj.filters          |   2 +-
+ build/win32/vs10/install.vcxproj                   |  76 ++--------
+ build/win32/vs10/invalid.vcxproj                   |  10 +-
+ build/win32/vs10/invalid.vcxproj.filters           |   2 +-
+ build/win32/vs10/json-glib-build-defines.props     |  30 ++++
+ build/win32/vs10/json-glib-format.vcxproj          | 162 +++++++++++++++++++++
+ build/win32/vs10/json-glib-format.vcxproj.filters  |  14 ++
+ build/win32/vs10/json-glib-gen-srcs.props          |  24 +++
+ build/win32/vs10/json-glib-install.props           |  60 ++++++++
+ build/win32/vs10/json-glib-validate.vcxproj        | 162 +++++++++++++++++++++
+ .../win32/vs10/json-glib-validate.vcxproj.filters  |  14 ++
+ build/win32/vs10/json-glib-version-paths.props     |  54 +++++++
+ build/win32/vs10/json-glib.props                   | 150 -------------------
+ build/win32/vs10/json-glib.sln                     |  50 ++++---
+ build/win32/vs10/json-glib.vcxproj.filtersin       |   3 +-
+ build/win32/vs10/json-glib.vcxprojin               |  28 ++--
+ build/win32/vs10/node.vcxproj                      |  10 +-
+ build/win32/vs10/node.vcxproj.filters              |   2 +-
+ build/win32/vs10/object.vcxproj                    |  10 +-
+ build/win32/vs10/object.vcxproj.filters            |   2 +-
+ build/win32/vs10/parser.vcxproj                    |  10 +-
+ build/win32/vs10/parser.vcxproj.filters            |   2 +-
+ build/win32/vs10/path.vcxproj                      |  10 +-
+ build/win32/vs10/path.vcxproj.filters              |   2 +-
+ build/win32/vs10/reader.vcxproj                    |  10 +-
+ build/win32/vs10/reader.vcxproj.filters            |   2 +-
+ build/win32/vs10/serialize-complex.vcxproj         |  10 +-
+ build/win32/vs10/serialize-complex.vcxproj.filters |   2 +-
+ build/win32/vs10/serialize-full.vcxproj            |  10 +-
+ build/win32/vs10/serialize-full.vcxproj.filters    |   2 +-
+ build/win32/vs10/serialize-simple.vcxproj          |  10 +-
+ build/win32/vs10/serialize-simple.vcxproj.filters  |   2 +-
+ 43 files changed, 680 insertions(+), 441 deletions(-)
+
+commit 1e0ef4493d485bfc211bcb2af2f212a3f26a800e
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 11:52:48 2014 +0800
+
+    Fix Commit of Visual Studio 2008 Projects
+    
+    Left out the update to json-glib.vcprojin, oops :|
+
+ build/win32/vs9/json-glib.vcprojin | 58 +++++++++++++++++++++++++-------------
+ 1 file changed, 38 insertions(+), 20 deletions(-)
+
+commit 7053ea79f4c90f26e7e25c598a6a1617fbcea990
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 11:35:47 2014 +0800
+
+    Overhaul the Visual Studio 2008 Projects
+    
+    Split up the property sheets used to build JSON-GLib, and make all the
+    projects (*.vcproj) and property sheets (*.vsprops) use UNIX line endings
+    to simplify future maintenance.  Also add projects to build and "install"
+    the json-glib-validate and json-glib-format tools.
+    
+    Move the introspection file generation out of the Visual Studio projects
+    to add an NMake Makefile later to generate the introspection files, to make
+    the process clearer to people.
+    
+    Stop installing the test programs, although they continue to be built from
+    the projects for now.
+    
+    Similar changes to the Visual Studio 2010 projects will follow.
+
+ build/win32/vs9/Makefile.am                     |  20 +-
+ build/win32/vs9/array.vcproj                    | 306 +++++++++++-----------
+ build/win32/vs9/boxed.vcproj                    |   8 +-
+ build/win32/vs9/builder.vcproj                  | 306 +++++++++++-----------
+ build/win32/vs9/generator.vcproj                | 306 +++++++++++-----------
+ build/win32/vs9/gengir.vcproj                   |  77 ------
+ build/win32/vs9/gvariant.vcproj                 |   8 +-
+ build/win32/vs9/install.vcproj                  | 160 ++++++------
+ build/win32/vs9/invalid.vcproj                  | 306 +++++++++++-----------
+ build/win32/vs9/json-glib-build-defines.vsprops |  25 ++
+ build/win32/vs9/json-glib-format.vcproj         | 151 +++++++++++
+ build/win32/vs9/json-glib-gen-srcs.vsprops      |  19 ++
+ build/win32/vs9/json-glib-install.vsprops       |  37 +++
+ build/win32/vs9/json-glib-validate.vcproj       | 151 +++++++++++
+ build/win32/vs9/json-glib-version-paths.vsprops |  53 ++++
+ build/win32/vs9/json-glib.sln                   |  75 +++---
+ build/win32/vs9/json-glib.vsprops               | 127 ----------
+ build/win32/vs9/node.vcproj                     | 306 +++++++++++-----------
+ build/win32/vs9/object.vcproj                   | 302 +++++++++++-----------
+ build/win32/vs9/parser.vcproj                   | 324 ++++++++++++------------
+ build/win32/vs9/path.vcproj                     |   8 +-
+ build/win32/vs9/reader.vcproj                   | 308 +++++++++++-----------
+ build/win32/vs9/serialize-complex.vcproj        |   8 +-
+ build/win32/vs9/serialize-full.vcproj           |   8 +-
+ build/win32/vs9/serialize-simple.vcproj         |   8 +-
+ 25 files changed, 1821 insertions(+), 1586 deletions(-)
+
+commit 7b865790ae3233a0636fdc780f843143a7e94a01
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Feb 7 10:23:40 2014 +0800
+
+    Update build/win32/config.h.win32.in
+    
+    Make its entries reflect the entries that are being checked by the
+    autotools build, and also make the entries reflect the situation on
+    non-Visual C++ and newer Visual Studio versions better.
+
+ build/win32/config.h.win32.in | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+commit 4f7dd7f5b004f1bcd478572c1cb6f2dd6822add1
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 3 23:50:34 2014 +0000
+
+    Post-release version bump to 0.99.3
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 43f40339eae66e0f6545da7638f36c9b07de0bab
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 3 23:49:11 2014 +0000
+
+    Release JSON-GLib 0.99.2 (1.0.0-rc1)
+    
+    First release candidate for JSON-GLib.
+
+ NEWS         | 9 +++++++++
+ configure.ac | 4 ++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 3c627b1e44172184f54399b03d10c1637265649b
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 3 23:46:56 2014 +0000
+
+    build: Add missing file
+    
+    We need to dist the tap-test script.
+
+ build/autotools/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit a482772a181c6ee3bd5a8d74c04b8ff9186b43f8
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 3 23:45:24 2014 +0000
+
+    build: Remove bogus rules
+    
+    We don't need check targets any more.
+
+ build/Makefile.am | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+commit 627a1b3f0343666923e95ebead0c7be821d29148
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Feb 3 23:33:44 2014 +0000
+
+    build: Remove type init option for gtk-doc
+    
+    We're building against a required version of GLib that does not need
+    type initialization.
+
+ doc/reference/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 501c9fb3805c9236fc008032295e0cdd87c4df47
+Author: Bastien Nocera <hadess@hadess.net>
+Date:   Sat Feb 1 22:52:27 2014 +0100
+
+    reader: When a read() fails, don't track back on end()
+    
+    When a call to json_reader_read_element() fails if the element
+    doesn't exist, we need to call json_reader_end_element() to clear
+    out any errors.
+    
+    But the _end_element() call will backtrack to the parent node,
+    when the _read_element() call did not set the child node.
+    
+    To fix this, leave early from _end_*() calls when an error has
+    been set.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=723428
+
+ json-glib/json-reader.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+commit 40abd7add9e3fa7288fdd144fd96da5270a86663
+Author: Bastien Nocera <hadess@hadess.net>
+Date:   Sat Feb 1 23:31:02 2014 +0100
+
+    tests: Add new test for reader level bug
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=723428
+
+ json-glib/tests/reader.c | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+commit 440f735349aa30ce34957e50786a528e96335442
+Author: Bastien Nocera <hadess@hadess.net>
+Date:   Fri Dec 27 17:14:06 2013 +0100
+
+    reader: Fix example code for json_reader_read_member()
+    
+    Fix cut'n'paste error.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=721137
+
+ json-glib/json-reader.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit bce10169c945a551e589267ee698fd39917813c6
+Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
+Date:   Sun Feb 2 20:40:35 2014 +0800
+
+    Updated Traditional Chinese translation(Hong Kong and Taiwan)
+
+ po/zh_HK.po | 174 +++++++++++++++++++++++++++++++++++++++++++++++-------------
+ po/zh_TW.po | 174 +++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 274 insertions(+), 74 deletions(-)
+
+commit 3e9b53978f36543a1537da8075b7c74e1eb1ffcf
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:   Thu Jan 23 12:53:38 2014 +0100
+
+    Updated FSF's address
+
+ json-glib/json-scanner.c | 4 +---
+ json-glib/json-scanner.h | 4 +---
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+commit 668975eac681d84a041d6da8df8ccc71b92bb971
+Author: Yosef Or Boczko <yoseforb@src.gnome.org>
+Date:   Sun Jan 26 05:32:33 2014 +0200
+
+    Added Hebrew translation
+    
+    Signed-off-by: Yosef Or Boczko <yoseforb@src.gnome.org>
+
+ po/he.po | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 263 insertions(+)
+
+commit 5fb0b925adb517445c0347f04fe281952b614b37
+Author: Wylmer Wang <wantinghard@gmail.com>
+Date:   Fri Jan 24 21:40:10 2014 +0800
+
+    Update Chinese simplified translation
+
+ po/zh_CN.po | 175 +++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 138 insertions(+), 37 deletions(-)
+
+commit 7d1457e0f1c8d142647811005c9c348104c43287
+Author: Marek Černocký <marek@manet.cz>
+Date:   Sat Jan 18 22:46:35 2014 +0100
+
+    Updated Czech translation
+
+ po/cs.po | 175 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 138 insertions(+), 37 deletions(-)
+
+commit 67571cf0b7b3dacb24726c05aa9fbc7a6d4060c1
+Author: Yuri Myasoedov <ymyasoedov@yandex.ru>
+Date:   Sun Jan 12 22:35:31 2014 +0400
+
+    Updated Russian translation
+
+ po/ru.po | 180 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 141 insertions(+), 39 deletions(-)
+
+commit 8502517892c656b6f68034cc5f36254bae67cafc
+Author: Dimitris Spingos <dmtrs32@gmail.com>
+Date:   Tue Jan 7 09:53:59 2014 +0200
+
+    Updated Greek translation
+
+ po/el.po | 45 +++++++++++++++++++++++++++------------------
+ 1 file changed, 27 insertions(+), 18 deletions(-)
+
+commit e919cfbbdce0b684566a0cd6e60bdd87a654e718
+Author: Rafael Ferreira <rafael.f.f1@gmail.com>
+Date:   Fri Jan 3 06:05:58 2014 -0200
+
+    Updated Brazilian Portuguese translation
+
+ po/pt_BR.po | 48 +++++++++++++++++++++++++++++-------------------
+ 1 file changed, 29 insertions(+), 19 deletions(-)
+
+commit f16d9b82c4d36e949620f5ef6105985c087d438e
+Author: Andika Triwidada <andika@gmail.com>
+Date:   Thu Jan 2 23:39:49 2014 +0700
+
+    Updated Indonesian translation
+
+ po/id.po | 182 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 141 insertions(+), 41 deletions(-)
+
+commit 314419676c5d7f4f2c19c530bcb9ced6972a8040
+Author: Victor Ibragimov <victor.ibragimov@gmail.com>
+Date:   Fri Dec 20 14:32:41 2013 +0500
+
+    Tajik translation updated
+
+ po/tg.po | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 139 insertions(+), 36 deletions(-)
+
+commit 11fd007fcb4734b5640d1481407d6fa0c4943256
+Author: Fran Diéguez <fran.dieguez@mabishu.com>
+Date:   Thu Dec 19 01:13:28 2013 +0100
+
+    Updated Galician translations
+
+ po/gl.po | 39 ++++++++++++++++++++++++---------------
+ 1 file changed, 24 insertions(+), 15 deletions(-)
+
+commit 8bceaafd95ac36c531e1a1bf079c031d1c0785ab
+Author: Milo Casagrande <milo@ubuntu.com>
+Date:   Wed Dec 11 10:47:36 2013 +0100
+
+    [l10n] Updated Italian translation.
+
+ po/it.po | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 138 insertions(+), 35 deletions(-)
+
+commit 0cba330f3b24d4c2fd8ba79cabddc23d6e7e8063
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:   Mon Dec 9 16:03:35 2013 +0100
+
+    Updated Spanish translation
+
+ po/es.po | 30 +++++++++++++++++++++---------
+ 1 file changed, 21 insertions(+), 9 deletions(-)
+
+commit 0d6a2da5775de27160f9fd0bad783cb7d45d8dac
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Dec 4 12:43:37 2013 +0000
+
+    Make json-gvariant.h conform to the other headers
+    
+    Only include the necessary headers, and use a single-header inclusion
+    guard to prevent people from including only json-gvariant.h.
+
+ json-glib/json-gvariant.c | 5 +++++
+ json-glib/json-gvariant.h | 7 +++++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 0de776ea67869b692ee8bd709fd70c0e2368d9fc
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Dec 4 12:41:06 2013 +0000
+
+    Move the single include guard after multiple inclusion one
+    
+    GCC (and other compilers) can optimise multiple inclusion of headers if
+    they find the:
+    
+      #ifndef FOO
+      #define FOO
+    
+      #endif
+    
+    pattern as the first thing inside a header. The single-header inclusion
+    guard was preventing that from happening, so we need to move it inside
+    the multiple inclusion guard.
+
+ json-glib/json-builder.h       | 6 +++---
+ json-glib/json-enum-types.h.in | 6 +++---
+ json-glib/json-generator.h     | 6 +++---
+ json-glib/json-parser.h        | 6 +++---
+ json-glib/json-path.h          | 6 +++---
+ json-glib/json-reader.h        | 6 +++---
+ json-glib/json-types.h         | 6 +++---
+ json-glib/json-version.h.in    | 6 +++---
+ 8 files changed, 24 insertions(+), 24 deletions(-)
+
+commit b3072da5a2e897b2b87f84d30485bf316c4476fb
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 14:34:20 2013 +0000
+
+    tests/gvariant: Use G_N_ELEMENTS
+    
+    Instead of sizeof(array)/sizeof(type).
+
+ json-glib/tests/gvariant.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 64b4f936617e781e9a3677cf98b2abde94b8ef2a
+Author: Joseph Artsimovich <joseph.artsimovich@youview.com>
+Date:   Tue Sep 3 11:30:08 2013 +0100
+
+    Make JSON to GVariant conversion handle some string to number conversions.
+    
+    Consider the following JSON: ["123"]
+    Trying to convert it to GVariant with signature "(i)" would previously fail,
+    as string-to-number conversions weren't implemented. This patch implements
+    string-to-number and string-to-boolean conversions.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=707382
+
+ json-glib/json-gvariant.c  | 24 ++++++++++++++++++++++++
+ json-glib/tests/gvariant.c | 37 ++++++++++++++++++++++++++++++-------
+ 2 files changed, 54 insertions(+), 7 deletions(-)
+
+commit 35562f291b7bf1bae88d7e5f78d7be163ca263d6
+Author: bi <bisnard@antidot.net>
+Date:   Thu May 16 14:00:03 2013 +0200
+
+    Add tests for json paths (2 invalids, 1 valid)
+    
+    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+    
+    Conflicts:
+       json-glib/tests/path.c
+
+ json-glib/tests/path.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+commit d82420c14b19f29a993b7754ff1128b3524c4ad7
+Author: bi <bisnard@antidot.net>
+Date:   Wed May 15 17:35:26 2013 +0200
+
+    Handle invalid path: invalid first character
+    
+    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+    
+    Conflicts:
+       json-glib/json-path.c
+
+ json-glib/json-path.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+commit e4a054484774fd0849ca18617b6e20d15964fdd8
+Author: bi <bisnard@antidot.net>
+Date:   Wed May 15 16:19:55 2013 +0200
+
+    path: compile and query path '$' to retrieve root node
+    
+    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+
+ json-glib/json-path.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit b5570400cbd95f46373dfce2877c6599802bec21
+Author: bi <bisnard@antidot.net>
+Date:   Wed May 15 16:06:48 2013 +0200
+
+    Handle invalid path : missing member name after .
+    
+    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+
+ json-glib/json-path.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 730761d0ab3b9a72cea0b5cf806e656ec93f8a11
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 11:11:25 2013 +0000
+
+    docs: Add wiki link to the README file
+
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 4df9e2a6157e9d874e6393f50143bb28bdef3ef8
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 11:05:53 2013 +0000
+
+    docs: Further clean ups of the README
+    
+    Reword the description, and fit everything on a 80 columns margin.
+
+ README.md | 48 ++++++++++++++++++++++++------------------------
+ 1 file changed, 24 insertions(+), 24 deletions(-)
+
+commit 567d6470f4fc88a650dd11ed28f414537dd4c6da
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 11:00:19 2013 +0000
+
+    Clean up the README
+    
+    Update the requirements, and clean up the text.
+
+ README.md | 47 +++++++++++++++++++++++++++--------------------
+ 1 file changed, 27 insertions(+), 20 deletions(-)
+
+commit 3c0ec689cdba1379791da3bcc1ad07c46416ac9a
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 10:46:57 2013 +0000
+
+    build: Move the pkg-config file under json-glib
+    
+    The pkg-config file for a library is tied to the source, so it should
+    not be in the top-level of the project.
+
+ Makefile.am               | 11 -----------
+ configure.ac              |  3 +--
+ json-glib.pc.in           | 11 -----------
+ json-glib/Makefile.am     | 10 ++++++++++
+ json-glib/json-glib.pc.in | 11 +++++++++++
+ 5 files changed, 22 insertions(+), 24 deletions(-)
+
+commit 287628bc003ae3d3e1893898c5e1a8959f895f52
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 10:41:37 2013 +0000
+
+    build: Drop unnecessary linker flags
+    
+    The -no-undefined linker flag is needed only when compiling for Windows,
+    and it's added conditionally. Except that we also add it unconditionally
+    in the LDFLAGS used for the libjson-glib-1.0 shared object. Whoopsie.
+    
+    We should also drop the unneeded -rpath: distributions will go out of
+    their way to patch it out in any case.
+
+ json-glib/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7ab837c98a10cc1464318e4e4d04426b6fcc070b
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 10:40:43 2013 +0000
+
+    build: Fix syntax error in --enable-man define
+    
+    A missing comma was triggering a bad substitution and a warning when
+    running the configure script.
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 45e06f80b97e4b2dc0d6a1a6c806013a07113262
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Dec 2 10:30:13 2013 +0000
+
+    build: Clean up unnecessary complications
+    
+    We don't need a custom Makefile for quiet rules: AM_V_GEN is pretty much
+    all we use anyway.
+    
+    The Makefile.am.gtest file is not included any longer, since we switched
+    to TAP and GLib's own rules for unit testing.
+
+ Makefile.am                           | 12 +++---
+ build/autotools/Makefile.am           |  1 -
+ build/autotools/Makefile.am.enums     |  4 +-
+ build/autotools/Makefile.am.gitignore |  2 +-
+ build/autotools/Makefile.am.gtest     | 74 -----------------------------------
+ build/autotools/Makefile.am.marshal   |  4 +-
+ build/autotools/Makefile.am.silent    | 11 ------
+ configure.ac                          |  2 -
+ doc/reference/Makefile.am             | 11 ------
+ json-glib/Makefile.am                 |  2 -
+ 10 files changed, 10 insertions(+), 113 deletions(-)
+
+commit 01614d512891057ed417768a85868a1382fd9bc0
+Author: Aurimas Černius <aurisc4@gmail.com>
+Date:   Sun Dec 1 18:07:23 2013 +0200
+
+    Updated Lithuanian translation
+
+ po/lt.po | 196 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 143 insertions(+), 53 deletions(-)
+
+commit cda0a32cc6e2e45e4af58eb53a31fbfc0a9cc9ff
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sat Nov 23 12:45:59 2013 +0000
+
+    build: Use the correct TAP driver
+    
+    Re-sync with GLib's TAP harness.
+
+ build/autotools/Makefile.am   |   3 +-
+ build/autotools/glib-tap.mk   |   2 +-
+ build/autotools/tap-driver.sh | 652 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 655 insertions(+), 2 deletions(-)
+
+commit 36cc15ea015640a044d499cdf983f76e11184286
+Author: Dimitris Spingos <dmtrs32@gmail.com>
+Date:   Thu Nov 14 11:25:18 2013 +0200
+
+    Updated Greek translation
+
+ po/el.po | 169 ++++++++++++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 130 insertions(+), 39 deletions(-)
+
+commit 9931570f6df75093e31c6770361f2f4544d846da
+Author: Fran Diéguez <fran.dieguez@mabishu.com>
+Date:   Fri Nov 1 15:29:07 2013 +0100
+
+    Updated Galician translations
+
+ po/gl.po | 164 +++++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 128 insertions(+), 36 deletions(-)
+
+commit e21f7de27c64748a44985af9165cbb9066b19bbc
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:   Thu Oct 31 18:23:18 2013 +0100
+
+    Updated Spanish translation
+
+ po/es.po | 178 +++++++++++++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 133 insertions(+), 45 deletions(-)
+
+commit 80a6da1d5571f4a75a4de83ff7d63dd6668dbc94
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Oct 28 12:55:43 2013 +0000
+
+    docs: Include tool man pages in the API reference
+    
+    The small utilities we ship should have their main pages included in the
+    API reference, similarly to what GLib does.
+
+ doc/reference/json-glib-docs.xml | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 42c36ba1c5a04a60bf1a6ec221c722b6c0136562
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Oct 28 11:17:06 2013 +0000
+
+    Improve consistency in error messages
+    
+    Use the same spacing and formatting rules.
+
+ json-glib/json-glib-format.c   | 4 ++--
+ json-glib/json-glib-validate.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit a6816327ece4edbce8903967780364638752616a
+Author: Enrico Nicoletto <liverig@gmail.com>
+Date:   Mon Oct 28 09:04:56 2013 -0200
+
+    Updated Brazilian Portuguese translation
+
+ po/pt_BR.po | 170 ++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 132 insertions(+), 38 deletions(-)
+
+commit 06ba2cd30373f2043fe1f09a12e11eae52aa5842
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Mon Oct 28 00:07:33 2013 +0000
+
+    po: Add utilities to the POTFILES
+    
+    They come with translatable strings.
+
+ po/POTFILES.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 15d5439f05ecf933258c19995fc684f709327541
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Oct 27 23:45:33 2013 +0000
+
+    Add abicheck.sh test output to the ignored files
+
+ .gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8ec28bcaac3d5134670e5f51fbd8646ec741e8c7
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Oct 27 23:43:19 2013 +0000
+
+    build: Clean up configure summary
+
+ configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 436ed4f2b0ce86764c84af8e0ad4b1181a287050
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Oct 27 23:11:56 2013 +0000
+
+    docs: Add infrastructure to build man pages
+    
+    The small utilities we build and install should have their own manual
+    pages.
+
+ .gitignore                           |  2 +
+ build/autotools/Makefile.am          |  1 +
+ build/autotools/jh-catalog.m4        | 54 ++++++++++++++++++++++++
+ configure.ac                         | 50 ++++++++++++++++++++++
+ doc/reference/Makefile.am            | 31 ++++++++++++--
+ doc/reference/json-glib-format.xml   | 81 ++++++++++++++++++++++++++++++++++++
+ doc/reference/json-glib-validate.xml | 67 +++++++++++++++++++++++++++++
+ 7 files changed, 283 insertions(+), 3 deletions(-)
+
+commit 848e954addf5a9a54beb37d86f684b37d0d595f1
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sun Oct 27 16:43:54 2013 +0000
+
+    Add format tool
+    
+    A simple command line utility to format JSON data; it allows prettifying
+    and unprettifying JSON.
+
+ .gitignore                   |   1 +
+ json-glib/Makefile.am        |   5 +-
+ json-glib/json-glib-format.c | 211 +++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 216 insertions(+), 1 deletion(-)
+
+commit 1fcc3dd0956ae381444f2b1808f39424a2192a6f
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sat Oct 26 20:44:31 2013 +0100
+
+    Add validation tool
+    
+    The json-glib-validate tool is a small utility that validates the data
+    found at the URIs passed on its command line.
+
+ .gitignore                     |   1 +
+ json-glib/Makefile.am          |   7 ++
+ json-glib/json-glib-validate.c | 171 +++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 179 insertions(+)
+
+commit a40e07510208456eeb52776a5ab1d8eb90625fbc
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sat Oct 26 20:43:36 2013 +0100
+
+    parser: Always perform UTF-8 validation
+    
+    JSON is defined to be encoded using UTF-8, so we should not rely on
+    the documentation saying so when parsing, but validate the input and
+    eventually provide a recoverable parsing error.
+
+ json-glib/json-parser.c | 9 +++++++++
+ json-glib/json-parser.h | 2 ++
+ 2 files changed, 11 insertions(+)
+
+commit e71d87eefe4fa51b9a391187c7b41d4c04333e02
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sat Oct 26 20:39:39 2013 +0100
+
+    parser: Always use a valid GError internally
+    
+    Do not just pass the GError through from the public-facing arguments: we
+    may want to perform error checking internally at any later date.
+
+ json-glib/json-parser.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+commit 288f8300977c2f7fb3912c147395fef8e1fe016e
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Sat Oct 26 20:38:59 2013 +0100
+
+    build: Clean up the main Makefile.am
+
+ json-glib/Makefile.am | 44 ++++++++++++++++++++++++++++----------------
+ 1 file changed, 28 insertions(+), 16 deletions(-)
+
+commit ce46c06d9c088501c8cbab2dba51856be1a05592
+Author: Juan A. Suarez Romero <jasuarez@igalia.com>
+Date:   Wed Sep 18 17:52:17 2013 +0000
+
+    path: Check if JSONPath expression is NULL
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=708318
+
+ json-glib/json-path.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit a876adb3f3a20d87d76f3bf6902a64dd912c47cf
+Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
+Date:   Thu Sep 19 08:12:04 2013 +0900
+
+    l10n: Update Japanese translation
+
+ po/ja.po | 80 ++++++++++++++++++++++++++++++++--------------------------------
+ 1 file changed, 40 insertions(+), 40 deletions(-)
+
+commit 17dbdd5cce26f257a522ba0c218a05753e1fa3b1
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Fri Aug 30 16:41:41 2013 +0800
+
+    Visual C++ Builds: Use Custom Build Rules
+    
+    ...so that the json-glib.def file can be regenerated as automatically
+    when the json-glib.symbols file is updated, and the json-glib.def can be
+    automatically deleted on a "clean" request.
+    
+    Also drop some unneeded items from the property sheets.
+
+ build/win32/vs10/json-glib.props             |  8 ++---
+ build/win32/vs10/json-glib.vcxproj.filtersin |  3 ++
+ build/win32/vs10/json-glib.vcxprojin         | 28 +++++++++-------
+ build/win32/vs9/json-glib.vcprojin           | 50 +++++++++++++++++++---------
+ build/win32/vs9/json-glib.vsprops            | 10 ++----
+ 5 files changed, 58 insertions(+), 41 deletions(-)
+
+commit 8e71b3e89d1852414ab27801e873f37e472fec12
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Wed Aug 28 11:57:45 2013 +0800
+
+    MSVC Builds: Build the invalid test program
+    
+    Add project files to build the "invalid" test program.
+
+ build/win32/vs10/Makefile.am             |   2 +
+ build/win32/vs10/install.vcxproj         |   4 +
+ build/win32/vs10/invalid.vcxproj         | 167 +++++++++++++++++++++++++++++++
+ build/win32/vs10/invalid.vcxproj.filters |  14 +++
+ build/win32/vs10/json-glib.sln           |  10 ++
+ build/win32/vs9/Makefile.am              |   1 +
+ build/win32/vs9/invalid.vcproj           | 153 ++++++++++++++++++++++++++++
+ build/win32/vs9/json-glib.sln            |  14 +++
+ 8 files changed, 365 insertions(+)
+
+commit 590a6ce8cecfd6fdfb22c7765bca20f5da3aa3d6
+Author: Chun-wei Fan <fanchunwei@src.gnome.org>
+Date:   Wed Aug 28 11:43:40 2013 +0800
+
+    MSVC Builds: Drop Unneeded Defines
+    
+    ...since we are using GLib APIs to locate test data files since
+    commit b8baa2a0
+
+ build/win32/vs10/parser.vcxproj | 8 ++++----
+ build/win32/vs9/parser.vcproj   | 8 ++++----
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+commit df8ff199e2a56f5b0430dbe6c7a30addac5fcb42
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Aug 22 12:10:07 2013 +0100
+
+    Drop some more pointless GET_PRIVATE macros
+    
+    We can use the autogenerated get_instance_private() function.
+
+ json-glib/json-builder.c   |  8 +++-----
+ json-glib/json-generator.c | 11 +++++------
+ 2 files changed, 8 insertions(+), 11 deletions(-)
+
+commit 141b0a4a2b3b4ef7d9f8769aef5b43f7fb841edd
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Aug 22 12:02:01 2013 +0100
+
+    parser: Fix all occurances of TESTS_DATA_DIR
+    
+    And use g_test_build_filename().
+
+ json-glib/tests/parser.c | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+commit b8baa2a07e6b125f38a3a9a0101cf9b887790ea5
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Aug 22 11:50:14 2013 +0100
+
+    parser: Use the proper GLib API to find test data files
+    
+    Instead of our homegrown solution. This should fix the regression in the
+    installed tests case.
+    
+    Original patch by: Colin Walters <walters@verbum.org>
+
+ json-glib/tests/Makefile.am | 1 -
+ json-glib/tests/parser.c    | 7 +------
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+commit 66aa02b0da6d9964f38c4531f775f7c25b07af7d
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Aug 22 11:46:11 2013 +0100
+
+    parser: Drop a pointless macro
+    
+    The JSON_PARSER_GET_PRIVATE macro is pointless, now that we use the new
+    version of GLib.
+
+ json-glib/json-parser.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 5b6ada6b362f3ff160608c00bcffbb8f2b8eff7b
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Aug 21 12:16:10 2013 +0100
+
+    Remove compile time GLib version check
+    
+    We depend on a new version of GLib, so we can remove a bunch of old
+    version checks.
+
+ json-glib/json-builder.c            | 14 +-------------
+ json-glib/json-generator.c          | 14 +-------------
+ json-glib/json-gobject.c            |  8 --------
+ json-glib/json-parser.c             | 14 +-------------
+ json-glib/json-reader.c             | 13 -------------
+ json-glib/tests/array.c             |  4 ----
+ json-glib/tests/boxed.c             |  3 ---
+ json-glib/tests/builder.c           |  3 ---
+ json-glib/tests/generator.c         |  3 ---
+ json-glib/tests/gvariant.c          |  3 ---
+ json-glib/tests/invalid.c           |  3 ---
+ json-glib/tests/node.c              |  3 ---
+ json-glib/tests/object.c            |  3 ---
+ json-glib/tests/parser.c            |  3 ---
+ json-glib/tests/path.c              |  3 ---
+ json-glib/tests/reader.c            |  3 ---
+ json-glib/tests/serialize-complex.c |  3 ---
+ json-glib/tests/serialize-full.c    |  3 ---
+ json-glib/tests/serialize-simple.c  |  3 ---
+ 19 files changed, 3 insertions(+), 103 deletions(-)
+
+commit 361e427316cc50b52e4b8f0a71a2b29d1a02ed36
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Aug 21 12:08:44 2013 +0100
+
+    path: Remove unused variable
+
+ json-glib/json-path.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6c3f870f10465602c2570e0ba3d2311587437977
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Aug 21 12:07:39 2013 +0100
+
+    tests: Use the new TAP support in GTest
+    
+    Instead of using the old GLib test harness, we should use the newly
+    added TAP support and the TAP driver inside autotools.
+
+ .gitignore                            |   1 +
+ build/autotools/Makefile.am           |  14 +---
+ build/autotools/Makefile.am.gitignore |   8 +-
+ build/autotools/glib-tap.mk           | 134 ++++++++++++++++++++++++++++++++++
+ build/autotools/glibtests.m4          |  28 +++++++
+ build/autotools/tap-test              |   5 ++
+ configure.ac                          |  11 +--
+ json-glib/Makefile.am                 |  10 +--
+ json-glib/tests/Makefile.am           |  52 ++-----------
+ 9 files changed, 189 insertions(+), 74 deletions(-)
+
+commit edfa380703f289c509a442d2467f1f8cfa189fff
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Aug 21 12:01:32 2013 +0100
+
+    Require GLib >= 2.37.6
+    
+    We're going to need the latest snapshot.
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 577f7987896a3cfebe5e43d8ebbd94692ee34020
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed Aug 21 12:01:07 2013 +0100
+
+    Bump to 0.17.1
+    
+    Start a new development cycle.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f9012e0760aea54e652acde3a3ab9cc8e154e3b0
+Author: Fabio Tomat <f.t.public@gmail.com>
+Date:   Tue Aug 20 15:14:12 2013 +0200
+
+    Added Friulian translation
+
+ po/fur.po | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 157 insertions(+)
+
+commit 3fd47359707dfc15277cef505d4008c10d8455e9
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Jul 11 17:04:13 2013 +0100
+
+    Use new macros when compiling against new GLib
+    
+    If we're being compiled against a newer version of GLib, we should use
+    the new macros that add instance private data.
+    
+    Since this is a stable branch, we cannot bump the GLib requirement; so
+    we use version checks to conditionally compile the new code.
+
+ json-glib/json-builder.c   | 15 ++++++++++++---
+ json-glib/json-generator.c | 15 ++++++++++++---
+ json-glib/json-parser.c    | 12 +++++++++++-
+ json-glib/json-reader.c    | 10 ++++++++++
+ 4 files changed, 45 insertions(+), 7 deletions(-)
+
+commit a9327484746820a5a2b8c1acf4a78470b004f0a0
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu Jul 11 16:49:14 2013 +0100
+
+    build: Add configure option to enable -Bsymbolic
+    
+    We should always compile with -Bsymbolic enabled to avoid intra-library
+    PLT jumps.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=703734
+
+ configure.ac | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+commit 8673d5abca21f4c1729c26d7ada1a409e5842572
+Author: Victor Ibragimov <victor.ibragimov@gmail.com>
+Date:   Wed Jul 17 13:47:38 2013 +0500
+
+    Tajik translation updated
+
+ po/tg.po | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+commit 0d6d965d692d0863ee8f0114e2abdd66cdd69f21
+Author: Victor Ibragimov <victor.ibragimov@gmail.com>
+Date:   Wed Jun 5 14:31:15 2013 +0500
+
+    Tajik updated
+
+ po/tg.po | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+commit 10930960f20a61478244187e290433558f0a1155
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Fri May 17 00:21:36 2013 +0100
+
+    build: Add ltp 1.10 to the whitelist
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 53431a7f034cbee724c9115783538c087dc07d31
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 23:37:05 2013 +0100
+
+    build: Remove INCLUDES
+    
+    It has been replaced by AM_CPPFLAGS for a while.
+
+ doc/reference/Makefile.am | 2 +-
+ json-glib/Makefile.am     | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 3e9858cb9c34f492ad0859bd262c8c4691260b41
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 23:27:56 2013 +0100
+
+    build: Add --enable-installed-tests
+    
+    See https://live.gnome.org/GnomeGoals/InstalledTests for more
+    information.
+    
+    It's still possible to run `make check` with locally uninstalled tests.
+
+ .gitignore                  |  1 +
+ configure.ac                | 16 +++++++++++++++-
+ json-glib/tests/Makefile.am | 46 +++++++++++++++++++++++++++++++++++++--------
+ json-glib/tests/parser.c    | 24 ++++++++++++++++++++---
+ 4 files changed, 75 insertions(+), 12 deletions(-)
+
+commit a595c61dbd2dd6f16acc2549504f553c76551752
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 10:47:09 2013 +0100
+
+    tests: Improve the JsonPath suite
+    
+    Run each expression as a separate unit, so we can catch errors more
+    quickly and easily.
+
+ json-glib/tests/path.c | 182 ++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 121 insertions(+), 61 deletions(-)
+
+commit 72a3a8f71003d40087c59371d07df5b59f2df3a7
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 10:16:02 2013 +0100
+
+    debug: Clean up debug flags accessor
+    
+    Mark json_get_debug_flags() as an internal function, and drop the '_'
+    prefix; also, add a simple macro that we can use everywhere to mask the
+    function call.
+
+ json-glib/json-debug.c | 8 ++++----
+ json-glib/json-debug.h | 9 ++++++---
+ json-glib/json-path.c  | 7 ++++++-
+ 3 files changed, 16 insertions(+), 8 deletions(-)
+
+commit 5b89c6438b8c1bf7a7b1476305a4e20f2c34234b
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 10:05:51 2013 +0100
+
+    path: Move debug dump of the path into its own function
+    
+    The path parsing function is already pretty long, so we should isolate
+    the debugging code out of the way.
+
+ json-glib/json-path.c | 123 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 62 insertions(+), 61 deletions(-)
+
+commit c912213d05ea9cacb5ba87f25c76581737c6fbf6
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Thu May 16 10:02:50 2013 +0100
+
+    Use G_DEFINE_QUARK macro
+    
+    Instead of hand-writing the error domain function ourselves.
+
+ json-glib/json-parser.c | 10 +++-------
+ json-glib/json-path.c   |  8 ++------
+ json-glib/json-reader.c | 10 +++-------
+ 3 files changed, 8 insertions(+), 20 deletions(-)
+
+commit ff226427bd4ab911f30a985a2c60e3eaca51c066
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed May 15 21:51:09 2013 +0100
+
+    Update ignore file for autotools 1.13
+
+ .gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e034cb033a6ba198cf22cd0601ab65bfd8c5b8dd
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed May 15 21:50:01 2013 +0100
+
+    tests/path: Start adding negative tests for JsonPath
+
+ json-glib/tests/path.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+commit 72909d28f48365f249e87ddb0ebea8ad0f0adac1
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Wed May 15 21:39:46 2013 +0100
+
+    tests/path: Allow testing for valid queries
+    
+    This will allow adding negative tests to JsonPath.
+    
+    The tests will only be caught when compiling the query; an invalid query
+    won't return a match, so there's no point to check matches.
+
+ json-glib/tests/path.c | 64 +++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 50 insertions(+), 14 deletions(-)
+
+commit 69d50a83b1def47bdb6e3d5e2ef8f59081515dd5
+Author: Emmanuele Bassi <ebassi@gnome.org>
+Date:   Tue Apr 16 20:02:18 2013 +0100
+
+    Post-release version bump to 0.16.1
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
 commit 2a0e59c07aaf3788ace907e62a1b5140e919992f
 Author: Emmanuele Bassi <ebassi@gnome.org>
 Date:   Tue Apr 16 19:56:26 2013 +0100
index 3b9edab..d2dbe69 100644 (file)
@@ -1,23 +1,10 @@
-include $(top_srcdir)/build/autotools/Makefile.am.gtest
-include $(top_srcdir)/build/autotools/Makefile.am.silent
-
 ACLOCAL_AMFLAGS = -I build/autotools
 
-SUBDIRS = json-glib doc build po
-
-pcfiles = json-glib-1.0.pc
-
-json-glib-1.0.pc: json-glib.pc
-       $(QUIET_GEN)cp -f $< $@
+EXTRA_DIST =
 
-pkgconfig_DATA = $(pcfiles)
-pkgconfigdir = $(libdir)/pkgconfig
-
-EXTRA_DIST += json-glib.pc.in
-
-CLEANFILES = $(pcfiles) test-report.xml
+SUBDIRS = json-glib doc build po
 
-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-maintainer-flags --enable-introspection
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man --enable-maintainer-flags --enable-introspection
 
 dist-hook:
        @if test -d "$(srcdir)/.git"; then \
index 007dda8..ae7010b 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-
-# JSON-GLib - JSON reader and writer library
-
-# custom rules for quiet builds
-
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,26 +87,18 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(top_srcdir)/build/autotools/Makefile.am.gtest \
-       $(top_srcdir)/build/autotools/Makefile.am.silent \
-       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(top_srcdir)/configure $(am__configure_deps) \
-       $(srcdir)/config.h.in $(srcdir)/json-glib.pc.in ABOUT-NLS \
-       COPYING NEWS $(top_srcdir)/build/compile \
-       $(top_srcdir)/build/config.guess \
-       $(top_srcdir)/build/config.rpath \
-       $(top_srcdir)/build/config.sub $(top_srcdir)/build/install-sh \
-       $(top_srcdir)/build/ltmain.sh $(top_srcdir)/build/missing
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -88,11 +113,13 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+       $(am__configure_deps) $(am__DIST_COMMON)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = json-glib.pc
+CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -121,35 +148,6 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
-DATA = $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 am__recursive_targets = \
@@ -180,6 +178,12 @@ ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+       $(top_srcdir)/build/compile $(top_srcdir)/build/config.guess \
+       $(top_srcdir)/build/config.rpath \
+       $(top_srcdir)/build/config.sub $(top_srcdir)/build/install-sh \
+       $(top_srcdir)/build/ltmain.sh $(top_srcdir)/build/missing \
+       ABOUT-NLS COPYING NEWS
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -261,6 +265,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -285,6 +290,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -306,6 +312,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -342,6 +349,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -375,6 +385,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -394,33 +406,17 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-GTESTER = gtester
-GTESTER_REPORT = gtester-report
-
-# initialize variables for unconditional += appending
-EXTRA_DIST = json-glib.pc.in
-TEST_PROGS = 
-QUIET_GEN = $(AM_V_GEN)
-QUIET_LN = $(QUIET_LN_$(V))
-QUIET_LN_ = $(QUIET_LN_$(AM_DEFAULT_VERBOSITY))
-QUIET_LN_0 = @echo '  LN     '$@;
-QUIET_RM = $(QUIET_RM_$(V))
-QUIET_RM_ = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
-QUIET_RM_0 = @echo '  RM     '$@;
 ACLOCAL_AMFLAGS = -I build/autotools
+EXTRA_DIST = 
 SUBDIRS = json-glib doc build po
-pcfiles = json-glib-1.0.pc
-pkgconfig_DATA = $(pcfiles)
-pkgconfigdir = $(libdir)/pkgconfig
-CLEANFILES = $(pcfiles) test-report.xml
-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-maintainer-flags --enable-introspection
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man --enable-maintainer-flags --enable-introspection
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
 am--refresh: Makefile
        @:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.silent $(am__configure_deps)
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -433,7 +429,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Make
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -443,7 +438,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
        esac;
-$(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.silent:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        $(SHELL) ./config.status --recheck
@@ -455,8 +449,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @test -f $@ || rm -f stamp-h1
+       @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -468,8 +462,6 @@ $(srcdir)/config.h.in:  $(am__configure_deps)
 
 distclean-hdr:
        -rm -f config.h stamp-h1
-json-glib.pc: $(top_builddir)/config.status $(srcdir)/json-glib.pc.in
-       cd $(top_builddir) && $(SHELL) ./config.status $@
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -479,27 +471,6 @@ clean-libtool:
 
 distclean-libtool:
        -rm -f libtool config.lt
-install-pkgconfigDATA: $(pkgconfig_DATA)
-       @$(NORMAL_INSTALL)
-       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
-       fi; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
-       done
-
-uninstall-pkgconfigDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run 'make' without going through this Makefile.
@@ -508,13 +479,12 @@ uninstall-pkgconfigDATA:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -691,10 +661,16 @@ dist-xz: distdir
        $(am__post_remove_distdir)
 
 dist-tarZ: distdir
+       @echo WARNING: "Support for distribution archives compressed with" \
+                      "legacy program 'compress' is deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
        $(am__post_remove_distdir)
 
 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
        $(am__post_remove_distdir)
 
@@ -729,16 +705,17 @@ distcheck: dist
        esac
        chmod -R a-w $(distdir)
        chmod u+w $(distdir)
-       mkdir $(distdir)/_build $(distdir)/_inst
+       mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
          && am__cwd=`pwd` \
-         && $(am__cd) $(distdir)/_build \
-         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+         && $(am__cd) $(distdir)/_build/sub \
+         && ../../configure \
            $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
+           --srcdir=../.. --prefix="$$dc_install_base" \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
          && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -792,14 +769,10 @@ distcleancheck: distclean
               $(distcleancheck_listfiles) ; \
               exit 1; } >&2
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-local
 check: check-recursive
-all-am: Makefile $(DATA) config.h
+all-am: Makefile config.h
 installdirs: installdirs-recursive
 installdirs-am:
-       for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
 install: install-recursive
 install-exec: install-exec-recursive
 install-data: install-data-recursive
@@ -822,7 +795,6 @@ install-strip:
 mostlyclean-generic:
 
 clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -853,7 +825,7 @@ info: info-recursive
 
 info-am:
 
-install-data-am: install-pkgconfigDATA
+install-data-am:
 
 install-dvi: install-dvi-recursive
 
@@ -899,97 +871,29 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-pkgconfigDATA
+uninstall-am:
 
-.MAKE: $(am__recursive_targets) all check-am install-am install-strip
+.MAKE: $(am__recursive_targets) all install-am install-strip
 
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
-       am--refresh check check-am check-local clean clean-cscope \
-       clean-generic clean-libtool cscope cscopelist-am ctags \
-       ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
-       dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
-       distclean distclean-generic distclean-hdr distclean-libtool \
+       am--refresh check check-am clean clean-cscope clean-generic \
+       clean-libtool cscope cscopelist-am ctags ctags-am dist \
+       dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+       dist-tarZ dist-xz dist-zip distcheck distclean \
+       distclean-generic distclean-hdr distclean-libtool \
        distclean-tags distcleancheck distdir distuninstallcheck dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-dvi install-dvi-am \
        install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-pdf \
-       install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am tags tags-am uninstall uninstall-am \
-       uninstall-pkgconfigDATA
-
-
-### testing rules
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am
 
-# test: run all tests in cwd and subdirs
-test: test-nonrecursive
-       @for subdir in $(SUBDIRS) . ; do \
-         test "$$subdir" = "." -o "$$subdir" = "po" || \
-         ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-       done
+.PRECIOUS: Makefile
 
-# test-nonrecursive: run tests only in cwd
-test-nonrecursive: ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
-
-# test-report: run tests in subdirs and generate report
-# perf-report: run tests in subdirs with -m perf and generate report
-# full-report: like test-report: with -m perf and -m slow
-test-report perf-report full-report:   ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || { \
-         case $@ in \
-         test-report) test_options="-k";; \
-         perf-report) test_options="-k -m=perf";; \
-         full-report) test_options="-k -m=perf -m=slow";; \
-         esac ; \
-         if test -z "$$GTESTER_LOGDIR" ; then  \
-           ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
-         elif test -n "${TEST_PROGS}" ; then \
-           ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
-         fi ; \
-       }
-       @ ignore_logdir=true ; \
-         if test -z "$$GTESTER_LOGDIR" ; then \
-           GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
-           ignore_logdir=false ; \
-         fi ; \
-         if test -d "$(top_srcdir)/.git"; then \
-           export REVISION="`git describe`" ;  \
-         else \
-           export REVISION="$(JSON_VERSION) $(JSON_RELEASE_STATUS)" ; \
-         fi ; \
-         export TIMESTAMP=`date +%Y-%m-%dT%H:%M:%S%z` ; \
-         for subdir in $(SUBDIRS) . ; do \
-           test "$$subdir" = "." -o "$$subdir" = "po" || \
-           ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-         done ; \
-         $$ignore_logdir || { \
-           echo '<?xml version="1.0"?>'                 > $@.xml ; \
-           echo '<report-collection>'                  >> $@.xml ; \
-           echo '<info>'                               >> $@.xml ; \
-           echo '  <package>$(PACKAGE)</package>'      >> $@.xml ; \
-           echo '  <version>$(JSON_VERSION)</version>' >> $@.xml ; \
-           echo "  <revision>$$REVISION</revision>"    >> $@.xml ; \
-           echo "  <date>$$TIMESTAMP</date>"           >> $@.xml ; \
-           echo '</info>'                              >> $@.xml ; \
-           for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
-             sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
-           done ; \
-           echo >> $@.xml ; \
-           echo '</report-collection>' >> $@.xml ; \
-           rm -rf "$$GTESTER_LOGDIR"/ ; \
-           ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
-         }
-.PHONY: test test-report perf-report full-report test-nonrecursive
-
-# run tests in cwd as part of make check
-check-local: test-nonrecursive
-
-json-glib-1.0.pc: json-glib.pc
-       $(QUIET_GEN)cp -f $< $@
 
 dist-hook:
        @if test -d "$(srcdir)/.git"; then \
diff --git a/NEWS b/NEWS
index 0321670..711d37a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,27 @@
+Overview of changes for 1.2
+==============================
+• Add simple wrapper functions for JsonGenerator and JsonParser to
+  write and read a string from and to a JsonNode, respectively
+• Drop use of deprecated GIO API
+• Bump the dependency on GLib to 2.46
+• Do not create `null` nodes for empty strings [#730803]
+• Documentation fixes [Philip Withnall - #754384]
+• Avoid crashes in the test suite [Iain Lane - #755977]
+• Add simple iterator object for JSON objects [Philip Withnall - #755509]
+• Detect missing commas in arrays
+• Add support for g_auto* macros
+• Allow making JSON types optionally immutable, in order to allow
+  efficient hashing and equality tests [Philip Withnal - #756121]
+
+Overview of changes for 1.0
+==============================
+• Bump the dependency on GLib to 2.38
+• Use the TAP driver for the test suite
+• Improve the syntax validation in JsonPath
+• Validate the JsonParser input to be UTF-8
+• Add command line tools for validating and formatting JSON
+• Improve documentation
+
 Overview of changes for 0.16.0
 ==============================
 • Fixes for building with VisualStudio. [Chun-wei Fan]
index ee43e64..958a833 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.13.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -220,6 +220,21 @@ m4_popdef([pkg_default])
 m4_popdef([pkg_description])
 ]) dnl PKG_NOARCH_INSTALLDIR
 
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
 # Configure paths for GLIB
 # Owen Taylor     1997-2001
 
@@ -315,13 +330,10 @@ int
 main ()
 {
   unsigned int major, minor, micro;
-  char *tmp_version;
 
   fclose (fopen ("conf.glibtest", "w"));
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+  if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
      printf("%s, bad version string\n", "$min_glib_version");
      exit(1);
    }
@@ -435,7 +447,7 @@ main ()
   rm -f conf.glibtest
 ])
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -447,10 +459,10 @@ main ()
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.13.1], [],
+m4_if([$1], [1.15], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -466,14 +478,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.1])dnl
+[AM_AUTOMAKE_VERSION([1.15])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -518,15 +530,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 # configured tree to be moved without reconfiguration.
 
 AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -557,7 +568,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -748,7 +759,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -788,7 +799,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
@@ -824,7 +835,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -833,6 +844,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -908,8 +925,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -941,6 +958,51 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
 ])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
@@ -949,7 +1011,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -971,7 +1032,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -982,7 +1043,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\    *)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -992,7 +1053,7 @@ if test x"${install_sh}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1013,7 +1074,7 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1061,41 +1122,9 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
-          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1132,7 +1161,7 @@ else
 fi
 ])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1144,7 +1173,8 @@ fi
 AC_DEFUN([AM_PROG_MKDIR_P],
 [AC_PREREQ([2.60])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl FIXME to be removed in Automake 1.14.
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
 AC_DIAGNOSE([obsolete],
 [$0: this macro is deprecated, and will soon be removed.
 You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
@@ -1165,7 +1195,7 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1194,7 +1224,54 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1213,7 +1290,7 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1294,7 +1371,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1354,7 +1431,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1382,7 +1459,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1401,7 +1478,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1420,76 +1497,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
@@ -1497,10 +1612,12 @@ AC_SUBST([am__untar])
 m4_include([build/autotools/as-compiler-flag.m4])
 m4_include([build/autotools/as-linguas.m4])
 m4_include([build/autotools/gettext.m4])
+m4_include([build/autotools/glibtests.m4])
 m4_include([build/autotools/gtk-doc.m4])
 m4_include([build/autotools/iconv.m4])
 m4_include([build/autotools/intlmacosx.m4])
 m4_include([build/autotools/introspection.m4])
+m4_include([build/autotools/jh-catalog.m4])
 m4_include([build/autotools/lib-ld.m4])
 m4_include([build/autotools/lib-link.m4])
 m4_include([build/autotools/lib-prefix.m4])
index 1ea5eab..2950238 100644 (file)
@@ -1,11 +1 @@
 SUBDIRS = autotools win32
-
-test-report:
-       @true
-
-test:
-       @true
-
-check-local: test
-
-.PHONY: test-report test check-local
index 7f60a12..bd729bf 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,18 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = build
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am compile \
-       config.guess config.rpath config.sub install-sh missing \
-       ltmain.sh
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -76,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -135,6 +173,8 @@ am__define_uniq_tagged_files = \
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in compile config.guess \
+       config.rpath config.sub install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -200,6 +240,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -224,6 +265,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -245,6 +287,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -281,6 +324,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -314,6 +360,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -349,7 +397,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign build/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -381,13 +428,12 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -530,7 +576,6 @@ distdir: $(DISTFILES)
          fi; \
        done
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-local
 check: check-recursive
 all-am: Makefile
 installdirs: installdirs-recursive
@@ -631,32 +676,23 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(am__recursive_targets) check-am install-am install-strip
+.MAKE: $(am__recursive_targets) install-am install-strip
 
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-       check-am check-local clean clean-generic clean-libtool \
-       cscopelist-am ctags ctags-am distclean distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
-       uninstall-am
-
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
 
-test-report:
-       @true
-
-test:
-       @true
-
-check-local: test
+.PRECIOUS: Makefile
 
-.PHONY: test-report test check-local
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index ca20ec7..663f44d 100644 (file)
@@ -1,20 +1,12 @@
 EXTRA_DIST = \
        as-compiler-flag.m4     \
        as-linguas.m4           \
+       glib-tap.mk             \
+       glibtests.m4            \
        introspection.m4        \
-       Makefile.am.silent      \
+       jh-catalog.m4           \
        Makefile.am.enums       \
        Makefile.am.marshal     \
-       Makefile.am.gtest       \
-       Makefile.am.gitignore
-
-# needed to avoid including Makefile.am.gtest
-test-report:
-       @true
-
-test:
-       @true
-
-check-local: test
-
-.PHONY: test test-report check-local
+       Makefile.am.gitignore   \
+       tap-driver.sh           \
+       tap-test
index 0f34732..2fd69d5 100644 (file)
 #
 # Author: Emmanuele Bassi <ebassi@linux.intel.com>
 
-enum_tmpl_h=$(glib_enum_h:.h=.h.in)
-enum_tmpl_c=$(glib_enum_c:.c=.c.in)
+# Basic sanity checks
+$(if $(GLIB_MKENUMS),,$(error Need to define GLIB_MKENUMS))
+
+$(if $(or $(glib_enum_h), \
+          $(glib_enum_c)),, \
+    $(error Need to define glib_enum_h and glib_enum_c))
+
+$(if $(glib_enum_headers),,$(error Need to define glib_enum_headers))
+
+enum_tmpl_h=$(addprefix $(srcdir)/, $(glib_enum_h:.h=.h.in))
+enum_tmpl_c=$(addprefix $(srcdir)/, $(glib_enum_c:.c=.c.in))
+enum_headers=$(addprefix $(srcdir)/, $(glib_enum_headers))
 
 CLEANFILES += stamp-enum-types
 DISTCLEANFILES += $(glib_enum_h) $(glib_enum_c)
 BUILT_SOURCES += $(glib_enum_h) $(glib_enum_c)
-EXTRA_DIST += $(srcdir)/$(enum_tmpl_h) $(srcdir)/$(enum_tmpl_c)
+EXTRA_DIST += $(enum_tmpl_h) $(enum_tmpl_c)
 
-stamp-enum-types: $(glib_enum_headers) $(srcdir)/$(enum_tmpl_h)
-       $(QUIET_GEN)$(GLIB_MKENUMS) \
-               --template $(srcdir)/$(enum_tmpl_h) \
-       $(glib_enum_headers) > xgen-eh \
+stamp-enum-types: $(enum_headers) $(enum_tmpl_h)
+       $(AM_V_GEN)$(GLIB_MKENUMS) \
+               --template $(enum_tmpl_h) \
+       $(enum_headers) > xgen-eh \
        && (cmp -s xgen-eh $(glib_enum_h) || cp -f xgen-eh $(glib_enum_h)) \
        && rm -f xgen-eh \
        && echo timestamp > $(@F)
@@ -34,10 +44,9 @@ stamp-enum-types: $(glib_enum_headers) $(srcdir)/$(enum_tmpl_h)
 $(glib_enum_h): stamp-enum-types
        @true
 
-$(glib_enum_c): $(glib_enum_h) $(srcdir)/$(enum_tmpl_c)
-       $(QUIET_GEN)$(GLIB_MKENUMS) \
-               --template $(srcdir)/$(enum_tmpl_c) \
-       $(glib_enum_headers) > xgen-ec \
+$(glib_enum_c): $(enum_headers) $(enum_tmpl_h) $(enum_tmpl_c)
+       $(AM_V_GEN)$(GLIB_MKENUMS) \
+               --template $(enum_tmpl_c) \
+       $(enum_headers) > xgen-ec \
        && cp -f xgen-ec $(glib_enum_c) \
        && rm -f xgen-ec
-
index 26fe561..ec3f3c7 100644 (file)
@@ -3,22 +3,25 @@
 # generator of Git ignore files, and it's not meant to be used as
 # the top-level Git ignore file generator.
 
-$(srcdir)/.gitignore: Makefile.am
-       $(QUIET_GEN)( \
-         echo "*.o" ; \
-         echo ".gitignore" ; \
-       ) > $(srcdir)/.gitignore ; \
-       for p in $(noinst_PROGRAMS); do \
-               echo "/$$p" >> $(srcdir)/.gitignore ; \
-       done
+GIT_IGNORE_FILES = $(noinst_PROGRAMS) $(check_PROGRAMS) $(check_SCRIPTS) $(GIT_IGNORE_EXTRA)
 
-gitignore: $(srcdir)/.gitignore
+.gitignore: Makefile.am
+       $(QUIET_GEN)if test -d "$(top_srcdir)/.git"; then \
+               ( echo "*.o" ; \
+                 echo ".gitignore" ; \
+               ) > .gitignore ; \
+               for p in $(GIT_IGNORE_FILES); do \
+                       echo "/$$p" >> .gitignore ; \
+               done \
+       fi
+
+gitignore: .gitignore
 
 gitignore-clean:
-       $(QUIET_RM)rm -f $(srcdir)/.gitignore
+       $(QUIET_RM)rm -f .gitignore
 
 .PHONY: gitignore gitignore-clean
 
-all: gitignore
+all-am: gitignore
 
 maintainer-clean: gitignore-clean
diff --git a/build/autotools/Makefile.am.gtest b/build/autotools/Makefile.am.gtest
deleted file mode 100644 (file)
index 88a123d..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# JSON-GLib - JSON reader and writer library
-
-GTESTER        = gtester
-GTESTER_REPORT = gtester-report
-
-# initialize variables for unconditional += appending
-EXTRA_DIST =
-TEST_PROGS =
-
-### testing rules
-
-# test: run all tests in cwd and subdirs
-test: test-nonrecursive
-       @for subdir in $(SUBDIRS) . ; do \
-         test "$$subdir" = "." -o "$$subdir" = "po" || \
-         ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-       done
-
-# test-nonrecursive: run tests only in cwd
-test-nonrecursive: ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
-
-# test-report: run tests in subdirs and generate report
-# perf-report: run tests in subdirs with -m perf and generate report
-# full-report: like test-report: with -m perf and -m slow
-test-report perf-report full-report:   ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || { \
-         case $@ in \
-         test-report) test_options="-k";; \
-         perf-report) test_options="-k -m=perf";; \
-         full-report) test_options="-k -m=perf -m=slow";; \
-         esac ; \
-         if test -z "$$GTESTER_LOGDIR" ; then  \
-           ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
-         elif test -n "${TEST_PROGS}" ; then \
-           ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
-         fi ; \
-       }
-       @ ignore_logdir=true ; \
-         if test -z "$$GTESTER_LOGDIR" ; then \
-           GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
-           ignore_logdir=false ; \
-         fi ; \
-         if test -d "$(top_srcdir)/.git"; then \
-           export REVISION="`git describe`" ;  \
-         else \
-           export REVISION="$(JSON_VERSION) $(JSON_RELEASE_STATUS)" ; \
-         fi ; \
-         export TIMESTAMP=`date +%Y-%m-%dT%H:%M:%S%z` ; \
-         for subdir in $(SUBDIRS) . ; do \
-           test "$$subdir" = "." -o "$$subdir" = "po" || \
-           ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-         done ; \
-         $$ignore_logdir || { \
-           echo '<?xml version="1.0"?>'                 > $@.xml ; \
-           echo '<report-collection>'                  >> $@.xml ; \
-           echo '<info>'                               >> $@.xml ; \
-           echo '  <package>$(PACKAGE)</package>'      >> $@.xml ; \
-           echo '  <version>$(JSON_VERSION)</version>' >> $@.xml ; \
-           echo "  <revision>$$REVISION</revision>"    >> $@.xml ; \
-           echo "  <date>$$TIMESTAMP</date>"           >> $@.xml ; \
-           echo '</info>'                              >> $@.xml ; \
-           for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
-             sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
-           done ; \
-           echo >> $@.xml ; \
-           echo '</report-collection>' >> $@.xml ; \
-           rm -rf "$$GTESTER_LOGDIR"/ ; \
-           ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
-         }
-.PHONY: test test-report perf-report full-report test-nonrecursive
-
-# run tests in cwd as part of make check
-check-local: test-nonrecursive
index cab117d..89d3222 100644 (file)
 #
 # Author: Emmanuele Bassi <ebassi@linux.intel.com>
 
+# Basic sanity checks
+$(if $(GLIB_GENMARSHAL),,$(error Need to define GLIB_GENMARSHAL))
+
+$(if $(or $(glib_marshal_list), \
+          $(glib_marshal_prefix)),, \
+    $(error Need to define glib_marshal_list and glib_marshal_prefix))
+
 marshal_h = $(glib_marshal_list:.list=.h)
 marshal_c = $(glib_marshal_list:.list=.c)
+marshal_list = $(addprefix $(srcdir)/, $(glib_marshal_list))
 
 CLEANFILES += stamp-marshal
 DISTCLEANFILES += $(marshal_h) $(marshal_c)
 BUILT_SOURCES += $(marshal_h) $(marshal_c)
-EXTRA_DIST += $(srcdir)/$(glib_marshal_list)
+EXTRA_DIST += $(marshal_list)
 
-stamp-marshal: $(glib_marshal_list)
-       $(QUIET_GEN)$(GLIB_GENMARSHAL) \
+stamp-marshal: $(marshal_list)
+       $(AM_V_GEN)$(GLIB_GENMARSHAL) \
                --prefix=$(glib_marshal_prefix) \
                --header \
-       $(srcdir)/$(glib_marshal_list) > xgen-mh \
+       $(marshal_list) > xgen-mh \
        && (cmp -s xgen-mh $(marshal_h) || cp -f xgen-mh $(marshal_h)) \
        && rm -f xgen-mh \
        && echo timestamp > $(@F)
@@ -35,11 +43,10 @@ $(marshal_h): stamp-marshal
        @true
 
 $(marshal_c): $(marshal_h)
-       $(QUIET_GEN)(echo "#include \"$(marshal_h)\"" ; \
+       $(AM_V_GEN)(echo "#include \"$(marshal_h)\"" ; \
        $(GLIB_GENMARSHAL) \
                --prefix=$(glib_marshal_prefix) \
                --body \
-       $(srcdir)/$(glib_marshal_list)) > xgen-mc \
+       $(marshal_list)) > xgen-mc \
        && cp xgen-mc $(marshal_c) \
        && rm -f xgen-mc
-
diff --git a/build/autotools/Makefile.am.silent b/build/autotools/Makefile.am.silent
deleted file mode 100644 (file)
index 8576846..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# custom rules for quiet builds
-
-QUIET_GEN = $(AM_V_GEN)
-
-QUIET_LN   = $(QUIET_LN_$(V))
-QUIET_LN_  = $(QUIET_LN_$(AM_DEFAULT_VERBOSITY))
-QUIET_LN_0 = @echo '  LN     '$@;
-
-QUIET_RM   = $(QUIET_RM_$(V))
-QUIET_RM_  = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
-QUIET_RM_0 = @echo '  RM     '$@;
index ef573c1..e0e4217 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,16 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = build/autotools
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -74,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -98,6 +138,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -138,6 +179,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -162,6 +204,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -183,6 +226,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -219,6 +263,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -252,6 +299,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -274,12 +323,15 @@ top_srcdir = @top_srcdir@
 EXTRA_DIST = \
        as-compiler-flag.m4     \
        as-linguas.m4           \
+       glib-tap.mk             \
+       glibtests.m4            \
        introspection.m4        \
-       Makefile.am.silent      \
+       jh-catalog.m4           \
        Makefile.am.enums       \
        Makefile.am.marshal     \
-       Makefile.am.gtest       \
-       Makefile.am.gitignore
+       Makefile.am.gitignore   \
+       tap-driver.sh           \
+       tap-test
 
 all: all-am
 
@@ -296,7 +348,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/autotools/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign build/autotools/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -358,7 +409,6 @@ distdir: $(DISTFILES)
          fi; \
        done
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-local
 check: check-am
 all-am: Makefile
 installdirs:
@@ -458,32 +508,22 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: check-am install-am install-strip
+.MAKE: install-am install-strip
 
-.PHONY: all all-am check check-am check-local clean clean-generic \
-       clean-libtool cscopelist-am ctags-am distclean \
-       distclean-generic distclean-libtool distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
-       uninstall-am
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
 
-# needed to avoid including Makefile.am.gtest
-test-report:
-       @true
-
-test:
-       @true
-
-check-local: test
-
-.PHONY: test test-report check-local
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/build/autotools/glib-tap.mk b/build/autotools/glib-tap.mk
new file mode 100644 (file)
index 0000000..7a634cd
--- /dev/null
@@ -0,0 +1,134 @@
+# GLIB - Library of useful C routines
+
+TESTS_ENVIRONMENT= \
+       G_TEST_SRCDIR="$(abs_srcdir)"           \
+       G_TEST_BUILDDIR="$(abs_builddir)"       \
+       G_DEBUG=gc-friendly                     \
+       MALLOC_CHECK_=2                         \
+       MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
+LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/build/autotools/tap-driver.sh
+LOG_COMPILER = $(top_srcdir)/build/autotools/tap-test
+
+NULL =
+
+# initialize variables for unconditional += appending
+BUILT_SOURCES =
+BUILT_EXTRA_DIST =
+CLEANFILES = *.log *.trs
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+EXTRA_DIST =
+TESTS =
+
+installed_test_LTLIBRARIES =
+installed_test_PROGRAMS =
+installed_test_SCRIPTS =
+nobase_installed_test_DATA =
+
+noinst_LTLIBRARIES =
+noinst_PROGRAMS =
+noinst_SCRIPTS =
+noinst_DATA =
+
+check_LTLIBRARIES =
+check_PROGRAMS =
+check_SCRIPTS =
+check_DATA =
+
+# We support a fairly large range of possible variables.  It is expected that all types of files in a test suite
+# will belong in exactly one of the following variables.
+#
+# First, we support the usual automake suffixes, but in lowercase, with the customary meaning:
+#
+#   test_programs, test_scripts, test_data, test_ltlibraries
+#
+# The above are used to list files that are involved in both uninstalled and installed testing.  The
+# test_programs and test_scripts are taken to be actual testcases and will be run as part of the test suite.
+# Note that _data is always used with the nobase_ automake variable name to ensure that installed test data is
+# installed in the same way as it appears in the package layout.
+#
+# In order to mark a particular file as being only for one type of testing, use 'installed' or 'uninstalled',
+# like so:
+#
+#   installed_test_programs, uninstalled_test_programs
+#   installed_test_scripts, uninstalled_test_scripts
+#   installed_test_data, uninstalled_test_data
+#   installed_test_ltlibraries, uninstalled_test_ltlibraries
+#
+# Additionally, we support 'extra' infixes for programs and scripts.  This is used for support programs/scripts
+# that should not themselves be run as testcases (but exist to be used from other testcases):
+#
+#   test_extra_programs, installed_test_extra_programs, uninstalled_test_extra_programs
+#   test_extra_scripts, installed_test_extra_scripts, uninstalled_test_extra_scripts
+#
+# Additionally, for _scripts and _data, we support the customary dist_ prefix so that the named script or data
+# file automatically end up in the tarball.
+#
+#   dist_test_scripts, dist_test_data, dist_test_extra_scripts
+#   dist_installed_test_scripts, dist_installed_test_data, dist_installed_test_extra_scripts
+#   dist_uninstalled_test_scripts, dist_uninstalled_test_data, dist_uninstalled_test_extra_scripts
+#
+# Note that no file is automatically disted unless it appears in one of the dist_ variables.  This follows the
+# standard automake convention of not disting programs scripts or data by default.
+#
+# test_programs, test_scripts, uninstalled_test_programs and uninstalled_test_scripts (as well as their disted
+# variants) will be run as part of the in-tree 'make check'.  These are all assumed to be runnable under
+# gtester.  That's a bit strange for scripts, but it's possible.
+
+TESTS += $(test_programs) $(test_scripts) $(uninstalled_test_programs) $(uninstalled_test_scripts) \
+         $(dist_test_scripts) $(dist_uninstalled_test_scripts)
+
+# Note: build even the installed-only targets during 'make check' to ensure that they still work.
+# We need to do a bit of trickery here and manage disting via EXTRA_DIST instead of using dist_ prefixes to
+# prevent automake from mistreating gmake functions like $(wildcard ...) and $(addprefix ...) as if they were
+# filenames, including removing duplicate instances of the opening part before the space, eg. '$(addprefix'.
+all_test_programs     = $(test_programs) $(uninstalled_test_programs) $(installed_test_programs) \
+                        $(test_extra_programs) $(uninstalled_test_extra_programs) $(installed_test_extra_programs)
+all_test_scripts      = $(test_scripts) $(uninstalled_test_scripts) $(installed_test_scripts) \
+                        $(test_extra_scripts) $(uninstalled_test_extra_scripts) $(installed_test_extra_scripts)
+all_dist_test_scripts = $(dist_test_scripts) $(dist_uninstalled_test_scripts) $(dist_installed_test_scripts) \
+                        $(dist_test_extra_scripts) $(dist_uninstalled_test_extra_scripts) $(dist_installed_test_extra_scripts)
+all_test_scripts     += $(all_dist_test_scripts)
+EXTRA_DIST           += $(all_dist_test_scripts)
+all_test_data         = $(test_data) $(uninstalled_test_data) $(installed_test_data)
+all_dist_test_data    = $(dist_test_data) $(dist_uninstalled_test_data) $(dist_installed_test_data)
+all_test_data        += $(all_dist_test_data)
+EXTRA_DIST           += $(all_dist_test_data)
+all_test_ltlibs       = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installed_test_ltlibraries)
+
+if ENABLE_ALWAYS_BUILD_TESTS
+noinst_LTLIBRARIES += $(all_test_ltlibs)
+noinst_PROGRAMS += $(all_test_programs)
+noinst_SCRIPTS += $(all_test_scripts)
+noinst_DATA += $(all_test_data)
+else
+check_LTLIBRARIES += $(all_test_ltlibs)
+check_PROGRAMS += $(all_test_programs)
+check_SCRIPTS += $(all_test_scripts)
+check_DATA += $(all_test_data)
+endif
+
+if ENABLE_INSTALLED_TESTS
+installed_test_PROGRAMS += $(test_programs) $(installed_test_programs) \
+                          $(test_extra_programs) $(installed_test_extra_programs)
+installed_test_SCRIPTS += $(test_scripts) $(installed_test_scripts) \
+                          $(test_extra_scripts) $(test_installed_extra_scripts)
+installed_test_SCRIPTS += $(dist_test_scripts) $(dist_test_extra_scripts) \
+                          $(dist_installed_test_scripts) $(dist_installed_test_extra_scripts)
+nobase_installed_test_DATA += $(test_data) $(installed_test_data)
+nobase_installed_test_DATA += $(dist_test_data) $(dist_installed_test_data)
+installed_test_LTLIBRARIES += $(test_ltlibraries) $(installed_test_ltlibraries)
+installed_testcases = $(test_programs) $(installed_test_programs) \
+                      $(test_scripts) $(installed_test_scripts) \
+                      $(dist_test_scripts) $(dist_installed_test_scripts)
+
+installed_test_meta_DATA = $(installed_testcases:=.test)
+
+%.test: %$(EXEEXT) Makefile
+       $(AM_V_GEN) (echo '[Test]' > $@.tmp; \
+       echo 'Type=session' >> $@.tmp; \
+       echo 'Exec=$(installed_testdir)/$<' >> $@.tmp; \
+       mv $@.tmp $@)
+
+CLEANFILES += $(installed_test_meta_DATA)
+endif
diff --git a/build/autotools/glibtests.m4 b/build/autotools/glibtests.m4
new file mode 100644 (file)
index 0000000..7d5920a
--- /dev/null
@@ -0,0 +1,28 @@
+dnl GLIB_TESTS
+dnl
+
+AC_DEFUN([GLIB_TESTS],
+[
+  AC_ARG_ENABLE(installed-tests,
+                AS_HELP_STRING([--enable-installed-tests],
+                               [Enable installation of some test cases]),
+                [case ${enableval} in
+                  yes) ENABLE_INSTALLED_TESTS="1"  ;;
+                  no)  ENABLE_INSTALLED_TESTS="" ;;
+                  *) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
+                 esac])
+  AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
+  AC_ARG_ENABLE(always-build-tests,
+                AS_HELP_STRING([--enable-always-build-tests],
+                               [Enable always building tests during 'make all']),
+                [case ${enableval} in
+                  yes) ENABLE_ALWAYS_BUILD_TESTS="1"  ;;
+                  no)  ENABLE_ALWAYS_BUILD_TESTS="" ;;
+                  *) AC_MSG_ERROR([bad value ${enableval} for --enable-always-build-tests]) ;;
+                 esac])
+  AM_CONDITIONAL([ENABLE_ALWAYS_BUILD_TESTS], test "$ENABLE_ALWAYS_BUILD_TESTS" = "1")
+  if test "$ENABLE_INSTALLED_TESTS" = "1"; then
+    AC_SUBST(installed_test_metadir, [${datadir}/installed-tests/]AC_PACKAGE_NAME)
+    AC_SUBST(installed_testdir, [${libexecdir}/installed-tests/]AC_PACKAGE_NAME)
+  fi
+])
index ac2eccb..3675543 100644 (file)
@@ -1,6 +1,6 @@
 dnl -*- mode: autoconf -*-
 
-# serial 1
+# serial 2
 
 dnl Usage:
 dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
@@ -10,8 +10,24 @@ AC_DEFUN([GTK_DOC_CHECK],
   AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
   AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
 
+  ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+  AC_MSG_CHECKING([for gtk-doc])
+  PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+  AC_MSG_RESULT($have_gtk_doc)
+
+  if test "$have_gtk_doc" = "no"; then
+      AC_MSG_WARN([
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found.])
+  fi
+
   dnl check for tools we added during development
-  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+  dnl may not be writable by the user. Currently, automake requires that the
+  dnl test name must end in '.test'.
+  dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+  AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+  AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
   AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
   AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
 
@@ -28,22 +44,22 @@ AC_DEFUN([GTK_DOC_CHECK],
                    [use gtk-doc to build documentation [[default=no]]]),,
     [enable_gtk_doc=no])
 
-  if test x$enable_gtk_doc = xyes; then
-    ifelse([$1],[],
-      [PKG_CHECK_EXISTS([gtk-doc],,
-                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
-      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
-    dnl don't check for glib if we build glib
-    if test "x$PACKAGE_NAME" != "xglib"; then
-      dnl don't fail if someone does not have glib
-      PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
-    fi
-  fi
-
   AC_MSG_CHECKING([whether to build gtk-doc documentation])
   AC_MSG_RESULT($enable_gtk_doc)
 
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    AC_MSG_ERROR([
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '[$]0'.])
+  fi
+
+  dnl don't check for glib if we build glib
+  if test "x$PACKAGE_NAME" != "xglib"; then
+    dnl don't fail if someone does not have glib
+    PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
+  fi
+
   dnl enable/disable output formats
   AC_ARG_ENABLE([gtk-doc-html],
     AS_HELP_STRING([--enable-gtk-doc-html],
@@ -63,6 +79,7 @@ AC_DEFUN([GTK_DOC_CHECK],
   fi
   AC_SUBST([AM_DEFAULT_VERBOSITY])
 
+  AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
   AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
index 589721c..d89c3d9 100644 (file)
@@ -41,6 +41,8 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
     ],dnl
     [auto],[dnl
         PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+       dnl Canonicalize enable_introspection
+       enable_introspection=$found_introspection
     ],dnl
     [dnl       
         AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
diff --git a/build/autotools/jh-catalog.m4 b/build/autotools/jh-catalog.m4
new file mode 100644 (file)
index 0000000..dd01f16
--- /dev/null
@@ -0,0 +1,54 @@
+# Checks the location of the XML Catalog
+# Usage:
+#   JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# Defines XMLCATALOG and XML_CATALOG_FILE substitutions
+AC_DEFUN([JH_PATH_XML_CATALOG],
+[
+  # check for the presence of the XML catalog
+  AC_ARG_WITH([xml-catalog],
+              AC_HELP_STRING([--with-xml-catalog=CATALOG],
+                             [path to xml catalog to use]),,
+              [with_xml_catalog=/etc/xml/catalog])
+  jh_found_xmlcatalog=true
+  XML_CATALOG_FILE="$with_xml_catalog"
+  AC_SUBST([XML_CATALOG_FILE])
+  AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)])
+  if test -f "$XML_CATALOG_FILE"; then
+    AC_MSG_RESULT([found])
+  else
+    jh_found_xmlcatalog=false
+    AC_MSG_RESULT([not found])
+  fi
+
+  # check for the xmlcatalog program
+  AC_PATH_PROG(XMLCATALOG, xmlcatalog, no)
+  if test "x$XMLCATALOG" = xno; then
+    jh_found_xmlcatalog=false
+  fi
+
+  if $jh_found_xmlcatalog; then
+    ifelse([$1],,[:],[$1])
+  else
+    ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2])
+  fi
+])
+
+# Checks if a particular URI appears in the XML catalog
+# Usage:
+#   JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+AC_DEFUN([JH_CHECK_XML_CATALOG],
+[
+  AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+  AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+  if $jh_found_xmlcatalog && \
+     AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
+    AC_MSG_RESULT([found])
+    ifelse([$3],,,[$3
+])dnl
+  else
+    AC_MSG_RESULT([not found])
+    ifelse([$4],,
+       [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
+       [$4])
+  fi
+])
index 56666f0..a644432 100644 (file)
@@ -1,8 +1,6 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
 # modifications, as long as this notice is preserved.
 
 m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
 #
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 57 LT_INIT
+# serial 58 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -67,7 +59,7 @@ esac
 # LT_INIT([OPTIONS])
 # ------------------
 AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
@@ -91,7 +83,7 @@ dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -111,26 +103,43 @@ dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
 dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
 
 
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in @S|@*""; do
+      case $cc_temp in
+        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
 # _LT_CC_BASENAME(CC)
 # -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
 m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
 ])
 
 
 # _LT_FILEUTILS_DEFAULTS
 # ----------------------
 # It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
 m4_defun([_LT_FILEUTILS_DEFAULTS],
 [: ${CP="cp -f"}
 : ${MV="mv -f"}
@@ -177,15 +186,16 @@ m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
 m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 ])
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -198,7 +208,7 @@ aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -209,14 +219,14 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -269,14 +279,14 @@ no_glob_subst='s/\*/\\\*/g'
 
 # _LT_PROG_LTMAIN
 # ---------------
-# Note that this code is called both from `configure', and `config.status'
+# Note that this code is called both from 'configure', and 'config.status'
 # now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
 # so we pass a copy along to make sure it has a sensible value anyway.
 m4_defun([_LT_PROG_LTMAIN],
 [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
 _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 ])# _LT_PROG_LTMAIN
 
 
@@ -286,7 +296,7 @@ ltmain="$ac_aux_dir/ltmain.sh"
 
 # So that we can recreate a full libtool script including additional
 # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
+# in macros and then make a single call at the end using the 'libtool'
 # label.
 
 
@@ -421,8 +431,8 @@ m4_define([_lt_decl_all_varnames],
 
 # _LT_CONFIG_STATUS_DECLARE([VARNAME])
 # ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
@@ -446,7 +456,7 @@ m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 # Output comment and list of tags supported by the script
 m4_defun([_LT_LIBTOOL_TAGS],
 [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
+available_tags='_LT_TAGS'dnl
 ])
 
 
@@ -474,7 +484,7 @@ m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
 # _LT_LIBTOOL_CONFIG_VARS
 # -----------------------
 # Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
 # script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
 # section) are produced by _LT_LIBTOOL_TAG_VARS.
 m4_defun([_LT_LIBTOOL_CONFIG_VARS],
@@ -500,8 +510,8 @@ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
 # Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
 # variables for single and double quote escaping we saved from calls
 # to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'.  Finally, any additional code accumulated
 # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
 m4_defun([_LT_CONFIG_COMMANDS],
 [AC_PROVIDE_IFELSE([LT_OUTPUT],
@@ -547,7 +557,7 @@ for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -560,7 +570,7 @@ for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -576,7 +586,7 @@ _LT_OUTPUT_LIBTOOL_INIT
 # Generate a child script FILE with all initialization necessary to
 # reuse the environment learned by the parent script, and make the
 # file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
+# '#!' sequence but before initialization text begins.  After this
 # macro, additional text can be appended to FILE to form the body of
 # the child script.  The macro ends with non-zero status if the
 # file could not be fully written (such as if the disk is full).
@@ -598,7 +608,7 @@ AS_SHELL_SANITIZE
 _AS_PREPARE
 exec AS_MESSAGE_FD>&1
 _ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
@@ -621,7 +631,7 @@ exec AS_MESSAGE_LOG_FD>>config.log
 } >&AS_MESSAGE_LOG_FD
 
 lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
+'$as_me' creates a local libtool stub from the current configuration,
 for use in further configure time tests before the real libtool is
 generated.
 
@@ -643,7 +653,7 @@ Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
-while test $[#] != 0
+while test 0 != $[#]
 do
   case $[1] in
     --version | --v* | -V )
@@ -656,10 +666,10 @@ do
       lt_cl_silent=: ;;
 
     -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
 
     *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
+Try '$[0] --help' for more information.]) ;;
   esac
   shift
 done
@@ -685,7 +695,7 @@ chmod +x "$CONFIG_LT"
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
 lt_cl_success=:
-test "$silent" = yes &&
+test yes = "$silent" &&
   lt_config_lt_args="$lt_config_lt_args --quiet"
 exec AS_MESSAGE_LOG_FD>/dev/null
 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
@@ -705,27 +715,31 @@ m4_defun([_LT_CONFIG],
 _LT_CONFIG_SAVE_COMMANDS([
   m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
   m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
 _LT_COPYING
 _LT_LIBTOOL_TAGS
 
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
 # ### BEGIN LIBTOOL CONFIG
 _LT_LIBTOOL_CONFIG_VARS
 _LT_LIBTOOL_TAG_VARS
@@ -733,13 +747,24 @@ _LT_LIBTOOL_TAG_VARS
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -756,8 +781,6 @@ _LT_EOF
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_REPLACE_SHELLFNS
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
@@ -775,7 +798,6 @@ _LT_EOF
 [m4_if([$1], [], [
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'], [])
 ])dnl /_LT_CONFIG_SAVE_COMMANDS
@@ -974,7 +996,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 
     AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
       [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
        # By default we will add the -single_module flag. You can override
        # by either setting the environment variable LT_MULTI_MODULE
        # non-empty at configure time, or by adding -multi_module to the
@@ -992,7 +1014,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
          cat conftest.err >&AS_MESSAGE_LOG_FD
        # Otherwise, if the output was created with a 0 exit code from
        # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1010,7 +1032,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
       AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
        [lt_cv_ld_exported_symbols_list=yes],
        [lt_cv_ld_exported_symbols_list=no])
-       LDFLAGS="$save_LDFLAGS"
+       LDFLAGS=$save_LDFLAGS
     ])
 
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
@@ -1032,7 +1054,7 @@ _LT_EOF
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
        cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1042,32 +1064,32 @@ _LT_EOF
     ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
        10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-       10.[[012]]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       10.[[012]][[,.]]*)
+         _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
        10.*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -1087,29 +1109,29 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
     m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
                   [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
     m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+[   if test yes != "$lt_cv_apple_cc_single_mod"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 ],[])
   else
@@ -1129,7 +1151,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
 # Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
+if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
@@ -1147,7 +1169,7 @@ else
     _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi],[])
   if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
   fi
   ])
   aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
@@ -1167,8 +1189,8 @@ m4_define([_LT_SHELL_INIT],
 # -----------------------
 # Find how we can fake an echo command that does not interpret backslash.
 # In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
@@ -1196,10 +1218,10 @@ fi
 # Invoke $ECHO with all args, space-separated.
 func_echo_all ()
 {
-    $ECHO "$*" 
+    $ECHO "$*"
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) AC_MSG_RESULT([printf]) ;;
   print*) AC_MSG_RESULT([print -r]) ;;
   *) AC_MSG_RESULT([cat]) ;;
@@ -1225,16 +1247,17 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 AC_DEFUN([_LT_WITH_SYSROOT],
 [AC_MSG_CHECKING([for sysroot])
 AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+  [Search for dependent libraries within DIR (or the compiler's sysroot
+   if not specified).])],
 [], [with_sysroot=no])
 
 dnl lt_sysroot will always be passed unquoted.  We quote it here
 dnl in case the user passed a directory name.
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -1244,14 +1267,14 @@ case ${with_sysroot} in #(
  no|'')
    ;; #(
  *)
-   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_RESULT([$with_sysroot])
    AC_MSG_ERROR([The sysroot must be an absolute path.])
    ;;
 esac
 
  AC_MSG_RESULT([${lt_sysroot:-no}])
 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
+[dependent libraries, and where our libraries should be installed.])])
 
 # _LT_ENABLE_LOCK
 # ---------------
@@ -1259,31 +1282,33 @@ m4_defun([_LT_ENABLE_LOCK],
 [AC_ARG_ENABLE([libtool-lock],
   [AS_HELP_STRING([--disable-libtool-lock],
     [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-       HPUX_IA64_MODE="32"
+       HPUX_IA64_MODE=32
        ;;
       *ELF-64*)
-       HPUX_IA64_MODE="64"
+       HPUX_IA64_MODE=64
        ;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -melf32bsmip"
@@ -1312,9 +1337,46 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+       emul="${emul}32"
+       ;;
+      *64-bit*)
+       emul="${emul}64"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+       emul="${emul}btsmip"
+       ;;
+      *LSB*)
+       emul="${emul}ltsmip"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+       emul="${emul}n32"
+       ;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1324,9 +1386,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           LD="${LD-ld} -m elf_i386"
+           case `/usr/bin/file conftest.o` in
+             *x86-64*)
+               LD="${LD-ld} -m elf32_x86_64"
+               ;;
+             *)
+               LD="${LD-ld} -m elf_i386"
+               ;;
+           esac
+           ;;
+         powerpc64le-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1345,7 +1417,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -1363,19 +1438,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
     [AC_LANG_PUSH(C)
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
      AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
@@ -1383,7 +1459,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -1392,7 +1468,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -1408,7 +1484,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 ])# _LT_ENABLE_LOCK
 
 
@@ -1427,11 +1503,11 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
      [echo conftest.$ac_objext > conftest.lst
       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
       AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
        # Ensure the archiver fails upon bogus file names.
        rm -f conftest.$ac_objext libconftest.a
        AC_TRY_EVAL([lt_ar_try])
-       if test "$ac_status" -ne 0; then
+       if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -1439,7 +1515,7 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
      ])
   ])
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -1470,7 +1546,7 @@ old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -1506,7 +1582,7 @@ AC_CACHE_CHECK([$1], [$2],
   [$2=no
    m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
+   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -1533,7 +1609,7 @@ AC_CACHE_CHECK([$1], [$2],
    $RM conftest*
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$5], , :, [$5])
 else
     m4_if([$6], , :, [$6])
@@ -1555,7 +1631,7 @@ AC_DEFUN([_LT_LINKER_OPTION],
 m4_require([_LT_DECL_SED])dnl
 AC_CACHE_CHECK([$1], [$2],
   [$2=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $3"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -1574,10 +1650,10 @@ AC_CACHE_CHECK([$1], [$2],
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 ])
 
-if test x"[$]$2" = xyes; then
+if test yes = "[$]$2"; then
     m4_if([$4], , :, [$4])
 else
     m4_if([$5], , :, [$5])
@@ -1598,7 +1674,7 @@ AC_DEFUN([LT_CMD_MAX_LEN],
 AC_MSG_CHECKING([the maximum length of command line arguments])
 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
   i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -1638,7 +1714,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1688,22 +1764,23 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 1/2 MB should be enough
+             test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -1719,7 +1796,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   esac
 ])
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
 else
   AC_MSG_RESULT(none)
@@ -1747,7 +1824,7 @@ m4_defun([_LT_HEADER_DLFCN],
 # ----------------------------------------------------------------
 m4_defun([_LT_TRY_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
+if test yes = "$cross_compiling"; then :
   [$4]
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -1794,9 +1871,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -1822,7 +1899,7 @@ int main ()
   return status;
 }]
 _LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -1843,7 +1920,7 @@ rm -fr conftest*
 # ------------------
 AC_DEFUN([LT_SYS_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
+if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -1853,44 +1930,52 @@ else
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
+               [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ])
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     AC_CHECK_FUNC([shl_load],
-         [lt_cv_dlopen="shl_load"],
+         [lt_cv_dlopen=shl_load],
       [AC_CHECK_LIB([dld], [shl_load],
-           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+           [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
        [AC_CHECK_FUNC([dlopen],
-             [lt_cv_dlopen="dlopen"],
+             [lt_cv_dlopen=dlopen],
          [AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+               [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
            [AC_CHECK_LIB([svld], [dlopen],
-                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+                 [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
              [AC_CHECK_LIB([dld], [dld_link],
-                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+                   [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
              ])
            ])
          ])
@@ -1899,21 +1984,21 @@ else
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     AC_CACHE_CHECK([whether a program can dlopen itself],
@@ -1923,7 +2008,7 @@ else
            lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
     ])
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
          lt_cv_dlopen_self_static, [dnl
@@ -1933,9 +2018,9 @@ else
       ])
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -2027,8 +2112,8 @@ m4_defun([_LT_COMPILER_FILE_LOCKS],
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 _LT_COMPILER_C_O([$1])
 
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   AC_MSG_CHECKING([if we can lock with hard links])
   hard_links=yes
@@ -2038,8 +2123,8 @@ if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" !=
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+  if test no = "$hard_links"; then
+    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
     need_locks=warn
   fi
 else
@@ -2066,8 +2151,8 @@ objdir=$lt_cv_objdir
 _LT_DECL([], [objdir], [0],
          [The name of the directory that contains temporary libtool files])dnl
 m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+  [Define to the sub-directory where libtool stores uninstalled libraries.])
 ])# _LT_CHECK_OBJDIR
 
 
@@ -2079,15 +2164,15 @@ m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
 _LT_TAGVAR(hardcode_action, $1)=
 if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
    test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
 
   # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
     # Linking always hardcodes the temporary library directory.
     _LT_TAGVAR(hardcode_action, $1)=relink
   else
@@ -2101,12 +2186,12 @@ else
 fi
 AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
 
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -2130,7 +2215,7 @@ else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
@@ -2148,6 +2233,47 @@ _LT_DECL([], [striplib], [1])
 ])# _LT_CMD_STRIPLIB
 
 
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x@S|@2 in
+    x)
+        ;;
+    *:)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+        ;;
+    x:*)
+        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+        ;;
+    *)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
 # _LT_SYS_DYNAMIC_LINKER([TAG])
 # -----------------------------
 # PORTME Fill in your ld.so characteristics
@@ -2158,17 +2284,18 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
        [], [
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -2184,28 +2311,35 @@ if test "$GCC" = yes; then
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -2219,7 +2353,7 @@ BEGIN {RS=" "; FS="/|\n";} {
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -2228,7 +2362,7 @@ fi])
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -2245,14 +2379,17 @@ hardcode_into_libs=no
 # flags to be left without arguments
 need_version=unknown
 
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[[4-9]]*)
@@ -2260,41 +2397,91 @@ aix[[4-9]]*)
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[[01]] | aix4.[[01]].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
           echo ' yes '
-          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+          echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
        :
       else
        can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -2304,18 +2491,18 @@ amigaos*)
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -2323,8 +2510,8 @@ beos*)
 bsdi[[45]]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -2336,7 +2523,7 @@ bsdi[[45]]*)
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -2345,8 +2532,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -2362,17 +2549,17 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -2381,8 +2568,8 @@ m4_if([$1], [],[
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -2409,7 +2596,7 @@ m4_if([$1], [],[
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -2422,8 +2609,8 @@ m4_if([$1], [],[
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -2436,7 +2623,7 @@ m4_if([$1], [],[
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -2449,8 +2636,8 @@ darwin* | rhapsody*)
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -2463,8 +2650,8 @@ dgux*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  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
   ;;
 
@@ -2482,12 +2669,13 @@ freebsd* | dragonfly*)
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -2512,26 +2700,15 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  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
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -2549,14 +2726,15 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -2564,8 +2742,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -2574,8 +2752,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -2588,8 +2766,8 @@ interix[[3-9]]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2600,7 +2778,7 @@ irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
+       if test yes = "$lt_cv_prog_gnu_ld"; then
                version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
@@ -2608,8 +2786,8 @@ irix5* | irix6* | nonstopux*)
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -2628,8 +2806,8 @@ irix5* | irix6* | nonstopux*)
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -2638,13 +2816,33 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -2672,11 +2870,15 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   # Add ABI-specific directories to the system library path.
   sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
 
-  # Append ld.so.conf contents to the search path
+  # 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
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # 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="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -2693,12 +2895,12 @@ netbsd*)
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -2708,7 +2910,7 @@ netbsd*)
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -2717,58 +2919,68 @@ newsos6)
   version_type=qnx
   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'
+  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='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
   else
-    shlibpath_overrides_runpath=yes
+    need_version=yes
   fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -2779,8 +2991,8 @@ solaris*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  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=yes
   hardcode_into_libs=yes
@@ -2790,11 +3002,11 @@ solaris*)
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -2802,8 +3014,8 @@ sunos4*)
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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
   case $host_vendor in
     sni)
@@ -2824,24 +3036,24 @@ sysv4 | sysv4.3*)
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/necthen
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -2859,7 +3071,7 @@ tpf*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -2867,8 +3079,8 @@ tpf*)
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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
   ;;
 
@@ -2877,20 +3089,30 @@ uts4*)
   ;;
 esac
 AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
 _LT_DECL([], [variables_saved_for_relink], [1],
     [Variables whose values should be saved in libtool wrapper scripts and
     restored at link time])
@@ -2923,39 +3145,41 @@ _LT_DECL([], [hardcode_into_libs], [0],
     [Whether we should hardcode library paths into libraries])
 _LT_DECL([], [sys_lib_search_path_spec], [2],
     [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
 ])# _LT_SYS_DYNAMIC_LINKER
 
 
 # _LT_PATH_TOOL_PREFIX(TOOL)
 # --------------------------
-# find a file program which can recognize shared library
+# find a file program that can recognize shared library
 AC_DEFUN([_LT_PATH_TOOL_PREFIX],
 [m4_require([_LT_DECL_EGREP])dnl
 AC_MSG_CHECKING([for $1])
 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
 [case $MAGIC_CMD in
 [[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
 dnl $ac_dummy forces splitting on constant user-supplied paths.
 dnl POSIX.2 word splitting is done only on the output of word expansions,
 dnl not every word.  This closes a longstanding sh security hole.
   ac_dummy="m4_if([$2], , $PATH, [$2])"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+    if test -f "$ac_dir/$1"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -2978,11 +3202,11 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   AC_MSG_RESULT($MAGIC_CMD)
 else
@@ -3000,7 +3224,7 @@ dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
 
 # _LT_PATH_MAGIC
 # --------------
-# find a file program which can recognize a shared library
+# find a file program that can recognize a shared library
 m4_defun([_LT_PATH_MAGIC],
 [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
 if test -z "$lt_cv_path_MAGIC_CMD"; then
@@ -3027,16 +3251,16 @@ m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
        [assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
+    [test no = "$withval" || with_gnu_ld=yes],
     [with_gnu_ld=no])dnl
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   AC_MSG_CHECKING([for ld used by $CC])
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -3050,7 +3274,7 @@ if test "$GCC" = yes; then
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
        ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -3061,37 +3285,37 @@ if test "$GCC" = yes; then
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   AC_MSG_CHECKING([for GNU ld])
 else
   AC_MSG_CHECKING([for non-GNU ld])
 fi
 AC_CACHE_VAL(lt_cv_path_LD,
 [if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
+       test no != "$with_gnu_ld" && break
        ;;
       *)
-       test "$with_gnu_ld" != yes && break
+       test yes != "$with_gnu_ld" && break
        ;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi])
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   AC_MSG_RESULT($LD)
 else
@@ -3145,13 +3369,13 @@ esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -3162,6 +3386,43 @@ _LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
 # _LT_CHECK_MAGIC_METHOD
 # ----------------------
 # how to check for library dependencies
@@ -3177,13 +3438,13 @@ lt_cv_deplibs_check_method='unknown'
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[[4-9]]*)
@@ -3210,8 +3471,7 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -3247,10 +3507,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3289,7 +3545,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -3311,8 +3567,8 @@ newos6*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
@@ -3365,6 +3621,9 @@ sysv4 | sysv4.3*)
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 ])
 
@@ -3405,33 +3664,38 @@ AC_DEFUN([LT_PATH_NM],
 AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
 [if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
        # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
        #   nm: unknown option "B" ignored
        # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
+       # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+       case $build_os in
+       mingw*) lt_bad_file=conftest.nm/nofile ;;
+       *) lt_bad_file=/dev/null ;;
+       esac
+       case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+       *$lt_bad_file* | *'Invalid file or object type'*)
          lt_cv_path_NM="$tmp_nm -B"
-         break
+         break 2
          ;;
        *)
          case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
          */dev/null*)
            lt_cv_path_NM="$tmp_nm -p"
-           break
+           break 2
            ;;
          *)
            lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -3442,21 +3706,21 @@ else
        esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
     # Let the user override the test.
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -3464,8 +3728,8 @@ else
     esac
   fi
   AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -3511,8 +3775,8 @@ lt_cv_sharedlib_from_linklib_cmd,
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -3524,7 +3788,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 ])
@@ -3551,13 +3815,28 @@ AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool
     lt_cv_path_mainfest_tool=yes
   fi
   rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
 ])# _LT_PATH_MANIFEST_TOOL
 
 
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+  test DEF = "`$SED -n dnl
+    -e '\''s/^[[        ]]*//'\'' dnl Strip leading whitespace
+    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
+    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[  ]].*\)*$/DEF/p'\'' dnl
+    -e q dnl                          Only consider the first "real" line
+    $1`" dnl
+])# _LT_DLL_DEF_P
+
+
 # LT_LIB_M
 # --------
 # check for math library
@@ -3569,11 +3848,11 @@ case $host in
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
   ;;
 *)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  AC_CHECK_LIB(m, cos, LIBM=-lm)
   ;;
 esac
 AC_SUBST([LIBM])
@@ -3592,7 +3871,7 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
@@ -3644,7 +3923,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   symcode='[[ABCDGISTW]]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[[ABCDEGRST]]'
   fi
   ;;
@@ -3677,14 +3956,44 @@ case `$NM -V 2>&1` in
   symcode='[[ABCDGIRSTW]]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3702,21 +4011,24 @@ for ac_symprfx in "" "_"; do
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -3756,11 +4068,11 @@ _LT_EOF
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT@&t@_DLSYM_CONST
 #else
@@ -3786,7 +4098,7 @@ lt__PROGRAM__LTX_preloaded_symbols[[]] =
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
          cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -3806,9 +4118,9 @@ _LT_EOF
          mv conftest.$ac_objext conftstm.$ac_objext
          lt_globsym_save_LIBS=$LIBS
          lt_globsym_save_CFLAGS=$CFLAGS
-         LIBS="conftstm.$ac_objext"
+         LIBS=conftstm.$ac_objext
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+         if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
            pipe_works=yes
          fi
          LIBS=$lt_globsym_save_LIBS
@@ -3829,7 +4141,7 @@ _LT_EOF
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -3856,12 +4168,16 @@ _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
     [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+    [Transform the output of nm into a list of symbols to manually relocate])
 _LT_DECL([global_symbol_to_c_name_address],
     [lt_cv_sys_global_symbol_to_c_name_address], [1],
     [Transform the output of nm in a C name address pair])
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+    [The name lister interface])
 _LT_DECL([], [nm_file_list_spec], [1],
     [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
@@ -3877,17 +4193,18 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
+  if test yes = "$GXX"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
     aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -3898,8 +4215,8 @@ m4_if([$1], [CXX], [
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -3915,6 +4232,11 @@ m4_if([$1], [CXX], [
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
     darwin* | rhapsody*)
       # PIC is the default on this platform
@@ -3964,7 +4286,7 @@ m4_if([$1], [CXX], [
     case $host_os in
       aix[[4-9]]*)
        # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
          # AIX 5 now supports IA64 processor
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
        else
@@ -4005,14 +4327,14 @@ m4_if([$1], [CXX], [
        case $cc_basename in
          CC*)
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-           if test "$host_cpu" != ia64; then
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+           if test ia64 != "$host_cpu"; then
              _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
            fi
            ;;
          aCC*)
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
            case $host_cpu in
            hppa*64*|ia64*)
              # +Z the default
@@ -4041,7 +4363,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -4049,7 +4371,7 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
            ;;
          ecpc* )
-           # old Intel C++ for x86_64 which still supported -KPIC.
+           # old Intel C++ for x86_64, which still supported -KPIC.
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
@@ -4194,17 +4516,18 @@ m4_if([$1], [CXX], [
   fi
 ],
 [
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
 
     amigaos*)
@@ -4215,8 +4538,8 @@ m4_if([$1], [CXX], [
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -4233,6 +4556,11 @@ m4_if([$1], [CXX], [
       # (--disable-auto-import) libraries
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4303,7 +4631,7 @@ m4_if([$1], [CXX], [
     case $host_os in
     aix*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       else
@@ -4311,11 +4639,30 @@ m4_if([$1], [CXX], [
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       m4_if([$1], [GCJ], [],
        [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+       ;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -4331,7 +4678,7 @@ m4_if([$1], [CXX], [
        ;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -4340,9 +4687,9 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4367,6 +4714,12 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
        ;;
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -4464,7 +4817,7 @@ m4_if([$1], [CXX], [
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/necthen
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
@@ -4493,7 +4846,7 @@ m4_if([$1], [CXX], [
   fi
 ])
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     _LT_TAGVAR(lt_prog_compiler_pic, $1)=
     ;;
@@ -4559,17 +4912,21 @@ m4_if([$1], [CXX], [
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
@@ -4615,9 +4972,9 @@ m4_if([$1], [CXX], [
   # included in the symbol list
   _LT_TAGVAR(include_expsyms, $1)=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -4633,7 +4990,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -4641,7 +4998,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   esac
@@ -4651,7 +5008,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
        # The AIX port of GNU ld has always aspired to compatibility
@@ -4673,24 +5030,24 @@ dnl Note also adjust exclude_expsyms for C++ above.
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -4703,7 +5060,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     case $host_os in
     aix[[3-9]]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
@@ -4722,7 +5079,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -4738,7 +5095,7 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
        # support --undefined.  This deserves some investigation.  FIXME
-       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4748,7 +5105,7 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -4756,61 +5113,89 @@ _LT_EOF
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file, use it as
+       # is; otherwise, prepend EXPORTS...
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
        case $cc_basename in
          diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
        esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-        && test "$tmp_diet" = no
+        && test no = "$tmp_diet"
       then
        tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
        pgf77* | pgf90* | pgf95* | pgfortran*)
                                        # Portland Group f77 and f90 compilers
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -4821,42 +5206,47 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          _LT_TAGVAR(whole_archive_flag_spec, $1)=
          tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
        xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
        nvcc*)  # Cuda Compiler Driver 2.2
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
          tmp_sharedflag='-G' ;;
        esac
-       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-           echo "local: *; };" >> $output_objdir/$libname.ver~
-           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
        case $cc_basename in
+       tcc*)
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+         ;;
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
          _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; then
+         if test yes = "$supports_anon_versioning"; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-             echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -4870,8 +5260,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4889,8 +5279,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4902,7 +5292,7 @@ _LT_EOF
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -4917,9 +5307,9 @@ _LT_EOF
          # DT_RUNPATH tag from executables and libraries.  But doing so
          # requires that you compile everything twice, which is a pain.
          if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
          else
            _LT_TAGVAR(ld_shlibs, $1)=no
          fi
@@ -4936,15 +5326,15 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
     esac
 
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
       runpath_var=
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
       _LT_TAGVAR(export_dynamic_flag_spec, $1)=
@@ -4960,7 +5350,7 @@ _LT_EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
        # Neither direct hardcoding nor static linking is supported with a
        # broken collect2.
        _LT_TAGVAR(hardcode_direct, $1)=unsupported
@@ -4968,34 +5358,57 @@ _LT_EOF
       ;;
 
     aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # On IA64, the linker does run time linking by default, so we don't
        # have to do anything special.
        aix_use_runtimelinking=no
        exp_sym_flag='-Bexport'
-       no_entry_flag=""
+       no_entry_flag=
       else
        # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
+       # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+       # Without the "-l" option, or with the "-B" option, AIX nm treats
+       # weak defined symbols like other global defined symbols, whereas
+       # GNU nm marks them as "W".
+       # While the 'weak' keyword is ignored in the Export File, we need
+       # it in the Import File for the 'aix-soname' feature, so we have
+       # to replace the "-B" option with "-P" for AIX nm.
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
        # Test if we are trying to use run time linking or normal
        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
+       # have runtime linking enabled, and use it for executables.
+       # For shared libraries, we enable/disable runtime linking
+       # depending on the kind of the shared library created -
+       # when "with_aix_soname,aix_use_runtimelinking" is:
+       # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "aix,yes"  lib.so          shared, rtl:yes, for executables
+       #            lib.a           static archive
+       # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+       #            lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a(lib.so.V) shared, rtl:no
+       # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a           static archive
        case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
          for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+         if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
            aix_use_runtimelinking=yes
            break
          fi
          done
+         if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+           # With aix-soname=svr4, we create the lib.so.V shared archives only,
+           # so we don't have lib.a shared libs to link our executables.
+           # We have to force runtime linking in this case.
+           aix_use_runtimelinking=yes
+           LDFLAGS="$LDFLAGS -Wl,-brtl"
+         fi
          ;;
        esac
 
@@ -5014,13 +5427,21 @@ _LT_EOF
       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+       # The Import File defines what to hardcode.
+       _LT_TAGVAR(hardcode_direct, $1)=no
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+       ;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
        case $host_os in aix4.[[012]]|aix4.[[012]].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
           strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -5039,61 +5460,80 @@ _LT_EOF
          ;;
        esac
        shared_flag='-shared'
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
+       if test yes = "$aix_use_runtimelinking"; then
+         shared_flag="$shared_flag "'$wl-G'
        fi
+       # Need to ensure runtime linking is disabled for the traditional
+       # shared library, or the linker may eventually find shared libraries
+       # /with/ Import File - we do not want to mix them.
+       shared_flag_aix='-shared'
+       shared_flag_svr4='-shared $wl-G'
       else
        # not using gcc
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
        # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
        # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
        else
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag='$wl-G'
          else
-           shared_flag='${wl}-bM:SRE'
+           shared_flag='$wl-bM:SRE'
          fi
+         shared_flag_aix='$wl-bM:SRE'
+         shared_flag_svr4='$wl-G'
        fi
       fi
 
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
        # Warning - without using the other runtime loading flags (-brtl),
        # -berok will link without error, but may produce a broken library.
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
         _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-       if test "$host_cpu" = ia64; then
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+       if test ia64 = "$host_cpu"; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
          _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
         _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
-         _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         if test "$with_gnu_ld" = yes; then
+         _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+         _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+         if test yes = "$with_gnu_ld"; then
            # We only use this code for GNU lds that support --whole-archive.
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
          else
            # Exported symbols can be pulled into shared objects from archives
            _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
          fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-         # This is similar to how AIX traditionally builds its shared libraries.
-         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+         # -brtl affects multiple linker settings, -berok does not and is overridden later
+         compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+         if test svr4 != "$with_aix_soname"; then
+           # This is similar to how AIX traditionally builds its shared libraries.
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+         fi
+         if test aix != "$with_aix_soname"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+         else
+           # used by -dlpreopen to get the symbols
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+         fi
+         _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
        fi
       fi
       ;;
@@ -5102,7 +5542,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             _LT_TAGVAR(archive_expsym_cmds, $1)=''
         ;;
       m68k)
@@ -5132,16 +5572,17 @@ _LT_EOF
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-         else
-           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-         fi~
-         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-         linknames='
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -5150,18 +5591,18 @@ _LT_EOF
        # Don't use ranlib
        _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
        _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-         lt_tool_outputfile="@TOOL_OUTPUT@"~
-         case $lt_outputfile in
-           *.exe|*.EXE) ;;
-           *)
-             lt_outputfile="$lt_outputfile.exe"
-             lt_tool_outputfile="$lt_tool_outputfile.exe"
-             ;;
-         esac~
-         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-           $RM "$lt_outputfile.manifest";
-         fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
        ;;
       *)
        # Assume MSVC wrapper
@@ -5170,7 +5611,7 @@ _LT_EOF
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
        _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
        # The linker will automatically build a .lib file if we build a DLL.
@@ -5220,33 +5661,33 @@ _LT_EOF
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_direct, $1)=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        # hardcode_minus_L: Not really in the search PATH,
        # but as the default location of the library.
        _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5254,25 +5695,25 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
        case $host_cpu in
        hppa*64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
        case $host_cpu in
        hppa*64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
        m4_if($1, [], [
@@ -5280,14 +5721,14 @@ _LT_EOF
          # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
          _LT_LINKER_OPTION([if $CC understands -b],
            _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
            [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
          ;;
        esac
       fi
-      if test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
        case $host_cpu in
@@ -5298,7 +5739,7 @@ _LT_EOF
        *)
          _LT_TAGVAR(hardcode_direct, $1)=yes
          _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
 
          # hardcode_minus_L: Not really in the search PATH,
          # but as the default location of the library.
@@ -5309,16 +5750,16 @@ _LT_EOF
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_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 -o $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_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 -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
        # This should be the same for all languages, so no per-tag cache variable.
        AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
          [lt_cv_irix_exported_symbol],
-         [save_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+         [save_LDFLAGS=$LDFLAGS
+          LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
           AC_LINK_IFELSE(
             [AC_LANG_SOURCE(
                [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
@@ -5331,21 +5772,31 @@ _LT_EOF
       end]])])],
              [lt_cv_irix_exported_symbol=yes],
              [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-       if test "$lt_cv_irix_exported_symbol" = yes; 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'
+           LDFLAGS=$save_LDFLAGS])
+       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
       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'
+       _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'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(inherit_rpath, $1)=yes
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       _LT_TAGVAR(ld_shlibs, $1)=yes
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+       ;;
+      esac
+      ;;
+
     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
@@ -5360,7 +5811,7 @@ _LT_EOF
     newsos6)
       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
@@ -5368,27 +5819,19 @@ _LT_EOF
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        else
-         case $host_os in
-          openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-            _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-            ;;
-          *)
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-            ;;
-         esac
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
        fi
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5399,33 +5842,53 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_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 -o $lib'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_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 -o $lib'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $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_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       ;;
 
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -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)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -5436,24 +5899,24 @@ _LT_EOF
 
     solaris*)
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-       wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       wlarc='$wl'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
          wlarc=''
-         _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
          ;;
        *)
-         wlarc='${wl}'
-         _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         wlarc='$wl'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
          ;;
        esac
       fi
@@ -5463,11 +5926,11 @@ _LT_EOF
       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
       *)
        # The compiler driver will combine and reorder linker options,
-       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but understands '-z linker_flag'.  GCC discards it without '$wl',
        # but is careful enough not to reorder.
        # Supported since Solaris 2.6 (maybe 2.5.1?)
-       if test "$GCC" = yes; then
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       if test yes = "$GCC"; then
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
        else
          _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
        fi
@@ -5477,10 +5940,10 @@ _LT_EOF
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
        # Use $CC to link under sequent, because it throws in some extra .o
        # files that make .init and .fini sections work.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -5529,43 +5992,43 @@ _LT_EOF
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -5580,17 +6043,17 @@ _LT_EOF
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
        ;;
       esac
     fi
   fi
 ])
 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
 _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
 
@@ -5607,7 +6070,7 @@ x|xyes)
   # Assume -lc should be added
   _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $_LT_TAGVAR(archive_cmds, $1) in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -5687,12 +6150,12 @@ _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary])
 _LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
     DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    "absolute", i.e impossible to change by setting $shlibpath_var if the
     library is relocated])
 _LT_TAGDECL([], [hardcode_minus_L], [0],
     [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
@@ -5733,10 +6196,10 @@ dnl    [Compiler flag to generate thread safe objects])
 # ------------------------
 # Ensure that the configuration variables for a C compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_C_CONFIG],
 [m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
+lt_save_CC=$CC
 AC_LANG_PUSH(C)
 
 # Source file extension for C test sources.
@@ -5776,18 +6239,18 @@ if test -n "$compiler"; then
   LT_SYS_DLOPEN_SELF
   _LT_CMD_STRIPLIB
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   AC_MSG_CHECKING([if libtool supports shared libraries])
   AC_MSG_RESULT([$can_build_shared])
 
   AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -5795,8 +6258,12 @@ if test -n "$compiler"; then
     ;;
 
   aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;                  # shared object as lib.so file only
+      yes,svr4,*) ;;                   # shared object as lib.so archive member only
+      yes,*) enable_static=no ;;       # shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -5804,13 +6271,13 @@ if test -n "$compiler"; then
 
   AC_MSG_CHECKING([whether to build static libraries])
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   AC_MSG_RESULT([$enable_static])
 
   _LT_CONFIG($1)
 fi
 AC_LANG_POP
-CC="$lt_save_CC"
+CC=$lt_save_CC
 ])# _LT_LANG_C_CONFIG
 
 
@@ -5818,14 +6285,14 @@ CC="$lt_save_CC"
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
+# the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
+if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
   AC_PROG_CXXCPP
 else
   _lt_caught_CXX_error=yes
@@ -5867,7 +6334,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the CXX compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
+if test yes != "$_lt_caught_CXX_error"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="int some_variable = 0;"
 
@@ -5909,35 +6376,35 @@ if test "$_lt_caught_CXX_error" != yes; then
   if test -n "$compiler"; then
     # We don't want -fno-exception when compiling C++ code, so set the
     # no_builtin_flag separately
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
     else
       _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
     fi
 
-    if test "$GXX" = yes; then
+    if test yes = "$GXX"; then
       # Set up default GNU C++ configuration
 
       LT_PATH_LD
 
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      if test yes = "$with_gnu_ld"; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
 
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
         # If archive_cmds runs LD, not CC, wlarc should be empty
         # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
         #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
+        wlarc='$wl'
 
         # ancient GNU ld didn't support --whole-archive et. al.
         if eval "`$CC -print-prog-name=ld` --help 2>&1" |
          $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
         else
           _LT_TAGVAR(whole_archive_flag_spec, $1)=
         fi
@@ -5973,18 +6440,30 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=no
         ;;
       aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
+        if test ia64 = "$host_cpu"; then
           # On IA64, the linker does run time linking by default, so we don't
           # have to do anything special.
           aix_use_runtimelinking=no
           exp_sym_flag='-Bexport'
-          no_entry_flag=""
+          no_entry_flag=
         else
           aix_use_runtimelinking=no
 
           # Test if we are trying to use run time linking or normal
           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
           case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
            for ld_flag in $LDFLAGS; do
              case $ld_flag in
@@ -5994,6 +6473,13 @@ if test "$_lt_caught_CXX_error" != yes; then
                ;;
              esac
            done
+           if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+             # With aix-soname=svr4, we create the lib.so.V shared archives only,
+             # so we don't have lib.a shared libs to link our executables.
+             # We have to force runtime linking in this case.
+             aix_use_runtimelinking=yes
+             LDFLAGS="$LDFLAGS -Wl,-brtl"
+           fi
            ;;
           esac
 
@@ -6012,13 +6498,21 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
         _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;      # no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          _LT_TAGVAR(hardcode_direct, $1)=no
+          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+          ;;
+        esac
 
-        if test "$GXX" = yes; then
+        if test yes = "$GXX"; then
           case $host_os in aix4.[[012]]|aix4.[[012]].*)
           # We only want to do this on AIX 4.2 and lower, the check
           # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
             strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -6036,64 +6530,84 @@ if test "$_lt_caught_CXX_error" != yes; then
          fi
           esac
           shared_flag='-shared'
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag="$shared_flag "'${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag=$shared_flag' $wl-G'
          fi
+         # Need to ensure runtime linking is disabled for the traditional
+         # shared library, or the linker may eventually find shared libraries
+         # /with/ Import File - we do not want to mix them.
+         shared_flag_aix='-shared'
+         shared_flag_svr4='-shared $wl-G'
         else
           # not using gcc
-          if test "$host_cpu" = ia64; then
+          if test ia64 = "$host_cpu"; then
          # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
          # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
           else
-           if test "$aix_use_runtimelinking" = yes; then
-             shared_flag='${wl}-G'
+           if test yes = "$aix_use_runtimelinking"; then
+             shared_flag='$wl-G'
            else
-             shared_flag='${wl}-bM:SRE'
+             shared_flag='$wl-bM:SRE'
            fi
+           shared_flag_aix='$wl-bM:SRE'
+           shared_flag_svr4='$wl-G'
           fi
         fi
 
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
         # It seems that -bexpall does not export symbols beginning with
         # underscore (_), so it is better to generate a list of symbols to
        # export.
         _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
+       if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
           # Warning - without using the other runtime loading flags (-brtl),
           # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # The "-G" linker flag allows undefined symbols.
+          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
           _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
         else
-          if test "$host_cpu" = ia64; then
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+          if test ia64 = "$host_cpu"; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
            _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
            _LT_SYS_MODULE_PATH_AIX([$1])
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
-           _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-           _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-           if test "$with_gnu_ld" = yes; then
+           _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+           _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+           if test yes = "$with_gnu_ld"; then
              # We only use this code for GNU lds that support --whole-archive.
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
            else
              # Exported symbols can be pulled into shared objects from archives
              _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
            fi
            _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-           # This is similar to how AIX traditionally builds its shared
-           # libraries.
-           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+           # -brtl affects multiple linker settings, -berok does not and is overridden later
+           compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+           if test svr4 != "$with_aix_soname"; then
+             # This is similar to how AIX traditionally builds its shared
+             # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+           fi
+           if test aix != "$with_aix_soname"; then
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+           else
+             # used by -dlpreopen to get the symbols
+             _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+           fi
+           _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
           fi
         fi
         ;;
@@ -6103,7 +6617,7 @@ if test "$_lt_caught_CXX_error" != yes; then
          _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
          # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
          # support --undefined.  This deserves some investigation.  FIXME
-         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
        else
          _LT_TAGVAR(ld_shlibs, $1)=no
        fi
@@ -6131,57 +6645,58 @@ if test "$_lt_caught_CXX_error" != yes; then
          # Tell ltmain to make .lib files, not .a files.
          libext=lib
          # Tell ltmain to make .dll files, not .so files.
-         shrext_cmds=".dll"
+         shrext_cmds=.dll
          # FIXME: Setting linknames here is a bad hack.
-         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-           else
-             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-           fi~
-           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-           linknames='
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
          # The linker will not automatically build a static lib if we build a DLL.
          # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
          _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
          # Don't use ranlib
          _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
          _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-           lt_tool_outputfile="@TOOL_OUTPUT@"~
-           case $lt_outputfile in
-             *.exe|*.EXE) ;;
-             *)
-               lt_outputfile="$lt_outputfile.exe"
-               lt_tool_outputfile="$lt_tool_outputfile.exe"
-               ;;
-           esac~
-           func_to_tool_file "$lt_outputfile"~
-           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-             $RM "$lt_outputfile.manifest";
-           fi'
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
          ;;
        *)
          # g++
          # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
          # as there is no search path for DLLs.
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
          _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
          _LT_TAGVAR(always_export_symbols, $1)=no
          _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 
          if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-           # If the export-symbols file already is a .def file (1st line
-           # is EXPORTS), use it as is; otherwise, prepend...
-           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-             cp $export_symbols $output_objdir/$soname.def;
-           else
-             echo EXPORTS > $output_objdir/$soname.def;
-             cat $export_symbols >> $output_objdir/$soname.def;
-           fi~
-           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file, use it as
+           # is; otherwise, prepend EXPORTS...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
          else
            _LT_TAGVAR(ld_shlibs, $1)=no
          fi
@@ -6192,6 +6707,34 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
 
+      os2*)
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+       _LT_TAGVAR(hardcode_minus_L, $1)=yes
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       shrext_cmds=.dll
+       _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+         $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+         $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+         $ECHO EXPORTS >> $output_objdir/$libname.def~
+         emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+         $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+         emximp -o $lib $output_objdir/$libname.def'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+         $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+         $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+         $ECHO EXPORTS >> $output_objdir/$libname.def~
+         prefix_cmds="$SED"~
+         if test EXPORTS = "`$SED 1q $export_symbols`"; then
+           prefix_cmds="$prefix_cmds -e 1d";
+         fi~
+         prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+         cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+         $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+         emximp -o $lib $output_objdir/$libname.def'
+       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+
       dgux*)
         case $cc_basename in
           ec++*)
@@ -6226,18 +6769,15 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
         ;;
 
       hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
         _LT_TAGVAR(hardcode_direct, $1)=yes
         _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
                                             # but as the default
@@ -6249,7 +6789,7 @@ if test "$_lt_caught_CXX_error" != yes; then
             _LT_TAGVAR(ld_shlibs, $1)=no
             ;;
           aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             # Commands to make compiler produce verbose output that lists
             # what "hidden" libraries, object files and flags are used when
             # linking a shared library.
@@ -6258,11 +6798,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            if test yes = "$GXX"; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6272,15 +6812,15 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        if test no = "$with_gnu_ld"; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
          _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
           case $host_cpu in
             hppa*64*|ia64*)
               ;;
             *)
-             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+             _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
               ;;
           esac
         fi
@@ -6306,13 +6846,13 @@ if test "$_lt_caught_CXX_error" != yes; then
           aCC*)
            case $host_cpu in
              hppa*64*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
              ia64*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
              *)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                ;;
            esac
            # Commands to make compiler produce verbose output that lists
@@ -6323,20 +6863,20 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
-           if test "$GXX" = yes; then
-             if test $with_gnu_ld = no; then
+           if test yes = "$GXX"; then
+             if test no = "$with_gnu_ld"; then
                case $host_cpu in
                  hppa*64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -6351,22 +6891,22 @@ if test "$_lt_caught_CXX_error" != yes; then
       interix[[3-9]]*)
        _LT_TAGVAR(hardcode_direct, $1)=no
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
        # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
        # Instead, shared libraries are loaded at an image base (0x10000000 by
        # default) and relocated if they conflict, which is a slow very memory
        # consuming and fragmenting process.  To avoid this, we pick a random,
        # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
        # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
        ;;
       irix5* | irix6*)
         case $cc_basename in
           CC*)
            # SGI C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -6375,22 +6915,22 @@ if test "$_lt_caught_CXX_error" != yes; then
            _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
            ;;
           *)
-           if test "$GXX" = yes; then
-             if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $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 -o $lib'
+           if test yes = "$GXX"; then
+             if test no = "$with_gnu_ld"; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $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 -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
            ;;
         esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6398,8 +6938,8 @@ if test "$_lt_caught_CXX_error" != yes; then
            # KCC will only create a shared library if the output file
            # ends with ".so" (or ".sl" for HP-UX), so rename the library
            # to its proper name (with version) after linking.
-           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
            # Commands to make compiler produce verbose output that lists
            # what "hidden" libraries, object files and flags are used when
            # linking a shared library.
@@ -6408,10 +6948,10 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
 
            # Archives containing C++ object files must be created using
            # "CC -Bstatic", where "CC" is the KAI C++ compiler.
@@ -6425,59 +6965,59 @@ if test "$_lt_caught_CXX_error" != yes; then
            # earlier do not add the objects themselves.
            case `$CC -V 2>&1` in
              *"Version 7."*)
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
                ;;
              *)  # Version 8.0 or newer
                tmp_idyn=
                case $host_cpu in
                  ia64*) tmp_idyn=' -i_dynamic';;
                esac
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
                ;;
            esac
            _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
            ;;
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
            *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-               $RANLIB $oldlib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
              _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
              ;;
            *) # Version 6 and above use weak symbols
-             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
              ;;
            esac
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
 
            runpath_var=LD_RUN_PATH
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -6491,18 +7031,18 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
          xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           if test "x$supports_anon_versioning" = xyes; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           if test yes = "$supports_anon_versioning"; then
              _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-               echo "local: *; };" >> $output_objdir/$libname.ver~
-               $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
            fi
            ;;
          *)
@@ -6510,10 +7050,10 @@ if test "$_lt_caught_CXX_error" != yes; then
            *Sun\ C*)
              # Sun C++ 5.9
              _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-             _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
              _LT_TAGVAR(compiler_needs_object, $1)=yes
 
              # Not sure whether something based on
@@ -6571,22 +7111,17 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=yes
        ;;
 
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-       _LT_TAGVAR(ld_shlibs, $1)=no
-       ;;
-
-      openbsd*)
+      openbsd* | bitrig*)
        if test -f /usr/libexec/ld.so; then
          _LT_TAGVAR(hardcode_direct, $1)=yes
          _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
          _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
          fi
          output_verbose_link_cmd=func_echo_all
        else
@@ -6602,9 +7137,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # KCC will only create a shared library if the output file
            # ends with ".so" (or ".sl" for HP-UX), so rename the library
            # to its proper name (with version) after linking.
-           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
-           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
            _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
            # Archives containing C++ object files must be created using
@@ -6622,17 +7157,17 @@ if test "$_lt_caught_CXX_error" != yes; then
           cxx*)
            case $host in
              osf3*)
-               _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+               _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
                ;;
              *)
                _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -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)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-                 echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-                 $RM $lib.exp'
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
                ;;
            esac
@@ -6647,21 +7182,21 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
-           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-             _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+           if test yes,no = "$GXX,$with_gnu_ld"; then
+             _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
              case $host in
                osf3*)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $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 -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $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 -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
                  ;;
              esac
 
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
              _LT_TAGVAR(hardcode_libdir_separator, $1)=:
 
              # Commands to make compiler produce verbose output that lists
@@ -6707,9 +7242,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
            _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-           _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-             $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -6717,7 +7252,7 @@ if test "$_lt_caught_CXX_error" != yes; then
              solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
              *)
                # The compiler driver will combine and reorder linker options,
-               # but understands `-z linker_flag'.
+               # but understands '-z linker_flag'.
                # Supported since Solaris 2.6 (maybe 2.5.1?)
                _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
                ;;
@@ -6734,30 +7269,30 @@ if test "$_lt_caught_CXX_error" != yes; then
            ;;
           gcx*)
            # Green Hills C++ Compiler
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
 
            # The C++ compiler must be used to create the archive.
            _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
            ;;
           *)
            # GNU C++ compiler with Solaris linker
-           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-             _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+           if test yes,no = "$GXX,$with_gnu_ld"; then
+             _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
                output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
-               # g++ 2.7 appears to require `-G' NOT `-shared' on this
+               # g++ 2.7 appears to require '-G' NOT '-shared' on this
                # platform.
-               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
@@ -6765,11 +7300,11 @@ if test "$_lt_caught_CXX_error" != yes; then
                output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
              case $host_os in
                solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
                *)
-                 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+                 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
                  ;;
              esac
            fi
@@ -6778,52 +7313,52 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       runpath_var='LD_RUN_PATH'
 
       case $cc_basename in
         CC*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
       esac
       ;;
 
       sysv5* | sco3.2v5* | sco5v6*)
-       # Note: We can NOT use -z defs as we might desire, because we do not
+       # Note: We CANNOT use -z defs as we might desire, because we do not
        # link with -lc, and that would cause any symbols used from libc to
        # always be unresolved, which means just about no library would
        # ever link correctly.  If we're not using GNU ld we use -z text
        # though, which does catch some bad symbols but isn't as heavy-handed
        # as -z defs.
-       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-       _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+       _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+       _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
        _LT_TAGVAR(link_all_deplibs, $1)=yes
-       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
        runpath_var='LD_RUN_PATH'
 
        case $cc_basename in
           CC*)
-           _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+              '"$_LT_TAGVAR(old_archive_cmds, $1)"
            _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-             '"$_LT_TAGVAR(reload_cmds, $1)"
+              '"$_LT_TAGVAR(reload_cmds, $1)"
            ;;
          *)
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            ;;
        esac
       ;;
@@ -6854,10 +7389,10 @@ if test "$_lt_caught_CXX_error" != yes; then
     esac
 
     AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
 
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$GXX
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -6884,7 +7419,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   lt_cv_path_LD=$lt_save_path_LD
   lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
   lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
+fi # test yes != "$_lt_caught_CXX_error"
 
 AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
@@ -6906,13 +7441,14 @@ AC_REQUIRE([_LT_DECL_SED])
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
 func_stripname_cnf ()
 {
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  case @S|@2 in
+  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
   esac
 } # func_stripname_cnf
 ])# _LT_FUNC_STRIPNAME_CNF
 
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6996,13 +7532,13 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
+    case $prev$p in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
        # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
         prev=$p
         continue
        fi
@@ -7018,16 +7554,16 @@ if AC_TRY_EVAL(ac_compile); then
        case $p in
        =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
        esac
-       if test "$pre_test_object_deps_done" = no; then
-        case ${prev} in
+       if test no = "$pre_test_object_deps_done"; then
+        case $prev in
         -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
           if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-            _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+            _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
           else
-            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
           fi
           ;;
         # The "-l" case would never come before the object being
@@ -7035,9 +7571,9 @@ if AC_TRY_EVAL(ac_compile); then
         esac
        else
         if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-          _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+          _LT_TAGVAR(postdeps, $1)=$prev$p
         else
-          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
         fi
        fi
        prev=
@@ -7052,15 +7588,15 @@ if AC_TRY_EVAL(ac_compile); then
         continue
        fi
 
-       if test "$pre_test_object_deps_done" = no; then
+       if test no = "$pre_test_object_deps_done"; then
         if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-          _LT_TAGVAR(predep_objects, $1)="$p"
+          _LT_TAGVAR(predep_objects, $1)=$p
         else
           _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
         fi
        else
         if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-          _LT_TAGVAR(postdep_objects, $1)="$p"
+          _LT_TAGVAR(postdep_objects, $1)=$p
         else
           _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
         fi
@@ -7091,51 +7627,6 @@ interix[[3-9]]*)
   _LT_TAGVAR(postdep_objects,$1)=
   _LT_TAGVAR(postdeps,$1)=
   ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
 esac
 ])
 
@@ -7144,7 +7635,7 @@ case " $_LT_TAGVAR(postdeps, $1) " in
 esac
  _LT_TAGVAR(compiler_lib_search_dirs, $1)=
 if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
 fi
 _LT_TAGDECL([], [compiler_lib_search_dirs], [1],
     [The directories searched by this compiler when creating a shared library])
@@ -7164,10 +7655,10 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
 [AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
+if test -z "$F77" || test no = "$F77"; then
   _lt_disable_F77=yes
 fi
 
@@ -7204,7 +7695,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the F77 compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
+if test yes != "$_lt_disable_F77"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7226,7 +7717,7 @@ if test "$_lt_disable_F77" != yes; then
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
@@ -7240,21 +7731,25 @@ if test "$_lt_disable_F77" != yes; then
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-         test "$enable_shared" = yes && enable_static=no
+       if test ia64 != "$host_cpu"; then
+         case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+         yes,aix,yes) ;;               # shared object as lib.so file only
+         yes,svr4,*) ;;                # shared object as lib.so archive member only
+         yes,*) enable_static=no ;;    # shared object in lib.a archive as well
+         esac
        fi
         ;;
     esac
@@ -7262,11 +7757,11 @@ if test "$_lt_disable_F77" != yes; then
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$G77
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7283,9 +7778,9 @@ if test "$_lt_disable_F77" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
@@ -7295,11 +7790,11 @@ AC_LANG_POP
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
 [AC_LANG_PUSH(Fortran)
 
-if test -z "$FC" || test "X$FC" = "Xno"; then
+if test -z "$FC" || test no = "$FC"; then
   _lt_disable_FC=yes
 fi
 
@@ -7336,7 +7831,7 @@ _LT_TAGVAR(objext, $1)=$objext
 # the FC compiler isn't working.  Some variables (like enable_shared)
 # are currently assumed to apply to all compilers on this platform,
 # and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
+if test yes != "$_lt_disable_FC"; then
   # Code to be used in simple compile tests
   lt_simple_compile_test_code="\
       subroutine t
@@ -7358,7 +7853,7 @@ if test "$_lt_disable_FC" != yes; then
   _LT_LINKER_BOILERPLATE
 
   # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
+  lt_save_CC=$CC
   lt_save_GCC=$GCC
   lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
@@ -7374,21 +7869,25 @@ if test "$_lt_disable_FC" != yes; then
     AC_MSG_RESULT([$can_build_shared])
 
     AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
+    test no = "$can_build_shared" && enable_shared=no
 
     # On AIX, shared libraries and static libraries use the same namespace, and
     # are all built from PIC.
     case $host_os in
       aix3*)
-        test "$enable_shared" = yes && enable_static=no
+        test yes = "$enable_shared" && enable_static=no
         if test -n "$RANLIB"; then
           archive_cmds="$archive_cmds~\$RANLIB \$lib"
           postinstall_cmds='$RANLIB $lib'
         fi
         ;;
       aix[[4-9]]*)
-       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-         test "$enable_shared" = yes && enable_static=no
+       if test ia64 != "$host_cpu"; then
+         case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+         yes,aix,yes) ;;               # shared object as lib.so file only
+         yes,svr4,*) ;;                # shared object as lib.so archive member only
+         yes,*) enable_static=no ;;    # shared object in lib.a archive as well
+         esac
        fi
         ;;
     esac
@@ -7396,11 +7895,11 @@ if test "$_lt_disable_FC" != yes; then
 
     AC_MSG_CHECKING([whether to build static libraries])
     # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
+    test yes = "$enable_shared" || enable_static=yes
     AC_MSG_RESULT([$enable_static])
 
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
+    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+    _LT_TAGVAR(LD, $1)=$LD
 
     ## CAVEAT EMPTOR:
     ## There is no encapsulation within the following macros, do not change
@@ -7420,7 +7919,7 @@ if test "$_lt_disable_FC" != yes; then
   GCC=$lt_save_GCC
   CC=$lt_save_CC
   CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
+fi # test yes != "$_lt_disable_FC"
 
 AC_LANG_POP
 ])# _LT_LANG_FC_CONFIG
@@ -7430,7 +7929,7 @@ AC_LANG_POP
 # --------------------------
 # Ensure that the configuration variables for the GNU Java Compiler compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GCJ_CONFIG],
 [AC_REQUIRE([LT_PROG_GCJ])dnl
 AC_LANG_SAVE
@@ -7464,7 +7963,7 @@ CC=${GCJ-"gcj"}
 CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # GCJ did not exist at the time GCC didn't implicitly link libc in.
@@ -7501,7 +8000,7 @@ CFLAGS=$lt_save_CFLAGS
 # --------------------------
 # Ensure that the configuration variables for the GNU Go compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_GO_CONFIG],
 [AC_REQUIRE([LT_PROG_GO])dnl
 AC_LANG_SAVE
@@ -7535,7 +8034,7 @@ CC=${GOC-"gccgo"}
 CFLAGS=$GOFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
+_LT_TAGVAR(LD, $1)=$LD
 _LT_CC_BASENAME([$compiler])
 
 # Go did not exist at the time GCC didn't implicitly link libc in.
@@ -7572,7 +8071,7 @@ CFLAGS=$lt_save_CFLAGS
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
 # are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
+# to write the compiler configuration to 'libtool'.
 m4_defun([_LT_LANG_RC_CONFIG],
 [AC_REQUIRE([LT_PROG_RC])dnl
 AC_LANG_SAVE
@@ -7588,7 +8087,7 @@ _LT_TAGVAR(objext, $1)=$objext
 lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
 
 # Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
+lt_simple_link_test_code=$lt_simple_compile_test_code
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_TAG_COMPILER
@@ -7598,7 +8097,7 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
 lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
@@ -7627,7 +8126,7 @@ AC_DEFUN([LT_PROG_GCJ],
 [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
   [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
     [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
       AC_SUBST(GCJFLAGS)])])[]dnl
 ])
 
@@ -7738,7 +8237,7 @@ lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
 # along with /bin/sed that truncates output.
 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
+  test ! -f "$lt_ac_sed" && continue
   cat /dev/null > conftest.in
   lt_ac_count=0
   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
@@ -7755,9 +8254,9 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
     $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
     cmp -s conftest.out conftest.nl || break
     # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
+    test 10 -lt "$lt_ac_count" && break
     lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
+    if test "$lt_ac_count" -gt "$lt_ac_max"; then
       lt_ac_max=$lt_ac_count
       lt_cv_path_SED=$lt_ac_sed
     fi
@@ -7781,27 +8280,7 @@ dnl AC_DEFUN([LT_AC_PROG_SED], [])
 # Find out whether the shell is Bourne or XSI compatible,
 # or has some other useful features.
 m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
   lt_unset=false
@@ -7825,102 +8304,9 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
 # _LT_PATH_CONVERSION_FUNCTIONS
 # -----------------------------
-# Determine which file name conversion functions should be used by
+# Determine what file name conversion functions should be used by
 # func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
 # for certain cross-compile configurations and native mingw.
 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
index 5d9acd8..94b0829 100644 (file)
@@ -1,14 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 7 ltoptions.m4
+# serial 8 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -29,7 +29,7 @@ m4_define([_LT_SET_OPTION],
 [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
 m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
         _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
+    [m4_warning([Unknown $1 option '$2'])])[]dnl
 ])
 
 
@@ -75,13 +75,15 @@ m4_if([$1],[LT_INIT],[
   dnl
   dnl If no reference was made to various pairs of opposing options, then
   dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
   dnl archives by default:
   _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
   _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
   _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-                  [_LT_ENABLE_FAST_INSTALL])
+                  [_LT_ENABLE_FAST_INSTALL])
+  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+                  [_LT_WITH_AIX_SONAME([aix])])
   ])
 ])# _LT_SET_OPTIONS
 
@@ -112,7 +114,7 @@ AU_DEFUN([AC_LIBTOOL_DLOPEN],
 [_LT_SET_OPTION([LT_INIT], [dlopen])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
+put the 'dlopen' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -148,7 +150,7 @@ AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
 _LT_SET_OPTION([LT_INIT], [win32-dll])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
+put the 'win32-dll' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -157,9 +159,9 @@ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
 
 # _LT_ENABLE_SHARED([DEFAULT])
 # ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_SHARED],
 [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([shared],
@@ -172,14 +174,14 @@ AC_ARG_ENABLE([shared],
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_shared=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
@@ -211,9 +213,9 @@ dnl AC_DEFUN([AM_DISABLE_SHARED], [])
 
 # _LT_ENABLE_STATIC([DEFAULT])
 # ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_STATIC],
 [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([static],
@@ -226,14 +228,14 @@ AC_ARG_ENABLE([static],
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_static=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
@@ -265,9 +267,9 @@ dnl AC_DEFUN([AM_DISABLE_STATIC], [])
 
 # _LT_ENABLE_FAST_INSTALL([DEFAULT])
 # ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 m4_define([_LT_ENABLE_FAST_INSTALL],
 [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
 AC_ARG_ENABLE([fast-install],
@@ -280,14 +282,14 @@ AC_ARG_ENABLE([fast-install],
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_fast_install=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
@@ -304,14 +306,14 @@ AU_DEFUN([AC_ENABLE_FAST_INSTALL],
 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
+the 'fast-install' option into LT_INIT's first parameter.])
 ])
 
 AU_DEFUN([AC_DISABLE_FAST_INSTALL],
 [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
+the 'disable-fast-install' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
@@ -319,11 +321,64 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 
 
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+  AC_MSG_CHECKING([which variant of shared library versioning to provide])
+  AC_ARG_WITH([aix-soname],
+    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+    [case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname],
+    [AC_CACHE_VAL([lt_cv_with_aix_soname],
+      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+    with_aix_soname=$lt_cv_with_aix_soname])
+  AC_MSG_RESULT([$with_aix_soname])
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
 # _LT_WITH_PIC([MODE])
 # --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
 # LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
@@ -334,19 +389,17 @@ m4_define([_LT_WITH_PIC],
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$lt_pkg" = "X$lt_p"; then
          pic_mode=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+    [pic_mode=m4_default([$1], [default])])
 
 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
 ])# _LT_WITH_PIC
@@ -359,7 +412,7 @@ AU_DEFUN([AC_LIBTOOL_PICMODE],
 [_LT_SET_OPTION([LT_INIT], [pic-only])
 AC_DIAGNOSE([obsolete],
 [$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
+put the 'pic-only' option into LT_INIT's first parameter.])
 ])
 
 dnl aclocal-1.4 backwards compatibility:
index 9000a05..48bc934 100644 (file)
@@ -1,6 +1,7 @@
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -33,7 +34,7 @@ m4_define([_lt_join],
 # ------------
 # Manipulate m4 lists.
 # These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
+# Autoconf-2.59, which quotes differently.
 m4_define([lt_car], [[$1]])
 m4_define([lt_cdr],
 [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
@@ -44,7 +45,7 @@ m4_define([lt_unquote], $1)
 
 # lt_append(MACRO-NAME, STRING, [SEPARATOR])
 # ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
 # Note that neither SEPARATOR nor STRING are expanded; they are appended
 # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
 # No SEPARATOR is output if MACRO-NAME was previously undefined (different
index 07a8602..fa04b52 100644 (file)
@@ -1,6 +1,6 @@
 # ltversion.m4 -- version numbers                      -*- Autoconf -*-
 #
-#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 3337 ltversion.m4
+# serial 4179 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
index c573da9..c6b26f8 100644 (file)
@@ -1,6 +1,7 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+#   Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
@@ -11,7 +12,7 @@
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
 # which have later been changed to m4_define as they aren't part of the
 # exported API, or moved to Autoconf or Automake where they belong.
 #
@@ -25,7 +26,7 @@
 # included after everything else.  This provides aclocal with the
 # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
 # because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
 #
 # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
 # Yes, that means every name once taken will need to remain here until
diff --git a/build/autotools/tap-driver.sh b/build/autotools/tap-driver.sh
new file mode 100755 (executable)
index 0000000..19aa531
--- /dev/null
@@ -0,0 +1,652 @@
+#! /bin/sh
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+scriptversion=2011-12-27.17; # UTC
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+me=tap-driver.sh
+
+fatal ()
+{
+  echo "$me: fatal: $*" >&2
+  exit 1
+}
+
+usage_error ()
+{
+  echo "$me: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  tap-driver.sh --test-name=NAME --log-file=PATH --trs-file=PATH
+                [--expect-failure={yes|no}] [--color-tests={yes|no}]
+                [--enable-hard-errors={yes|no}] [--ignore-exit]
+                [--diagnostic-string=STRING] [--merge|--no-merge]
+                [--comments|--no-comments] [--] TEST-COMMAND
+The \`--test-name', \`--log-file' and \`--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the result and output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=0
+color_tests=0
+merge=0
+ignore_exit=0
+comments=0
+diag_string='#'
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "$me $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) shift;; # No-op.
+  --merge) merge=1;;
+  --no-merge) merge=0;;
+  --ignore-exit) ignore_exit=1;;
+  --comments) comments=1;;
+  --no-comments) comments=0;;
+  --diagnostic-string) diag_string=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+test $# -gt 0 || usage_error "missing test command"
+
+case $expect_failure in
+  yes) expect_failure=1;;
+    *) expect_failure=0;;
+esac
+
+if test $color_tests = yes; then
+  init_colors='
+    color_map["red"]="\e[0;31m" # Red.
+    color_map["grn"]="\e[0;32m" # Green.
+    color_map["lgn"]="\e[1;32m" # Light green.
+    color_map["blu"]="\e[1;34m" # Blue.
+    color_map["mgn"]="\e[0;35m" # Magenta.
+    color_map["std"]="\e[m"     # No color.
+    color_for_result["ERROR"] = "mgn"
+    color_for_result["PASS"]  = "grn"
+    color_for_result["XPASS"] = "red"
+    color_for_result["FAIL"]  = "red"
+    color_for_result["XFAIL"] = "lgn"
+    color_for_result["SKIP"]  = "blu"'
+else
+  init_colors=''
+fi
+
+# :; is there to work around a bug in bash 3.2 (and earlier) which
+# does not always set '$?' properly on redirection failure.
+# See the Autoconf manual for more details.
+:;{
+  (
+    # Ignore common signals (in this subshell only!), to avoid potential
+    # problems with Korn shells.  Some Korn shells are known to propagate
+    # to themselves signals that have killed a child process they were
+    # waiting for; this is done at least for SIGINT (and usually only for
+    # it, in truth).  Without the `trap' below, such a behaviour could
+    # cause a premature exit in the current subshell, e.g., in case the
+    # test command it runs gets terminated by a SIGINT.  Thus, the awk
+    # script we are piping into would never seen the exit status it
+    # expects on its last input line (which is displayed below by the
+    # last `echo $?' statement), and would thus die reporting an internal
+    # error.
+    # For more information, see the Autoconf manual and the threads:
+    # <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
+    # <http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2009-February/004121.html>
+    trap : 1 3 2 13 15
+    if test $merge -gt 0; then
+      exec 2>&1
+    else
+      exec 2>&3
+    fi
+    "$@"
+    echo $?
+  ) | LC_ALL=C ${AM_TAP_AWK-awk} \
+        -v me="$me" \
+        -v test_script_name="$test_name" \
+        -v log_file="$log_file" \
+        -v trs_file="$trs_file" \
+        -v expect_failure="$expect_failure" \
+        -v merge="$merge" \
+        -v ignore_exit="$ignore_exit" \
+        -v comments="$comments" \
+        -v diag_string="$diag_string" \
+'
+# FIXME: the usages of "cat >&3" below could be optimized when using
+# FIXME: GNU awk, and/on on systems that supports /dev/fd/.
+
+# Implementation note: in what follows, `result_obj` will be an
+# associative array that (partly) simulates a TAP result object
+# from the `TAP::Parser` perl module.
+
+## ----------- ##
+##  FUNCTIONS  ##
+## ----------- ##
+
+function fatal(msg)
+{
+  print me ": " msg | "cat >&2"
+  exit 1
+}
+
+function abort(where)
+{
+  fatal("internal error " where)
+}
+
+# Convert a boolean to a "yes"/"no" string.
+function yn(bool)
+{
+  return bool ? "yes" : "no";
+}
+
+function add_test_result(result)
+{
+  if (!test_results_index)
+    test_results_index = 0
+  test_results_list[test_results_index] = result
+  test_results_index += 1
+  test_results_seen[result] = 1;
+}
+
+# Whether the test script should be re-run by "make recheck".
+function must_recheck()
+{
+  for (k in test_results_seen)
+    if (k != "XFAIL" && k != "PASS" && k != "SKIP")
+      return 1
+  return 0
+}
+
+# Whether the content of the log file associated to this test should
+# be copied into the "global" test-suite.log.
+function copy_in_global_log()
+{
+  for (k in test_results_seen)
+    if (k != "PASS")
+      return 1
+  return 0
+}
+
+# FIXME: this can certainly be improved ...
+function get_global_test_result()
+{
+    if ("ERROR" in test_results_seen)
+      return "ERROR"
+    if ("FAIL" in test_results_seen || "XPASS" in test_results_seen)
+      return "FAIL"
+    all_skipped = 1
+    for (k in test_results_seen)
+      if (k != "SKIP")
+        all_skipped = 0
+    if (all_skipped)
+      return "SKIP"
+    return "PASS";
+}
+
+function stringify_result_obj(result_obj)
+{
+  if (result_obj["is_unplanned"] || result_obj["number"] != testno)
+    return "ERROR"
+
+  if (plan_seen == LATE_PLAN)
+    return "ERROR"
+
+  if (result_obj["directive"] == "TODO")
+    return result_obj["is_ok"] ? "XPASS" : "XFAIL"
+
+  if (result_obj["directive"] == "SKIP")
+    return result_obj["is_ok"] ? "SKIP" : COOKED_FAIL;
+
+  if (length(result_obj["directive"]))
+      abort("in function stringify_result_obj()")
+
+  return result_obj["is_ok"] ? COOKED_PASS : COOKED_FAIL
+}
+
+function decorate_result(result)
+{
+  color_name = color_for_result[result]
+  if (color_name)
+    return color_map[color_name] "" result "" color_map["std"]
+  # If we are not using colorized output, or if we do not know how
+  # to colorize the given result, we should return it unchanged.
+  return result
+}
+
+function report(result, details)
+{
+  if (result ~ /^(X?(PASS|FAIL)|SKIP|ERROR)/)
+    {
+      msg = ": " test_script_name
+      add_test_result(result)
+    }
+  else if (result == "#")
+    {
+      msg = " " test_script_name ":"
+    }
+  else
+    {
+      abort("in function report()")
+    }
+  if (length(details))
+    msg = msg " " details
+  # Output on console might be colorized.
+  print decorate_result(result) msg
+  # Log the result in the log file too, to help debugging (this is
+  # especially true when said result is a TAP error or "Bail out!").
+  print result msg | "cat >&3";
+}
+
+function testsuite_error(error_message)
+{
+  report("ERROR", "- " error_message)
+}
+
+function handle_tap_result()
+{
+  details = result_obj["number"];
+  if (length(result_obj["description"]))
+    details = details " " result_obj["description"]
+
+  if (plan_seen == LATE_PLAN)
+    {
+      details = details " # AFTER LATE PLAN";
+    }
+  else if (result_obj["is_unplanned"])
+    {
+       details = details " # UNPLANNED";
+    }
+  else if (result_obj["number"] != testno)
+    {
+       details = sprintf("%s # OUT-OF-ORDER (expecting %d)",
+                         details, testno);
+    }
+  else if (result_obj["directive"])
+    {
+      details = details " # " result_obj["directive"];
+      if (length(result_obj["explanation"]))
+        details = details " " result_obj["explanation"]
+    }
+
+  report(stringify_result_obj(result_obj), details)
+}
+
+# `skip_reason` should be empty whenever planned > 0.
+function handle_tap_plan(planned, skip_reason)
+{
+  planned += 0 # Avoid getting confused if, say, `planned` is "00"
+  if (length(skip_reason) && planned > 0)
+    abort("in function handle_tap_plan()")
+  if (plan_seen)
+    {
+      # Error, only one plan per stream is acceptable.
+      testsuite_error("multiple test plans")
+      return;
+    }
+  planned_tests = planned
+  # The TAP plan can come before or after *all* the TAP results; we speak
+  # respectively of an "early" or a "late" plan.  If we see the plan line
+  # after at least one TAP result has been seen, assume we have a late
+  # plan; in this case, any further test result seen after the plan will
+  # be flagged as an error.
+  plan_seen = (testno >= 1 ? LATE_PLAN : EARLY_PLAN)
+  # If testno > 0, we have an error ("too many tests run") that will be
+  # automatically dealt with later, so do not worry about it here.  If
+  # $plan_seen is true, we have an error due to a repeated plan, and that
+  # has already been dealt with above.  Otherwise, we have a valid "plan
+  # with SKIP" specification, and should report it as a particular kind
+  # of SKIP result.
+  if (planned == 0 && testno == 0)
+    {
+      if (length(skip_reason))
+        skip_reason = "- "  skip_reason;
+      report("SKIP", skip_reason);
+    }
+}
+
+function extract_tap_comment(line)
+{
+  if (index(line, diag_string) == 1)
+    {
+      # Strip leading `diag_string` from `line`.
+      line = substr(line, length(diag_string) + 1)
+      # And strip any leading and trailing whitespace left.
+      sub("^[ \t]*", "", line)
+      sub("[ \t]*$", "", line)
+      # Return what is left (if any).
+      return line;
+    }
+  return "";
+}
+
+# When this function is called, we know that line is a TAP result line,
+# so that it matches the (perl) RE "^(not )?ok\b".
+function setup_result_obj(line)
+{
+  # Get the result, and remove it from the line.
+  result_obj["is_ok"] = (substr(line, 1, 2) == "ok" ? 1 : 0)
+  sub("^(not )?ok[ \t]*", "", line)
+
+  # If the result has an explicit number, get it and strip it; otherwise,
+  # automatically assing the next progresive number to it.
+  if (line ~ /^[0-9]+$/ || line ~ /^[0-9]+[^a-zA-Z0-9_]/)
+    {
+      match(line, "^[0-9]+")
+      # The final `+ 0` is to normalize numbers with leading zeros.
+      result_obj["number"] = substr(line, 1, RLENGTH) + 0
+      line = substr(line, RLENGTH + 1)
+    }
+  else
+    {
+      result_obj["number"] = testno
+    }
+
+  if (plan_seen == LATE_PLAN)
+    # No further test results are acceptable after a "late" TAP plan
+    # has been seen.
+    result_obj["is_unplanned"] = 1
+  else if (plan_seen && testno > planned_tests)
+    result_obj["is_unplanned"] = 1
+  else
+    result_obj["is_unplanned"] = 0
+
+  # Strip trailing and leading whitespace.
+  sub("^[ \t]*", "", line)
+  sub("[ \t]*$", "", line)
+
+  # This will have to be corrected if we have a "TODO"/"SKIP" directive.
+  result_obj["description"] = line
+  result_obj["directive"] = ""
+  result_obj["explanation"] = ""
+
+  if (index(line, "#") == 0)
+    return # No possible directive, nothing more to do.
+
+  # Directives are case-insensitive.
+  rx = "[ \t]*#[ \t]*([tT][oO][dD][oO]|[sS][kK][iI][pP])[ \t]*"
+
+  # See whether we have the directive, and if yes, where.
+  pos = match(line, rx "$")
+  if (!pos)
+    pos = match(line, rx "[^a-zA-Z0-9_]")
+
+  # If there was no TAP directive, we have nothing more to do.
+  if (!pos)
+    return
+
+  # Let`s now see if the TAP directive has been escaped.  For example:
+  #  escaped:     ok \# SKIP
+  #  not escaped: ok \\# SKIP
+  #  escaped:     ok \\\\\# SKIP
+  #  not escaped: ok \ # SKIP
+  if (substr(line, pos, 1) == "#")
+    {
+      bslash_count = 0
+      for (i = pos; i > 1 && substr(line, i - 1, 1) == "\\"; i--)
+        bslash_count += 1
+      if (bslash_count % 2)
+        return # Directive was escaped.
+    }
+
+  # Strip the directive and its explanation (if any) from the test
+  # description.
+  result_obj["description"] = substr(line, 1, pos - 1)
+  # Now remove the test description from the line, that has been dealt
+  # with already.
+  line = substr(line, pos)
+  # Strip the directive, and save its value (normalized to upper case).
+  sub("^[ \t]*#[ \t]*", "", line)
+  result_obj["directive"] = toupper(substr(line, 1, 4))
+  line = substr(line, 5)
+  # Now get the explanation for the directive (if any), with leading
+  # and trailing whitespace removed.
+  sub("^[ \t]*", "", line)
+  sub("[ \t]*$", "", line)
+  result_obj["explanation"] = line
+}
+
+function get_test_exit_message(status)
+{
+  if (status == 0)
+    return ""
+  if (status !~ /^[1-9][0-9]*$/)
+    abort("getting exit status")
+  if (status < 127)
+    exit_details = ""
+  else if (status == 127)
+    exit_details = " (command not found?)"
+  else if (status >= 128 && status <= 255)
+    exit_details = sprintf(" (terminated by signal %d?)", status - 128)
+  else if (status > 256 && status <= 384)
+    # We used to report an "abnormal termination" here, but some Korn
+    # shells, when a child process die due to signal number n, can leave
+    # in $? an exit status of 256+n instead of the more standard 128+n.
+    # Apparently, both behaviours are allowed by POSIX (2008), so be
+    # prepared to handle them both.  See also Austing Group report ID
+    # 0000051 <http://www.austingroupbugs.net/view.php?id=51>
+    exit_details = sprintf(" (terminated by signal %d?)", status - 256)
+  else
+    # Never seen in practice.
+    exit_details = " (abnormal termination)"
+  return sprintf("exited with status %d%s", status, exit_details)
+}
+
+function write_test_results()
+{
+  print ":global-test-result: " get_global_test_result() > trs_file
+  print ":recheck: "  yn(must_recheck()) > trs_file
+  print ":copy-in-global-log: " yn(copy_in_global_log()) > trs_file
+  for (i = 0; i < test_results_index; i += 1)
+    print ":test-result: " test_results_list[i] > trs_file
+  close(trs_file);
+}
+
+BEGIN {
+
+## ------- ##
+##  SETUP  ##
+## ------- ##
+
+'"$init_colors"'
+
+# Properly initialized once the TAP plan is seen.
+planned_tests = 0
+
+COOKED_PASS = expect_failure ? "XPASS": "PASS";
+COOKED_FAIL = expect_failure ? "XFAIL": "FAIL";
+
+# Enumeration-like constants to remember which kind of plan (if any)
+# has been seen.  It is important that NO_PLAN evaluates "false" as
+# a boolean.
+NO_PLAN = 0
+EARLY_PLAN = 1
+LATE_PLAN = 2
+
+testno = 0     # Number of test results seen so far.
+bailed_out = 0 # Whether a "Bail out!" directive has been seen.
+
+# Whether the TAP plan has been seen or not, and if yes, which kind
+# it is ("early" is seen before any test result, "late" otherwise).
+plan_seen = NO_PLAN
+
+## --------- ##
+##  PARSING  ##
+## --------- ##
+
+is_first_read = 1
+
+while (1)
+  {
+    # Involutions required so that we are able to read the exit status
+    # from the last input line.
+    st = getline
+    if (st < 0) # I/O error.
+      fatal("I/O error while reading from input stream")
+    else if (st == 0) # End-of-input
+      {
+        if (is_first_read)
+          abort("in input loop: only one input line")
+        break
+      }
+    if (is_first_read)
+      {
+        is_first_read = 0
+        nextline = $0
+        continue
+      }
+    else
+      {
+        curline = nextline
+        nextline = $0
+        $0 = curline
+      }
+    # Copy any input line verbatim into the log file.
+    print | "cat >&3"
+    # Parsing of TAP input should stop after a "Bail out!" directive.
+    if (bailed_out)
+      continue
+
+    # TAP test result.
+    if ($0 ~ /^(not )?ok$/ || $0 ~ /^(not )?ok[^a-zA-Z0-9_]/)
+      {
+        testno += 1
+        setup_result_obj($0)
+        handle_tap_result()
+      }
+    # TAP plan (normal or "SKIP" without explanation).
+    else if ($0 ~ /^1\.\.[0-9]+[ \t]*$/)
+      {
+        # The next two lines will put the number of planned tests in $0.
+        sub("^1\\.\\.", "")
+        sub("[^0-9]*$", "")
+        handle_tap_plan($0, "")
+        continue
+      }
+    # TAP "SKIP" plan, with an explanation.
+    else if ($0 ~ /^1\.\.0+[ \t]*#/)
+      {
+        # The next lines will put the skip explanation in $0, stripping
+        # any leading and trailing whitespace.  This is a little more
+        # tricky in truth, since we want to also strip a potential leading
+        # "SKIP" string from the message.
+        sub("^[^#]*#[ \t]*(SKIP[: \t][ \t]*)?", "")
+        sub("[ \t]*$", "");
+        handle_tap_plan(0, $0)
+      }
+    # "Bail out!" magic.
+    # Older versions of prove and TAP::Harness (e.g., 3.17) did not
+    # recognize a "Bail out!" directive when preceded by leading
+    # whitespace, but more modern versions (e.g., 3.23) do.  So we
+    # emulate the latter, "more modern" behaviour.
+    else if ($0 ~ /^[ \t]*Bail out!/)
+      {
+        bailed_out = 1
+        # Get the bailout message (if any), with leading and trailing
+        # whitespace stripped.  The message remains stored in `$0`.
+        sub("^[ \t]*Bail out![ \t]*", "");
+        sub("[ \t]*$", "");
+        # Format the error message for the
+        bailout_message = "Bail out!"
+        if (length($0))
+          bailout_message = bailout_message " " $0
+        testsuite_error(bailout_message)
+      }
+    # Maybe we have too look for dianogtic comments too.
+    else if (comments != 0)
+      {
+        comment = extract_tap_comment($0);
+        if (length(comment))
+          report("#", comment);
+      }
+  }
+
+## -------- ##
+##  FINISH  ##
+## -------- ##
+
+# A "Bail out!" directive should cause us to ignore any following TAP
+# error, as well as a non-zero exit status from the TAP producer.
+if (!bailed_out)
+  {
+    if (!plan_seen)
+      {
+        testsuite_error("missing test plan")
+      }
+    else if (planned_tests != testno)
+      {
+        bad_amount = testno > planned_tests ? "many" : "few"
+        testsuite_error(sprintf("too %s tests run (expected %d, got %d)",
+                                bad_amount, planned_tests, testno))
+      }
+    if (!ignore_exit)
+      {
+        # Fetch exit status from the last line.
+        exit_message = get_test_exit_message(nextline)
+        if (exit_message)
+          testsuite_error(exit_message)
+      }
+  }
+
+write_test_results()
+
+exit 0
+
+} # End of "BEGIN" block.
+'
+
+# TODO: document that we consume the file descriptor 3 :-(
+} 3>"$log_file"
+
+test $? -eq 0 || fatal "I/O or internal error"
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build/autotools/tap-test b/build/autotools/tap-test
new file mode 100755 (executable)
index 0000000..481e333
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+# run a GTest in tap mode. The test binary is passed as $1
+
+$1 -k --tap
index 531136b..a85b723 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
index 1804e9f..dbfb978 100755 (executable)
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012, 2013 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2012-12-29'
+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
@@ -26,12 +24,12 @@ timestamp='2012-12-29'
 # program.  This Exception is an additional permission under section 7
 # of the GNU General Public License, version 3 ("GPLv3").
 #
-# Originally written by Per Bothner
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 #
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
 
 
 me=`echo "$0" | sed -e 's,.*/,,'`
@@ -52,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -562,8 +579,9 @@ EOF
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
+       if [ -x /usr/bin/lslpp ] ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
@@ -809,7 +827,7 @@ EOF
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
        echo ${UNAME_MACHINE}-pc-msys
        exit ;;
     i*:windows32*:*)
@@ -857,21 +875,21 @@ EOF
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -884,59 +902,54 @@ EOF
          EV68*) UNAME_MACHINE=alphaev68 ;;
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -955,54 +968,63 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
-    or32:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+       echo or1k-unknown-linux-${LIBC}
+       exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-unknown-linux-${LIBC}
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-unknown-linux-${LIBC}
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-unknown-linux-${LIBC}
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1235,19 +1257,31 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+           if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                   (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                   grep IS_64BIT_ARCH >/dev/null
+               then
+                   case $UNAME_PROCESSOR in
+                       i386) UNAME_PROCESSOR=x86_64 ;;
+                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
+                   esac
+               fi
+           fi
+       elif test "$UNAME_PROCESSOR" = i386 ; then
+           # Avoid executing cc on OS X 10.9, as it ships with a stub
+           # that puts up a graphical alert prompting to install
+           # developer tools.  Any system running Mac OS X 10.7 or
+           # later (Darwin 11 and later) is required to have a 64-bit
+           # processor. This is not true of the ARM version of Darwin
+           # that Apple uses in portable devices.
+           UNAME_PROCESSOR=x86_64
+       fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1338,154 +1372,6 @@ EOF
        exit ;;
 esac
 
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-       "4"
-#else
-       ""
-#endif
-       ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
-       exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
-       exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
 $0: unable to guess system type
 
index 52f04bc..6467c95 100755 (executable)
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012, 2013 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2012-12-29'
+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
@@ -27,7 +25,7 @@ timestamp='2012-12-29'
 # of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -70,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -256,19 +252,20 @@ case $basic_machine in
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc \
+       | arc | arceb \
        | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
        | avr | avr32 \
        | be32 | be64 \
        | bfin \
-       | c4x | clipper \
+       | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | epiphany \
-       | fido | fr30 | frv \
+       | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
+       | k1om \
        | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -286,23 +283,26 @@ case $basic_machine in
        | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
        | mipsisa64 | mipsisa64el \
        | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
        | moxie \
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
-       | nios | nios2 \
+       | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
-       | open8 \
-       | or32 \
+       | open8 | or1k | or1knd | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
+       | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -313,6 +313,7 @@ case $basic_machine in
        | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
        | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
@@ -327,7 +328,10 @@ case $basic_machine in
        c6x)
                basic_machine=tic6x-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -369,13 +373,13 @@ case $basic_machine in
        | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -384,6 +388,7 @@ case $basic_machine in
        | hexagon-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
+       | k1om-* \
        | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
@@ -403,18 +408,22 @@ case $basic_machine in
        | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
        | mipsisa64-* | mipsisa64el-* \
        | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
-       | nios-* | nios2-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
+       | or1k*-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -432,6 +441,7 @@ case $basic_machine in
        | ubicom32-* \
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
+       | visium-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -769,6 +779,9 @@ case $basic_machine in
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
@@ -796,7 +809,7 @@ case $basic_machine in
                os=-mingw64
                ;;
        mingw32)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-mingw32
                ;;
        mingw32ce)
@@ -824,6 +837,10 @@ case $basic_machine in
                basic_machine=powerpc-unknown
                os=-morphos
                ;;
+       moxiebox)
+               basic_machine=moxie-unknown
+               os=-moxiebox
+               ;;
        msdos)
                basic_machine=i386-pc
                os=-msdos
@@ -832,7 +849,7 @@ case $basic_machine in
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
        msys)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-msys
                ;;
        mvs)
@@ -1354,7 +1371,7 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
+             | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
              | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1369,14 +1386,14 @@ case $os in
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1500,9 +1517,6 @@ case $os in
        -aros*)
                os=-aros
                ;;
-       -kaos*)
-               os=-kaos
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
@@ -1551,6 +1565,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       c8051-*)
+               os=-elf
+               ;;
        hexagon-*)
                os=-elf
                ;;
index 06b0882..fc98710 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-10-18.11; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -552,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
index 377bb86..0b0fdcb 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-11-20.07; # 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
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='  '
 nl='
 '
-IFS=" ""       $nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-       shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-       case $mode in
-         *' '* | *'    '* | *'
-'*       | *'*'* | *'?'* | *'['*)
-           echo "$0: invalid mode: $mode" >&2
-           exit 1;;
-       esac
-       shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-       shift;;
+        shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-       # Protect names problematic for 'test' and other utilities.
-       case $dst_arg in
-         -* | [=\(\)!]) dst_arg=./$dst_arg;;
-       esac
-       shift;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
-    -T) no_target_directory=true;;
+    -T) is_target_a_directory=never;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)        shift
-       break;;
+    --) shift
+        break;;
 
-    -*)        echo "$0: invalid option: $1" >&2
-       exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
   trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
 
     *[0-7])
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -269,41 +274,15 @@ do
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-       echo "$0: $dst_arg: Is a directory" >&2
-       exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-       (dirname "$dst") 2>/dev/null ||
-       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-            X"$dst" : 'X\(//\)[^/]' \| \
-            X"$dst" : 'X\(//\)$' \| \
-            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-       echo X"$dst" |
-           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)[^/].*/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\).*/{
-                  s//\1/
-                  q
-                }
-                s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -314,74 +293,74 @@ do
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-       # Create intermediate dirs using mode 755 as modified by the umask.
-       # This is like FreeBSD 'install' as of 1997-10-28.
-       umask=`umask`
-       case $stripcmd.$umask in
-         # Optimize common cases.
-         *[2367][2367]) mkdir_umask=$umask;;
-         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-         *[0-7])
-           mkdir_umask=`expr $umask + 22 \
-             - $umask % 100 % 40 + $umask % 20 \
-             - $umask % 10 % 4 + $umask % 2
-           `;;
-         *) mkdir_umask=$umask,go-w;;
-       esac
-
-       # With -d, create the new directory with the user-specified mode.
-       # Otherwise, rely on $mkdir_umask.
-       if test -n "$dir_arg"; then
-         mkdir_mode=-m$mode
-       else
-         mkdir_mode=
-       fi
-
-       posix_mkdir=false
-       case $umask in
-         *[123567][0-7][0-7])
-           # POSIX mkdir -p sets u+wx bits regardless of umask, which
-           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-           ;;
-         *)
-           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-           if (umask $mkdir_umask &&
-               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.
-                  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 -- "$tmpdir" && {
-                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                  }
-                }
-             then posix_mkdir=:
-             fi
-             rmdir "$tmpdir/d" "$tmpdir"
-           else
-             # Remove any dirs left behind by ancient mkdir implementations.
-             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-           fi
-           trap '' 0;;
-       esac;;
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                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.
+                   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 -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
     esac
 
     if
       $posix_mkdir && (
-       umask $mkdir_umask &&
-       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -391,53 +370,51 @@ do
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-       /*) prefix='/';;
-       [-=\(\)!]*) prefix='./';;
-       *)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-       test X"$d" = X && continue
-
-       prefix=$prefix$d
-       if test -d "$prefix"; then
-         prefixes=
-       else
-         if $posix_mkdir; then
-           (umask=$mkdir_umask &&
-            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-           # Don't fail if two instances are running concurrently.
-           test -d "$prefix" || exit 1
-         else
-           case $prefix in
-             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-             *) qprefix=$prefix;;
-           esac
-           prefixes="$prefixes '$qprefix'"
-         fi
-       fi
-       prefix=$prefix/
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-       # Don't fail if two instances are running concurrently.
-       (umask $mkdir_umask &&
-        eval "\$doit_exec \$mkdirprog $prefixes") ||
-         test -d "$dstdir" || exit 1
-       obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -472,15 +449,12 @@ do
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
+       set +f &&
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -493,24 +467,24 @@ do
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-       # Now remove or move aside any old file at destination location.
-       # We try this two ways since rm can't unlink itself on some
-       # systems and the destination file might be busy for other
-       # reasons.  In this case, the final cleanup might fail but the new
-       # file should still install successfully.
-       {
-         test ! -f "$dst" ||
-         $doit $rmcmd -f "$dst" 2>/dev/null ||
-         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-         } ||
-         { echo "$0: cannot unlink or rename $dst" >&2
-           (exit 1); exit 1
-         }
-       } &&
-
-       # Now rename the file to the real destination.
-       $doit $mvcmd "$dsttmp" "$dst"
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
index 63ae69d..0f0a2da 100644 (file)
@@ -1,9 +1,12 @@
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+##               by inline-source v2014-01-03.01
 
-# libtool (GNU libtool) 2.4.2
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --no-warn            don't display warning messages
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:        $host
-#         shell:               $SHELL
-#         compiler:            $LTCC
-#         compiler flags:              $LTCFLAGS
-#         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2
-#         automake:    $automake_version
-#         autoconf:    $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.4.2
-TIMESTAMP=""
-package_revision=1.3337
+VERSION=2.4.6
+package_revision=2.4.6
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
 
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
-  eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
-         export $lt_var
-         lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-         lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+  eval "if test set = \"\${$_G_var+set}\"; then
+          save_$_G_var=\$$_G_var
+          $_G_var=C
+         export $_G_var
+         _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+         _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
        fi"
 done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
 
-$lt_unset CDPATH
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp       $nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
 
 
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+    test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+    _G_progs_list=$1
+    _G_check_func=$2
+    _G_PATH=${3-"$PATH"}
+
+    _G_path_prog_max=0
+    _G_path_prog_found=false
+    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+    for _G_dir in $_G_PATH; do
+      IFS=$_G_save_IFS
+      test -z "$_G_dir" && _G_dir=.
+      for _G_prog_name in $_G_progs_list; do
+        for _exeext in '' .EXE; do
+          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+          func_executable_p "$_G_path_prog" || continue
+          case `"$_G_path_prog" --version 2>&1` in
+            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+            *)     $_G_check_func $_G_path_prog
+                  func_path_progs_result=$func_check_prog_result
+                  ;;
+          esac
+          $_G_path_prog_found && break 3
+        done
+      done
+    done
+    IFS=$_G_save_IFS
+    test -z "$func_path_progs_result" && {
+      echo "no acceptable sed could be found in \$PATH" >&2
+      exit 1
+    }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+  for _G_i in 1 2 3 4 5 6 7; do
+    _G_sed_script=$_G_sed_script$nl$_G_sed_script
+  done
+  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+  _G_sed_script=
+
+  func_check_prog_sed ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo '' >> conftest.nl
+      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+  rm -f conftest.sed
+  SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+  func_check_prog_grep ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    _G_path_prog_max=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo 'GREP' >> conftest.nl
+      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+  GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables.  These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
 
 : ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS="  $lt_nl"
 
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
 
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
 
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
 
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
 
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
 
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same.  If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion.  Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+  s/$_G_bs4/&\\
+/g
+  s/^$_G_bs2$_G_dollar/$_G_bs&/
+  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+  s/\n//g"
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
 
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
 
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-               s@/\./@/@g
-               t dotsl
-               s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
 
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-#             value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
-      "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
 
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
-        ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
-        ;;
-      *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
-        ;;
-    esac
-  done
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
 
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
+# By convention, finish your script with:
+#
+#    exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
 
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
-}
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
 
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
 
-# Make sure we have an absolute path for reexecution:
+# Make sure we have an absolute progpath for reexecution:
 case $progpath in
   [\\/]*|[A-Za-z]:\\*) ;;
   *[\\/]*)
-     progdir=$func_dirname_result
+     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
      progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
+     progpath=$progdir/$progname
      ;;
   *)
-     save_IFS="$IFS"
+     _G_IFS=$IFS
      IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
-       IFS="$save_IFS"
+       IFS=$_G_IFS
        test -x "$progdir/$progname" && break
      done
-     IFS="$save_IFS"
+     IFS=$_G_IFS
      test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
+     progpath=$progdir/$progname
      ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
 
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
 
-# Standard options:
 opt_dry_run=false
-opt_help=false
 opt_quiet=false
 opt_verbose=false
-opt_warning=:
 
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
+# Categories 'all' and 'none' are always available.  Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
 
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
+# By default, display warnings according to 'opt_warning_types'.  Set
+# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
 
-    # A bug in bash halts the script if the last line of a function
-    # fails when set -e is in force, so we need another command to
-    # work around that:
-    :
-}
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
 
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
 
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
 
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
 
-    # bash bug again:
-    :
-}
 
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
 {
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
+    $debug_cmd
+
+    test -t 1 && {
+      # COLORTERM and USE_ANSI_COLORS environment variables take
+      # precedence, because most terminfo databases neglect to describe
+      # whether color sequences are supported.
+      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+      if test 1 = "$USE_ANSI_COLORS"; then
+        # Standard ANSI escape sequences
+        tc_reset='\e[0m'
+        tc_bold='\e[1m';   tc_standout='\e[7m'
+        tc_red='\e[31m';   tc_green='\e[32m'
+        tc_blue='\e[34m';  tc_cyan='\e[36m'
+      else
+        # Otherwise trust the terminfo database after all.
+        test -n "`tput sgr0 2>/dev/null`" && {
+          tc_reset=`tput sgr0`
+          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+          tc_standout=$tc_bold
+          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+        }
+      fi
+    }
 
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
+    require_term_colors=:
 }
-help="Try \`$progname --help' for more information."  ## default
 
 
-# func_grep expression filename
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+  # We should try to minimise forks, especially on Windows where they are
+  # unreasonably slow, so skip the feature probes when bash or zsh are
+  # being used:
+  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+    : ${_G_HAVE_ARITH_OP="yes"}
+    : ${_G_HAVE_XSI_OPS="yes"}
+    # The += operator was introduced in bash 3.1
+    case $BASH_VERSION in
+      [12].* | 3.0 | 3.0*) ;;
+      *)
+        : ${_G_HAVE_PLUSEQ_OP="yes"}
+        ;;
+    esac
+  fi
+
+  # _G_HAVE_PLUSEQ_OP
+  # Can be empty, in which case the shell is probed, "yes" if += is
+  # useable or anything else if it does not work.
+  test -z "$_G_HAVE_PLUSEQ_OP" \
+    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+    && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_append ()
+  {
+    $debug_cmd
+
+    eval "$1+=\$2"
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_append ()
+  {
+    $debug_cmd
+
+    eval "$1=\$$1\$2"
+  }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+  eval 'func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
+  }'
+else
+  func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
+  }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE.  For example:
+#
+#   func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+    $debug_cmd
+
+    eval _G_current_value='`$ECHO $'$1'`'
+    _G_delim=`expr "$2" : '\(.\)'`
+
+    case $_G_delim$_G_current_value$_G_delim in
+      *"$2$_G_delim"*) ;;
+      *) func_append "$@" ;;
+    esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+  test -z "$_G_HAVE_ARITH_OP" \
+    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+    && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+  eval 'func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=$(( $* ))
+  }'
+else
+  func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=`expr "$@"`
+  }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  # If this shell supports suffix pattern removal, then use it to avoid
+  # forking. Hide the definitions single quotes in case the shell chokes
+  # on unsupported syntax...
+  _b='func_basename_result=${1##*/}'
+  _d='case $1 in
+        */*) func_dirname_result=${1%/*}$2 ;;
+        *  ) func_dirname_result=$3        ;;
+      esac'
+
+else
+  # ...otherwise fall back to using sed.
+  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
+      if test "X$func_dirname_result" = "X$1"; then
+        func_dirname_result=$3
+      else
+        func_append func_dirname_result "$2"
+      fi'
+fi
+
+eval 'func_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+    $debug_cmd
+
+    '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+    '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    _G_infix=$1; shift
+    _G_indent=$_G_infix
+    _G_prefix="$progname: $_G_infix: "
+    _G_message=$*
+
+    # Strip color escape sequences before counting printable length
+    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+    do
+      test -n "$_G_tc" && {
+        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+      }
+    done
+    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
+
+    func_echo_infix_1_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_infix_1_IFS
+      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+      _G_prefix=$_G_indent
+    done
+    IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    $debug_cmd
+
+    func_error "$*"
+    exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
 # Check whether EXPRESSION matches any line of FILENAME, without output.
 func_grep ()
 {
+    $debug_cmd
+
     $GREP "$1" "$2" >/dev/null 2>&1
 }
 
 
-# func_mkdir_p directory-path
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+  test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=${#1}
+  }'
+else
+  func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+  }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
 # Make sure the entire path to DIRECTORY-PATH is available.
 func_mkdir_p ()
 {
-    my_directory_path="$1"
-    my_dir_list=
+    $debug_cmd
 
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+    _G_directory_path=$1
+    _G_dir_list=
 
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
+    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+      # Protect directory names starting with '-'
+      case $_G_directory_path in
+        -*) _G_directory_path=./$_G_directory_path ;;
       esac
 
       # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
+      while test ! -d "$_G_directory_path"; do
         # ...make a list in topmost first order.  Use a colon delimited
        # list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
+        _G_dir_list=$_G_directory_path:$_G_dir_list
 
         # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
+        case $_G_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
       done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
 
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-       IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
+      func_mkdir_p_IFS=$IFS; IFS=:
+      for _G_dir in $_G_dir_list; do
+       IFS=$func_mkdir_p_IFS
+        # mkdir can fail with a 'File exist' error if two processes
         # try to create one of the directories concurrently.  Don't
         # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
+        $MKDIR "$_G_dir" 2>/dev/null || :
       done
-      IFS="$save_mkdir_p_IFS"
+      IFS=$func_mkdir_p_IFS
 
       # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
+      test -d "$_G_directory_path" || \
+        func_fatal_error "Failed to create '$1'"
     fi
 }
 
 
-# func_mktempdir [string]
+# func_mktempdir [BASENAME]
+# -------------------------
 # Make a temporary directory that won't clash with other running
 # libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
+# given, BASENAME is the basename for that directory.
 func_mktempdir ()
 {
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
+    $debug_cmd
+
+    _G_template=${TMPDIR-/tmp}/${1-$progname}
 
-    if test "$opt_dry_run" = ":"; then
+    if test : = "$opt_dry_run"; then
       # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
+      _G_tmpdir=$_G_template-$$
     else
 
       # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
 
-      if test ! -d "$my_tmpdir"; then
+      if test ! -d "$_G_tmpdir"; then
         # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
+        _G_tmpdir=$_G_template-${RANDOM-0}$$
 
-        save_mktempdir_umask=`umask`
+        func_mktempdir_umask=`umask`
         umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
+        $MKDIR "$_G_tmpdir"
+        umask $func_mktempdir_umask
       fi
 
       # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+      test -d "$_G_tmpdir" || \
+        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+    fi
+
+    $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+    $debug_cmd
+
+    # These SED scripts presuppose an absolute path with a trailing slash.
+    _G_pathcar='s|^/\([^/]*\).*$|\1|'
+    _G_pathcdr='s|^/[^/]*||'
+    _G_removedotparts=':dotsl
+               s|/\./|/|g
+               t dotsl
+               s|/\.$|/|'
+    _G_collapseslashes='s|/\{1,\}|/|g'
+    _G_finalslash='s|/*$|/|'
+
+    # Start from root dir and reassemble the path.
+    func_normal_abspath_result=
+    func_normal_abspath_tpath=$1
+    func_normal_abspath_altnamespace=
+    case $func_normal_abspath_tpath in
+      "")
+        # Empty path, that just means $cwd.
+        func_stripname '' '/' "`pwd`"
+        func_normal_abspath_result=$func_stripname_result
+        return
+        ;;
+      # The next three entries are used to spot a run of precisely
+      # two leading slashes without using negated character classes;
+      # we take advantage of case's first-match behaviour.
+      ///*)
+        # Unusual form of absolute path, do nothing.
+        ;;
+      //*)
+        # Not necessarily an ordinary path; POSIX reserves leading '//'
+        # and for example Cygwin uses it to access remote file shares
+        # over CIFS/SMB, so we conserve a leading double slash if found.
+        func_normal_abspath_altnamespace=/
+        ;;
+      /*)
+        # Absolute path, do nothing.
+        ;;
+      *)
+        # Relative path, prepend $cwd.
+        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+        ;;
+    esac
+
+    # Cancel out all the simple stuff to save iterations.  We also want
+    # the path to end with a slash for ease of parsing, so make sure
+    # there is one (and only one) here.
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+    while :; do
+      # Processed it all yet?
+      if test / = "$func_normal_abspath_tpath"; then
+        # If we ascended to the root using ".." the result may be empty now.
+        if test -z "$func_normal_abspath_result"; then
+          func_normal_abspath_result=/
+        fi
+        break
+      fi
+      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcar"`
+      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcdr"`
+      # Figure out what to do with it
+      case $func_normal_abspath_tcomponent in
+        "")
+          # Trailing empty path component, ignore it.
+          ;;
+        ..)
+          # Parent dir; strip last assembled component from result.
+          func_dirname "$func_normal_abspath_result"
+          func_normal_abspath_result=$func_dirname_result
+          ;;
+        *)
+          # Actual path component, append it.
+          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+          ;;
+      esac
+    done
+    # Restore leading double-slash if one was found on entry.
+    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+    $debug_cmd
+
+    $opt_quiet || func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+    $debug_cmd
+
+    func_relative_path_result=
+    func_normal_abspath "$1"
+    func_relative_path_tlibdir=$func_normal_abspath_result
+    func_normal_abspath "$2"
+    func_relative_path_tbindir=$func_normal_abspath_result
+
+    # Ascend the tree starting from libdir
+    while :; do
+      # check if we have found a prefix of bindir
+      case $func_relative_path_tbindir in
+        $func_relative_path_tlibdir)
+          # found an exact match
+          func_relative_path_tcancelled=
+          break
+          ;;
+        $func_relative_path_tlibdir*)
+          # found a matching prefix
+          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+          func_relative_path_tcancelled=$func_stripname_result
+          if test -z "$func_relative_path_result"; then
+            func_relative_path_result=.
+          fi
+          break
+          ;;
+        *)
+          func_dirname $func_relative_path_tlibdir
+          func_relative_path_tlibdir=$func_dirname_result
+          if test -z "$func_relative_path_tlibdir"; then
+            # Have to descend all the way to the root!
+            func_relative_path_result=../$func_relative_path_result
+            func_relative_path_tcancelled=$func_relative_path_tbindir
+            break
+          fi
+          func_relative_path_result=../$func_relative_path_result
+          ;;
+      esac
+    done
+
+    # Now calculate path; take care to avoid doubling-up slashes.
+    func_stripname '' '/' "$func_relative_path_result"
+    func_relative_path_result=$func_stripname_result
+    func_stripname '/' '/' "$func_relative_path_tcancelled"
+    if test -n "$func_stripname_result"; then
+      func_append func_relative_path_result "/$func_stripname_result"
+    fi
+
+    # Normalisation. If bindir is libdir, return '.' else relative path.
+    if test -n "$func_relative_path_result"; then
+      func_stripname './' '' "$func_relative_path_result"
+      func_relative_path_result=$func_stripname_result
     fi
 
-    $ECHO "$my_tmpdir"
+    test -n "$func_relative_path_result" || func_relative_path_result=.
+
+    :
+}
+
+
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
+func_quote_for_eval ()
+{
+    $debug_cmd
+
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
+        *[\\\`\"\$]*)
+         _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+       func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
+
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \  ]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
+          ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+         ;;
+      esac
+
+      if test -n "$func_quote_for_eval_result"; then
+       func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
+}
+
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    $debug_cmd
+
+    case $1 in
+      *[\\\`\"]*)
+       _G_arg=`$ECHO "$1" | $SED \
+           -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        _G_arg=$1 ;;
+    esac
+
+    case $_G_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        _G_arg=\"$_G_arg\"
+        ;;
+    esac
+
+    func_quote_for_expand_result=$_G_arg
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_stripname ()
+  {
+    $debug_cmd
+
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary variable first.
+    func_stripname_result=$3
+    func_stripname_result=${func_stripname_result#"$1"}
+    func_stripname_result=${func_stripname_result%"$2"}
+  }'
+else
+  func_stripname ()
+  {
+    $debug_cmd
+
+    case $2 in
+      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+    esac
+  }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
+
+    $opt_dry_run || {
+      eval "$_G_cmd"
+      _G_status=$?
+      if test 0 -ne "$_G_status"; then
+       eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    $opt_quiet || {
+      func_quote_for_expand "$_G_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    $opt_dry_run || {
+      eval "$_G_user_locale
+           $_G_cmd"
+      _G_status=$?
+      eval "$_G_safe_locale"
+      if test 0 -ne "$_G_status"; then
+       eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+    $debug_cmd
+
+    case $1 in
+    [0-9]* | *[!a-zA-Z0-9_]*)
+      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+      ;;
+    * )
+      func_tr_sh_result=$1
+      ;;
+    esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $debug_cmd
+
+    $opt_verbose && func_echo "$*"
+
+    :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+    $debug_cmd
+
+    # CATEGORY must be in the warning_categories list!
+    case " $warning_categories " in
+      *" $1 "*) ;;
+      *) func_internal_error "invalid warning category '$1'" ;;
+    esac
+
+    _G_category=$1
+    shift
+
+    case " $opt_warning_types " in
+      *" $_G_category "*) $warning_func ${1+"$@"} ;;
+    esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+    $debug_cmd
+
+    printf '%s\n%s\n' "$1" "$2" \
+      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false.  Use it like this:
+#
+#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+    $debug_cmd
+
+    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+#   #!/bin/sh
+#   . relative/path/to/funclib.sh
+#   . relative/path/to/options-parser
+#   scriptversion=1.0
+#   func_options ${1+"$@"}
+#   eval set dummy "$func_options_result"; shift
+#   ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'.  Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+       --debug        enable verbose shell tracing
+   -W, --warnings=CATEGORY
+                      report the warnings falling in CATEGORY [all]
+   -v, --verbose      verbosely report processing
+       --version      print version information and exit
+   -h, --help         print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+       'all'          show all warnings
+       'none'         turn off all the warnings
+       'error'        warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code.  A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+    $debug_cmd
+
+    func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not accept hook functions." ;;
+    esac
+
+    eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+    $debug_cmd
+
+    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+    esac
+
+    eval _G_hook_fns=\$$1_hooks; shift
+
+    for _G_hook in $_G_hook_fns; do
+      eval $_G_hook '"$@"'
+
+      # store returned options list back into positional
+      # parameters for next 'cmd' execution.
+      eval _G_hook_result=\$${_G_hook}_result
+      eval set dummy "$_G_hook_result"; shift
+    done
+
+    func_quote_for_eval ${1+"$@"}
+    func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'.  Like this:
+#
+#    my_options_prep ()
+#    {
+#        $debug_cmd
+#
+#        # Extend the existing usage message.
+#        usage_message=$usage_message'
+#      -s, --silent       don'\''t print informational messages
+#    '
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_options_prep_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_options_prep my_options_prep
+#
+#
+#    my_silent_option ()
+#    {
+#        $debug_cmd
+#
+#        # Note that for efficiency, we parse as many options as we can
+#        # recognise in a loop before passing the remainder back to the
+#        # caller on the first unrecognised argument we encounter.
+#        while test $# -gt 0; do
+#          opt=$1; shift
+#          case $opt in
+#            --silent|-s) opt_silent=: ;;
+#            # Separate non-argument short options:
+#            -s*)         func_split_short_opt "$_G_opt"
+#                         set dummy "$func_split_short_opt_name" \
+#                             "-$func_split_short_opt_arg" ${1+"$@"}
+#                         shift
+#                         ;;
+#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
+#          esac
+#        done
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_silent_option_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_parse_options my_silent_option
+#
+#
+#    my_option_validation ()
+#    {
+#        $debug_cmd
+#
+#        $opt_silent && $opt_verbose && func_fatal_help "\
+#    '--silent' and '--verbose' options are mutually exclusive."
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_option_validation_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse.  It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+    $debug_cmd
+
+    func_options_prep ${1+"$@"}
+    eval func_parse_options \
+        ${func_options_prep_result+"$func_options_prep_result"}
+    eval func_validate_options \
+        ${func_parse_options_result+"$func_parse_options_result"}
+
+    eval func_run_hooks func_options \
+        ${func_validate_options_result+"$func_validate_options_result"}
+
+    # save modified positional parameters for caller
+    func_options_result=$func_run_hooks_result
 }
 
 
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters.  If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
 {
-    case $1 in
-      *[\\\`\"\$]*)
-       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
+    $debug_cmd
 
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
+    # Option defaults:
+    opt_verbose=false
+    opt_warning_types=
+
+    func_run_hooks func_options_prep ${1+"$@"}
+
+    # save modified positional parameters for caller
+    func_options_prep_result=$func_run_hooks_result
 }
 
 
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
 {
-    case $1 in
-      *[\\\`\"]*)
-       my_arg=`$ECHO "$1" | $SED \
-           -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-      *)
-        my_arg="$1" ;;
-    esac
+    $debug_cmd
 
-    case $my_arg in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting and command substitution for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-        my_arg="\"$my_arg\""
-        ;;
-    esac
+    func_parse_options_result=
 
-    func_quote_for_expand_result="$my_arg"
-}
+    # this just eases exit handling
+    while test $# -gt 0; do
+      # Defer to hook functions for initial option parsing, so they
+      # get priority in the event of reusing an option name.
+      func_run_hooks func_parse_options ${1+"$@"}
 
+      # Adjust func_parse_options positional parameters to match
+      eval set dummy "$func_run_hooks_result"; shift
 
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+      # Break out of the loop if we already parsed every option.
+      test $# -gt 0 || break
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --debug|-x)   debug_cmd='set -x'
+                      func_echo "enabling shell trace mode"
+                      $debug_cmd
+                      ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                      set dummy --warnings none ${1+"$@"}
+                      shift
+                     ;;
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-       eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
+        --warnings|--warning|-W)
+                      test $# = 0 && func_missing_arg $_G_opt && break
+                      case " $warning_categories $1" in
+                        *" $1 "*)
+                          # trailing space prevents matching last $1 above
+                          func_append_uniq opt_warning_types " $1"
+                          ;;
+                        *all)
+                          opt_warning_types=$warning_categories
+                          ;;
+                        *none)
+                          opt_warning_types=none
+                          warning_func=:
+                          ;;
+                        *error)
+                          opt_warning_types=$warning_categories
+                          warning_func=func_fatal_error
+                          ;;
+                        *)
+                          func_fatal_error \
+                             "unsupported warning category: '$1'"
+                          ;;
+                      esac
+                      shift
+                      ;;
+
+        --verbose|-v) opt_verbose=: ;;
+        --version)    func_version ;;
+        -\?|-h)       func_usage ;;
+        --help)       func_help ;;
+
+       # Separate optargs to long options (plugins may need this):
+       --*=*)        func_split_equals "$_G_opt"
+                     set dummy "$func_split_equals_lhs" \
+                          "$func_split_equals_rhs" ${1+"$@"}
+                      shift
+                      ;;
+
+       # Separate optargs to short options:
+        -W*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        # Separate non-argument short options:
+        -\?*|-h*|-v*|-x*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "-$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        --)           break ;;
+        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
+        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+      esac
+    done
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    func_parse_options_result=$func_quote_for_eval_result
 }
 
 
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.  Use the saved locale for evaluation.
-func_show_eval_locale ()
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
 {
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
+    $debug_cmd
 
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
+    # Display all warnings if -W was not given.
+    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
 
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-           $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-       eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
+    func_run_hooks func_validate_options ${1+"$@"}
 
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result.  All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-    ;;
-  * )
-    func_tr_sh_result=$1
-    ;;
-  esac
+    # Bail if the options were screwed!
+    $exit_cmd $EXIT_FAILURE
+
+    # save modified positional parameters for caller
+    func_validate_options_result=$func_run_hooks_result
 }
 
 
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
-    $opt_debug
 
-    $SED -n '/(C)/!b go
-       :more
-       /\./!{
-         N
-         s/\n# / /
-         b more
-       }
-       :go
-       /^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-       s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
-}
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
 
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
 {
-    $opt_debug
+    $debug_cmd
 
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-       s/^# *$//
-       s/\$progname/'$progname'/
-       p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
+    eval \$ECHO \""Usage: $usage"\"
+    eval \$ECHO \""$fatal_help"\"
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
 }
 
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
 func_help ()
 {
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-       :print
-        s/^# //
-       s/^# *$//
-       s*\$progname*'$progname'*
-       s*\$host*'"$host"'*
-       s*\$SHELL*'"$SHELL"'*
-       s*\$LTCC*'"$LTCC"'*
-       s*\$LTCFLAGS*'"$LTCFLAGS"'*
-       s*\$LD*'"$LD"'*
-       s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-       p
-       d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message"
+    exit 0
 }
 
-# func_missing_arg argname
+
+# func_missing_arg ARGNAME
+# ------------------------
 # Echo program name prefixed message to standard error and set global
 # exit_cmd.
 func_missing_arg ()
 {
-    $opt_debug
+    $debug_cmd
 
-    func_error "missing argument for $1."
+    func_error "Missing argument for '$1'."
     exit_cmd=exit
 }
 
 
-# func_split_short_opt shortopt
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=${1%%=*}
+      func_split_equals_rhs=${1#*=}
+      test "x$func_split_equals_lhs" = "x$1" \
+        && func_split_equals_rhs=
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+      func_split_equals_rhs=
+      test "x$func_split_equals_lhs" = "x$1" \
+        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+  }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
 # Set func_split_short_opt_name and func_split_short_opt_arg shell
 # variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_arg=${1#??}
+      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+  }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
 {
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+    $debug_cmd
 
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
+    func_usage_message
+    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+    exit 0
+}
 
 
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
 {
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
+    $debug_cmd
 
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
+    eval \$ECHO \""Usage: $usage"\"
+    echo
+    $SED -n 's|^# ||
+        /^Written by/{
+          x;p;x
+        }
+       h
+       /^Written by/q' < "$progpath"
+    echo
+    eval \$ECHO \""$usage_message"\"
+}
 
-exit_cmd=:
 
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $debug_cmd
 
+    printf '%s\n' "$progname $scriptversion"
+    $SED -n '
+        /(C)/!b go
+        :more
+        /\./!{
+          N
+          s|\n# | |
+          b more
+        }
+        :go
+        /^# Written by /,/# warranty; / {
+          s|^# ||
+          s|^# *$||
+          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+          p
+        }
+        /^# Written by / {
+          s|^# ||
+          p
+        }
+        /^warranty; /q' < "$progpath"
 
+    exit $?
+}
 
 
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
 
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
 
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
 {
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
+    $debug_cmd
 
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
+    _G_message=$*
 
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
 
-# func_arith arithmetic-term...
-func_arith ()
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
 {
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
+    $debug_cmd
 
+    $warning_func ${1+"$@"}
+}
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
 
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+       --config             show all configuration variables
+       --debug              enable verbose shell tracing
+   -n, --dry-run            display commands without modifying any files
+       --features           display basic configuration information and exit
+       --mode=MODE          use operation mode MODE
+       --no-warnings        equivalent to '-Wnone'
+       --preserve-dup-deps  don't remove duplicate dependency libraries
+       --quiet, --silent    don't print informational messages
+       --tag=TAG            use configuration variables from tag TAG
+   -v, --verbose            print more informational messages than default
+       --version            print version information
+   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
+   -h, --help, --help-all   print short, long, or detailed help message
+"
 
-# func_lo2o object
-func_lo2o ()
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
 {
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+       clean           remove files from the build directory
+       compile         compile a source file into a libtool object
+       execute         automatically set library path, then run a program
+       finish          complete the installation of libtool libraries
+       install         install libraries or executables
+       link            create a library or an executable
+       uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+       host-triplet:   $host
+       shell:          $SHELL
+       compiler:       $LTCC
+       compiler flags: $LTCFLAGS
+       linker:         $LD (gnu? $with_gnu_ld)
+       version:        $progname (GNU libtool) 2.4.6
+       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+    exit 0
+}
 
 
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_lo2o ()
+  {
+    case $1 in
+      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+      *   ) func_lo2o_result=$1               ;;
+    esac
+  }'
+
+  # func_xform LIBOBJ-OR-SOURCE
+  # ---------------------------
+  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+  # suffix to a '.lo' libtool-object suffix.
+  eval 'func_xform ()
+  {
+    func_xform_result=${1%.*}.lo
+  }'
+else
+  # ...otherwise fall back to using sed.
+  func_lo2o ()
+  {
+    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+  }
+
+  func_xform ()
+  {
+    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+  }
+fi
 
 
-# func_fatal_configuration arg...
+# func_fatal_configuration ARG...
+# -------------------------------
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
 func_fatal_configuration ()
 {
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
+    func__fatal_error ${1+"$@"} \
+      "See the $PACKAGE documentation for more information." \
+      "Fatal configuration error."
 }
 
 
 # func_config
+# -----------
 # Display the configuration for all the tags in this script.
 func_config ()
 {
@@ -915,17 +2149,19 @@ func_config ()
     exit $?
 }
 
+
 # func_features
+# -------------
 # Display the features supported by this script.
 func_features ()
 {
     echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       echo "enable shared libraries"
     else
       echo "disable shared libraries"
     fi
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       echo "enable static libraries"
     else
       echo "disable static libraries"
@@ -934,314 +2170,350 @@ func_features ()
     exit $?
 }
 
-# func_enable_tag tagname
+
+# func_enable_tag TAGNAME
+# -----------------------
 # Verify that TAGNAME is valid, and either flag an error and exit, or
 # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 # variable here.
 func_enable_tag ()
 {
-  # Global variable:
-  tagname="$1"
+    # Global variable:
+    tagname=$1
 
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+    sed_extractcf=/$re_begincf/,/$re_endcf/p
 
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
+    # Validate tagname.
+    case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+        func_fatal_error "invalid tag name: $tagname"
+        ;;
+    esac
 
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
+    # Don't test for the "default" C tag, as we know it's
+    # there but not specially marked.
+    case $tagname in
+        CC) ;;
     *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-       taglist="$taglist $tagname"
-
-       # Evaluate the configuration.  Be careful to quote the path
-       # and the sed script, to avoid splitting on whitespace, but
-       # also don't use non-portable quotes within backquotes within
-       # quotes we have to do it in 2 steps:
-       extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-       eval "$extractedcf"
-      else
-       func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
+        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+         taglist="$taglist $tagname"
+
+         # Evaluate the configuration.  Be careful to quote the path
+         # and the sed script, to avoid splitting on whitespace, but
+         # also don't use non-portable quotes within backquotes within
+         # quotes we have to do it in 2 steps:
+         extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+         eval "$extractedcf"
+        else
+         func_error "ignoring unknown tag $tagname"
+        fi
+        ;;
+    esac
 }
 
+
 # func_check_version_match
+# ------------------------
 # Ensure that we are using m4 macros, and libtool script from the same
 # release of libtool.
 func_check_version_match ()
 {
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
+    if test "$package_revision" != "$macro_revision"; then
+      if test "$VERSION" != "$macro_version"; then
+        if test -z "$macro_version"; then
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from an older release.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      else
-        cat >&2 <<_LT_EOF
+        else
+          cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
+        fi
+      else
+        cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
 $progname: of $PACKAGE $VERSION and run autoconf again.
 _LT_EOF
-    fi
+      fi
 
-    exit $EXIT_MISMATCH
-  fi
+      exit $EXIT_MISMATCH
+    fi
 }
 
 
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
-  ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
-  ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
-  ;;
-esac
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+    $debug_mode
 
+    # Option defaults:
+    opt_config=false
+    opt_dlopen=
+    opt_dry_run=false
+    opt_help=false
+    opt_mode=
+    opt_preserve_dup_deps=false
+    opt_quiet=false
 
+    nonopt=
+    preserve_args=
 
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
+    # Shorthand for --mode=foo, only valid as the first argument
+    case $1 in
+    clean|clea|cle|cl)
+      shift; set dummy --mode clean ${1+"$@"}; shift
+      ;;
+    compile|compil|compi|comp|com|co|c)
+      shift; set dummy --mode compile ${1+"$@"}; shift
+      ;;
+    execute|execut|execu|exec|exe|ex|e)
+      shift; set dummy --mode execute ${1+"$@"}; shift
+      ;;
+    finish|finis|fini|fin|fi|f)
+      shift; set dummy --mode finish ${1+"$@"}; shift
+      ;;
+    install|instal|insta|inst|ins|in|i)
+      shift; set dummy --mode install ${1+"$@"}; shift
+      ;;
+    link|lin|li|l)
+      shift; set dummy --mode link ${1+"$@"}; shift
+      ;;
+    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+      shift; set dummy --mode uninstall ${1+"$@"}; shift
+      ;;
+    esac
+
+    # Pass back the list of options.
+    func_quote_for_eval ${1+"$@"}
+    libtool_options_prep_result=$func_quote_for_eval_result
+}
+func_add_hook func_options_prep libtool_options_prep
 
 
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
 {
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)      opt_debug='set -x'
-                       func_echo "enabling shell trace mode"
-                       $opt_debug
-                       ;;
-      --dry-run|--dryrun|-n)
-                       opt_dry_run=:
-                       ;;
-      --config)
-                       opt_config=:
-func_config
-                       ;;
-      --dlopen|-dlopen)
-                       optarg="$1"
-                       opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-                       shift
-                       ;;
-      --preserve-dup-deps)
-                       opt_preserve_dup_deps=:
-                       ;;
-      --features)
-                       opt_features=:
-func_features
-                       ;;
-      --finish)
-                       opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-                       ;;
-      --help)
-                       opt_help=:
-                       ;;
-      --help-all)
-                       opt_help_all=:
-opt_help=': help-all'
-                       ;;
-      --mode)
-                       test $# = 0 && func_missing_arg $opt && break
-                       optarg="$1"
-                       opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-                       shift
-                       ;;
-      --no-silent|--no-quiet)
-                       opt_silent=false
-func_append preserve_args " $opt"
-                       ;;
-      --no-warning|--no-warn)
-                       opt_warning=false
-func_append preserve_args " $opt"
-                       ;;
-      --no-verbose)
-                       opt_verbose=false
-func_append preserve_args " $opt"
-                       ;;
-      --silent|--quiet)
-                       opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-                       ;;
-      --verbose|-v)
-                       opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-                       ;;
-      --tag)
-                       test $# = 0 && func_missing_arg $opt && break
-                       optarg="$1"
-                       opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-                       shift
-                       ;;
-
-      -\?|-h)          func_usage                              ;;
-      --help)          func_help                               ;;
-      --version)       func_version                            ;;
-
-      # Separate optargs to long options:
-      --*=*)
-                       func_split_long_opt "$opt"
-                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-                       shift
-                       ;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-                       func_split_short_opt "$opt"
-                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-                       shift
-                       ;;
-
-      --)              break                                   ;;
-      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
-      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
-    esac
-  done
+    $debug_cmd
 
-  # Validate options:
+    # Perform our own loop to consume as many options as possible in
+    # each iteration.
+    while test $# -gt 0; do
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --dry-run|--dryrun|-n)
+                        opt_dry_run=:
+                        ;;
+
+        --config)       func_config ;;
+
+        --dlopen|-dlopen)
+                        opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+                        shift
+                        ;;
+
+        --preserve-dup-deps)
+                        opt_preserve_dup_deps=: ;;
+
+        --features)     func_features ;;
+
+        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
+
+        --help)         opt_help=: ;;
+
+        --help-all)     opt_help=': help-all' ;;
+
+        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_mode=$1
+                        case $1 in
+                          # Valid mode arguments:
+                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+                          # Catch anything else as an error
+                          *) func_error "invalid argument for $_G_opt"
+                             exit_cmd=exit
+                             break
+                             ;;
+                        esac
+                        shift
+                        ;;
+
+        --no-silent|--no-quiet)
+                        opt_quiet=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                        opt_warning=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-verbose)
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --silent|--quiet)
+                        opt_quiet=:
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_tag=$1
+                        func_append preserve_args " $_G_opt $1"
+                        func_enable_tag "$1"
+                        shift
+                        ;;
+
+        --verbose|-v)   opt_quiet=false
+                        opt_verbose=:
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+       # An option not handled by this hook function:
+        *)             set dummy "$_G_opt" ${1+"$@"};  shift; break  ;;
+      esac
+    done
 
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
-  fi
 
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
 
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
 
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
 
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+    # save first non-option argument
+    if test 0 -lt $#; then
+      nonopt=$1
+      shift
     fi
 
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
+    # preserve --debug
+    test : = "$debug_cmd" || func_append preserve_args " --debug"
 
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
+    case $host in
+      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+        # don't eliminate duplications in $postdeps and $predeps
+        opt_duplicate_compiler_generated_deps=:
+        ;;
+      *)
+        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+        ;;
+    esac
 
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
+    $opt_help || {
+      # Sanity checks first:
+      func_check_version_match
+
+      test yes != "$build_libtool_libs" \
+        && test yes != "$build_old_libs" \
+        && func_fatal_configuration "not configured to build any kind of library"
+
+      # Darwin sucks
+      eval std_shrext=\"$shrext_cmds\"
+
+      # Only execute mode is allowed to have -dlopen flags.
+      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+        func_error "unrecognized option '-dlopen'"
+        $ECHO "$help" 1>&2
+        exit $EXIT_FAILURE
+      fi
 
+      # Change the help message to a mode-specific one.
+      generic_help=$help
+      help="Try '$progname --help --mode=$opt_mode' for more information."
+    }
 
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
+    # Pass back the unparsed argument list
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
 }
+func_add_hook func_validate_options libtool_validate_options
 
 
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
 
 
 ## ----------- ##
 ##    Main.    ##
 ## ----------- ##
 
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
 # func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out
 # determined imposters.
 func_lalib_p ()
 {
     test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
+# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function implements the same check as func_lalib_p without
 # resorting to external programs.  To this end, it redirects stdin and
 # closes it afterwards, without saving the original file descriptor.
 # As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
+# fatal anyway.  Works if 'file' does not exist.
 func_lalib_unsafe_p ()
 {
     lalib_p=no
@@ -1249,13 +2521,13 @@ func_lalib_unsafe_p ()
        for lalib_p_l in 1 2 3 4
        do
            read lalib_p_line
-           case "$lalib_p_line" in
+           case $lalib_p_line in
                \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
            esac
        done
        exec 0<&5 5<&-
     fi
-    test "$lalib_p" = yes
+    test yes = "$lalib_p"
 }
 
 # func_ltwrapper_script_p file
@@ -1264,7 +2536,8 @@ func_lalib_unsafe_p ()
 # determined imposters.
 func_ltwrapper_script_p ()
 {
-    func_lalib_p "$1"
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_ltwrapper_executable_p file
@@ -1289,7 +2562,7 @@ func_ltwrapper_scriptname ()
 {
     func_dirname_and_basename "$1" "" "."
     func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
 }
 
 # func_ltwrapper_p file
@@ -1308,11 +2581,13 @@ func_ltwrapper_p ()
 # FAIL_CMD may read-access the current command in variable CMD!
 func_execute_cmds ()
 {
-    $opt_debug
+    $debug_cmd
+
     save_ifs=$IFS; IFS='~'
     for cmd in $1; do
-      IFS=$save_ifs
+      IFS=$sp$nl
       eval cmd=\"$cmd\"
+      IFS=$save_ifs
       func_show_eval "$cmd" "${2-:}"
     done
     IFS=$save_ifs
@@ -1324,10 +2599,11 @@ func_execute_cmds ()
 # Note that it is not necessary on cygwin/mingw to append a dot to
 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
+# 'FILE.' does not work on cygwin managed mounts.
 func_source ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $1 in
     */* | *\\*)        . "$1" ;;
     *)         . "./$1" ;;
@@ -1354,10 +2630,10 @@ func_resolve_sysroot ()
 # store the result into func_replace_sysroot_result.
 func_replace_sysroot ()
 {
-  case "$lt_sysroot:$1" in
+  case $lt_sysroot:$1 in
   ?*:"$lt_sysroot"*)
     func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
+    func_replace_sysroot_result='='$func_stripname_result
     ;;
   *)
     # Including no sysroot.
@@ -1374,7 +2650,8 @@ func_replace_sysroot ()
 # arg is usually of the form 'gcc ...'
 func_infer_tag ()
 {
-    $opt_debug
+    $debug_cmd
+
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
@@ -1393,7 +2670,7 @@ func_infer_tag ()
        for z in $available_tags; do
          if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
            # Evaluate the configuration.
-           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+           eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
@@ -1418,7 +2695,7 @@ func_infer_tag ()
        # line option must be used.
        if test -z "$tagname"; then
          func_echo "unable to infer tagged configuration"
-         func_fatal_error "specify a tag with \`--tag'"
+         func_fatal_error "specify a tag with '--tag'"
 #      else
 #        func_verbose "using $tagname tagged configuration"
        fi
@@ -1434,15 +2711,15 @@ func_infer_tag ()
 # but don't create it if we're doing a dry run.
 func_write_libtool_object ()
 {
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
+    write_libobj=$1
+    if test yes = "$build_libtool_libs"; then
+      write_lobj=\'$2\'
     else
       write_lobj=none
     fi
 
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
+    if test yes = "$build_old_libs"; then
+      write_oldobj=\'$3\'
     else
       write_oldobj=none
     fi
@@ -1450,7 +2727,7 @@ func_write_libtool_object ()
     $opt_dry_run || {
       cat >${write_libobj}T <<EOF
 # $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -1462,7 +2739,7 @@ pic_object=$write_lobj
 non_pic_object=$write_oldobj
 
 EOF
-      $MV "${write_libobj}T" "${write_libobj}"
+      $MV "${write_libobj}T" "$write_libobj"
     }
 }
 
@@ -1482,8 +2759,9 @@ EOF
 # be empty on error (or when ARG is empty)
 func_convert_core_file_wine_to_w32 ()
 {
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
+  $debug_cmd
+
+  func_convert_core_file_wine_to_w32_result=$1
   if test -n "$1"; then
     # Unfortunately, winepath does not exit with a non-zero error code, so we
     # are forced to check the contents of stdout. On the other hand, if the
@@ -1491,9 +2769,9 @@ func_convert_core_file_wine_to_w32 ()
     # *an error message* to stdout. So we must check for both error code of
     # zero AND non-empty stdout, which explains the odd construction:
     func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
       func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
+        $SED -e "$sed_naive_backslashify"`
     else
       func_convert_core_file_wine_to_w32_result=
     fi
@@ -1514,18 +2792,19 @@ func_convert_core_file_wine_to_w32 ()
 # are convertible, then the result may be empty.
 func_convert_core_path_wine_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
+  func_convert_core_path_wine_to_w32_result=
   if test -n "$1"; then
     oldIFS=$IFS
     IFS=:
     for func_convert_core_path_wine_to_w32_f in $1; do
       IFS=$oldIFS
       func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+      if test -n "$func_convert_core_file_wine_to_w32_result"; then
         if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
         else
           func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
         fi
@@ -1554,7 +2833,8 @@ func_convert_core_path_wine_to_w32 ()
 # environment variable; do not put it in $PATH.
 func_cygpath ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
     func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
     if test "$?" -ne 0; then
@@ -1563,7 +2843,7 @@ func_cygpath ()
     fi
   else
     func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
   fi
 }
 #end: func_cygpath
@@ -1574,10 +2854,11 @@ func_cygpath ()
 # result in func_convert_core_msys_to_w32_result.
 func_convert_core_msys_to_w32 ()
 {
-  $opt_debug
+  $debug_cmd
+
   # awkward: cmd appends spaces to result
   func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
 }
 #end: func_convert_core_msys_to_w32
 
@@ -1588,13 +2869,14 @@ func_convert_core_msys_to_w32 ()
 # func_to_host_file_result to ARG1).
 func_convert_file_check ()
 {
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
+  $debug_cmd
+
+  if test -z "$2" && test -n "$1"; then
     func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
+    func_error "  '$1'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback:
-    func_to_host_file_result="$1"
+    func_to_host_file_result=$1
   fi
 }
 # end func_convert_file_check
@@ -1606,10 +2888,11 @@ func_convert_file_check ()
 # func_to_host_file_result to a simplistic fallback value (see below).
 func_convert_path_check ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$4" && test -n "$3"; then
     func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
+    func_error "  '$3'"
     func_error "Continuing, but uninstalled executables may not work."
     # Fallback.  This is a deliberately simplistic "conversion" and
     # should not be "improved".  See libtool.info.
@@ -1618,7 +2901,7 @@ func_convert_path_check ()
       func_to_host_path_result=`echo "$3" |
         $SED -e "$lt_replace_pathsep_chars"`
     else
-      func_to_host_path_result="$3"
+      func_to_host_path_result=$3
     fi
   fi
 }
@@ -1630,9 +2913,10 @@ func_convert_path_check ()
 # and appending REPL if ORIG matches BACKPAT.
 func_convert_path_front_back_pathsep ()
 {
-  $opt_debug
+  $debug_cmd
+
   case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+  $1 ) func_to_host_path_result=$3$func_to_host_path_result
     ;;
   esac
   case $4 in
@@ -1646,7 +2930,7 @@ func_convert_path_front_back_pathsep ()
 ##################################################
 # $build to $host FILE NAME CONVERSION FUNCTIONS #
 ##################################################
-# invoked via `$to_host_file_cmd ARG'
+# invoked via '$to_host_file_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # Result will be available in $func_to_host_file_result.
@@ -1657,7 +2941,8 @@ func_convert_path_front_back_pathsep ()
 # in func_to_host_file_result.
 func_to_host_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   $to_host_file_cmd "$1"
 }
 # end func_to_host_file
@@ -1669,7 +2954,8 @@ func_to_host_file ()
 # in (the comma separated) LAZY, no conversion takes place.
 func_to_tool_file ()
 {
-  $opt_debug
+  $debug_cmd
+
   case ,$2, in
     *,"$to_tool_file_cmd",*)
       func_to_tool_file_result=$1
@@ -1687,7 +2973,7 @@ func_to_tool_file ()
 # Copy ARG to func_to_host_file_result.
 func_convert_file_noop ()
 {
-  func_to_host_file_result="$1"
+  func_to_host_file_result=$1
 }
 # end func_convert_file_noop
 
@@ -1698,11 +2984,12 @@ func_convert_file_noop ()
 # func_to_host_file_result.
 func_convert_file_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result=$func_convert_core_msys_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1714,8 +3001,9 @@ func_convert_file_msys_to_w32 ()
 # func_to_host_file_result.
 func_convert_file_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
     # LT_CYGPATH in this case.
@@ -1731,11 +3019,12 @@ func_convert_file_cygwin_to_w32 ()
 # and a working winepath. Returns result in func_to_host_file_result.
 func_convert_file_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1747,12 +3036,13 @@ func_convert_file_nix_to_w32 ()
 # Returns result in func_to_host_file_result.
 func_convert_file_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     func_convert_core_msys_to_w32 "$1"
     func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1765,13 +3055,14 @@ func_convert_file_msys_to_cygwin ()
 # in func_to_host_file_result.
 func_convert_file_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_file_result="$1"
+  $debug_cmd
+
+  func_to_host_file_result=$1
   if test -n "$1"; then
     # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
     func_convert_core_file_wine_to_w32 "$1"
     func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
+    func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -1781,7 +3072,7 @@ func_convert_file_nix_to_cygwin ()
 #############################################
 # $build to $host PATH CONVERSION FUNCTIONS #
 #############################################
-# invoked via `$to_host_path_cmd ARG'
+# invoked via '$to_host_path_cmd ARG'
 #
 # In each case, ARG is the path to be converted from $build to $host format.
 # The result will be available in $func_to_host_path_result.
@@ -1805,10 +3096,11 @@ func_convert_file_nix_to_cygwin ()
 to_host_path_cmd=
 func_init_to_host_path_cmd ()
 {
-  $opt_debug
+  $debug_cmd
+
   if test -z "$to_host_path_cmd"; then
     func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+    to_host_path_cmd=func_convert_path_$func_stripname_result
   fi
 }
 
@@ -1818,7 +3110,8 @@ func_init_to_host_path_cmd ()
 # in func_to_host_path_result.
 func_to_host_path ()
 {
-  $opt_debug
+  $debug_cmd
+
   func_init_to_host_path_cmd
   $to_host_path_cmd "$1"
 }
@@ -1829,7 +3122,7 @@ func_to_host_path ()
 # Copy ARG to func_to_host_path_result.
 func_convert_path_noop ()
 {
-  func_to_host_path_result="$1"
+  func_to_host_path_result=$1
 }
 # end func_convert_path_noop
 
@@ -1840,8 +3133,9 @@ func_convert_path_noop ()
 # func_to_host_path_result.
 func_convert_path_msys_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from ARG.  MSYS
     # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
@@ -1849,7 +3143,7 @@ func_convert_path_msys_to_w32 ()
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result=$func_convert_core_msys_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1863,8 +3157,9 @@ func_convert_path_msys_to_w32 ()
 # func_to_host_file_result.
 func_convert_path_cygwin_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
@@ -1883,14 +3178,15 @@ func_convert_path_cygwin_to_w32 ()
 # a working winepath.  Returns result in func_to_host_file_result.
 func_convert_path_nix_to_w32 ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -1904,15 +3200,16 @@ func_convert_path_nix_to_w32 ()
 # Returns result in func_to_host_file_result.
 func_convert_path_msys_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1927,8 +3224,9 @@ func_convert_path_msys_to_cygwin ()
 # func_to_host_file_result.
 func_convert_path_nix_to_cygwin ()
 {
-  $opt_debug
-  func_to_host_path_result="$1"
+  $debug_cmd
+
+  func_to_host_path_result=$1
   if test -n "$1"; then
     # Remove leading and trailing path separator characters from
     # ARG. msys behavior is inconsistent here, cygpath turns them
@@ -1937,7 +3235,7 @@ func_convert_path_nix_to_cygwin ()
     func_to_host_path_tmp1=$func_stripname_result
     func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
     func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
+    func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" : "$1"
@@ -1946,13 +3244,31 @@ func_convert_path_nix_to_cygwin ()
 # end func_convert_path_nix_to_cygwin
 
 
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+  $debug_cmd
+
+  func_dll_def_p_tmp=`$SED -n \
+    -e 's/^[    ]*//' \
+    -e '/^\(;.*\)*$/d' \
+    -e 's/^\(EXPORTS\|LIBRARY\)\([      ].*\)*$/DEF/p' \
+    -e q \
+    "$1"`
+  test DEF = "$func_dll_def_p_tmp"
+}
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
-    $opt_debug
+    $debug_cmd
+
     # Get the compilation command and the source file.
     base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
     suppress_opt=yes
     suppress_output=
     arg_mode=normal
@@ -1965,12 +3281,12 @@ func_mode_compile ()
       case $arg_mode in
       arg  )
        # do not "continue".  Instead, add this to base_compile
-       lastarg="$arg"
+       lastarg=$arg
        arg_mode=normal
        ;;
 
       target )
-       libobj="$arg"
+       libobj=$arg
        arg_mode=normal
        continue
        ;;
@@ -1980,7 +3296,7 @@ func_mode_compile ()
        case $arg in
        -o)
          test -n "$libobj" && \
-           func_fatal_error "you cannot specify \`-o' more than once"
+           func_fatal_error "you cannot specify '-o' more than once"
          arg_mode=target
          continue
          ;;
@@ -2009,12 +3325,12 @@ func_mode_compile ()
          func_stripname '-Wc,' '' "$arg"
          args=$func_stripname_result
          lastarg=
-         save_ifs="$IFS"; IFS=','
+         save_ifs=$IFS; IFS=,
          for arg in $args; do
-           IFS="$save_ifs"
+           IFS=$save_ifs
            func_append_quoted lastarg "$arg"
          done
-         IFS="$save_ifs"
+         IFS=$save_ifs
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
@@ -2027,8 +3343,8 @@ func_mode_compile ()
          # Accept the current argument as the source file.
          # The previous "srcfile" becomes the current argument.
          #
-         lastarg="$srcfile"
-         srcfile="$arg"
+         lastarg=$srcfile
+         srcfile=$arg
          ;;
        esac  #  case $arg
        ;;
@@ -2043,13 +3359,13 @@ func_mode_compile ()
       func_fatal_error "you must specify an argument for -Xcompile"
       ;;
     target)
-      func_fatal_error "you must specify a target with \`-o'"
+      func_fatal_error "you must specify a target with '-o'"
       ;;
     *)
       # Get the name of the library object.
       test -z "$libobj" && {
        func_basename "$srcfile"
-       libobj="$func_basename_result"
+       libobj=$func_basename_result
       }
       ;;
     esac
@@ -2069,7 +3385,7 @@ func_mode_compile ()
     case $libobj in
     *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
     *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      func_fatal_error "cannot determine name of library object from '$libobj'"
       ;;
     esac
 
@@ -2078,8 +3394,8 @@ func_mode_compile ()
     for arg in $later; do
       case $arg in
       -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
+       test yes = "$build_libtool_libs" \
+         || func_fatal_configuration "cannot build a shared library"
        build_old_libs=no
        continue
        ;;
@@ -2105,17 +3421,17 @@ func_mode_compile ()
     func_quote_for_eval "$libobj"
     test "X$libobj" != "X$func_quote_for_eval_result" \
       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'   &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+      && func_warning "libobj name '$libobj' may not contain shell special characters."
     func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
+    objname=$func_basename_result
+    xdir=$func_dirname_result
+    lobj=$xdir$objdir/$objname
 
     test -z "$base_compile" && \
       func_fatal_help "you must specify a compilation command"
 
     # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
+    if test yes = "$build_old_libs"; then
       removelist="$obj $lobj $libobj ${libobj}T"
     else
       removelist="$lobj $libobj ${libobj}T"
@@ -2127,16 +3443,16 @@ func_mode_compile ()
       pic_mode=default
       ;;
     esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
       # non-PIC code in shared libraries is not supported
       pic_mode=default
     fi
 
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
+    if test no = "$compiler_c_o"; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+      lockfile=$output_obj.lock
     else
       output_obj=
       need_locks=no
@@ -2145,12 +3461,12 @@ func_mode_compile ()
 
     # Lock this critical section if it is needed
     # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
+    if test yes = "$need_locks"; then
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
        func_echo "Waiting for $lockfile to be removed"
        sleep 2
       done
-    elif test "$need_locks" = warn; then
+    elif test warn = "$need_locks"; then
       if test -f "$lockfile"; then
        $ECHO "\
 *** ERROR, $lockfile exists and contains:
@@ -2158,7 +3474,7 @@ func_mode_compile ()
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2180,11 +3496,11 @@ compiler."
     qsrcfile=$func_quote_for_eval_result
 
     # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
+    if test yes = "$build_libtool_libs"; then
       # Without this assignment, base_compile gets emptied.
       fbsd_hideous_sh_bug=$base_compile
 
-      if test "$pic_mode" != no; then
+      if test no != "$pic_mode"; then
        command="$base_compile $qsrcfile $pic_flag"
       else
        # Don't build PIC code
@@ -2201,7 +3517,7 @@ compiler."
       func_show_eval_locale "$command" \
           'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
        $ECHO "\
 *** ERROR, $lockfile contains:
@@ -2212,7 +3528,7 @@ $srcfile
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2228,20 +3544,20 @@ compiler."
       fi
 
       # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
+      if test yes = "$suppress_opt"; then
        suppress_output=' >/dev/null 2>&1'
       fi
     fi
 
     # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
+    if test yes = "$build_old_libs"; then
+      if test yes != "$pic_mode"; then
        # Don't build PIC code
        command="$base_compile $qsrcfile$pie_flag"
       else
        command="$base_compile $qsrcfile $pic_flag"
       fi
-      if test "$compiler_c_o" = yes; then
+      if test yes = "$compiler_c_o"; then
        func_append command " -o $obj"
       fi
 
@@ -2250,7 +3566,7 @@ compiler."
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
-      if test "$need_locks" = warn &&
+      if test warn = "$need_locks" &&
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
        $ECHO "\
 *** ERROR, $lockfile contains:
@@ -2261,7 +3577,7 @@ $srcfile
 
 This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
+your compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better
 compiler."
@@ -2281,7 +3597,7 @@ compiler."
       func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 
       # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
+      if test no != "$need_locks"; then
        removelist=$lockfile
         $RM "$lockfile"
       fi
@@ -2291,7 +3607,7 @@ compiler."
 }
 
 $opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
@@ -2311,7 +3627,7 @@ func_mode_help ()
 Remove files from the build directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, object or program, all the files associated
@@ -2330,16 +3646,16 @@ This mode accepts the following additional options:
   -no-suppress      do not suppress compiler output for multiple passes
   -prefer-pic       try to build PIC objects only
   -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
+  -shared           do not build a '.o' file suitable for static linking
+  -static           only build a '.o' file suitable for static linking
   -Wc,FLAG          pass FLAG directly to the compiler
 
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
 from the given SOURCEFILE.
 
 The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
         ;;
 
       execute)
@@ -2352,7 +3668,7 @@ This mode accepts the following additional options:
 
   -dlopen FILE      add the directory containing FILE to the library path
 
-This mode sets the library path environment variable according to \`-dlopen'
+This mode sets the library path environment variable according to '-dlopen'
 flags.
 
 If any of the ARGS are libtool executable wrappers, then they are translated
@@ -2371,7 +3687,7 @@ Complete the installation of libtool libraries.
 Each LIBDIR is a directory that contains libtool libraries.
 
 The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
+the '--dry-run' option if you just want to see what would be executed."
         ;;
 
       install)
@@ -2381,7 +3697,7 @@ the \`--dry-run' option if you just want to see what would be executed."
 Install executables or libraries.
 
 INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
+either the 'install' or 'cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
@@ -2407,7 +3723,7 @@ The following components of LINK-COMMAND are treated specially:
   -avoid-version    do not add a version suffix if possible
   -bindir BINDIR    specify path to binaries directory (for systems where
                     libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -export-symbols SYMFILE
@@ -2421,7 +3737,8 @@ The following components of LINK-COMMAND are treated specially:
   -no-install       link a not-installable executable
   -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -objectlist FILE  use a list of object files found in FILE to specify objects
+  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
   -precious-files-regex REGEX
                     don't remove output files matching REGEX
   -release RELEASE  specify package release information
@@ -2441,20 +3758,20 @@ The following components of LINK-COMMAND are treated specially:
   -Xlinker FLAG     pass linker-specific FLAG directly to the linker
   -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
-All other options (arguments beginning with \`-') are ignored.
+All other options (arguments beginning with '-') are ignored.
 
-Every other argument is treated as a filename.  Files ending in \`.la' are
+Every other argument is treated as a filename.  Files ending in '.la' are
 treated as uninstalled libtool libraries, other files are standard or library
 object files.
 
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
 required, except when creating a convenience library.
 
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
 
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
 is created, otherwise an executable program is created."
         ;;
 
@@ -2465,7 +3782,7 @@ is created, otherwise an executable program is created."
 Remove libraries from an installation directory.
 
 RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.
 
 If FILE is a libtool library, all the files associated with it are deleted.
@@ -2473,17 +3790,17 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
+        func_fatal_help "invalid operation mode '$opt_mode'"
         ;;
     esac
 
     echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
+    $ECHO "Try '$progname --help' for more information about other modes."
 }
 
 # Now that we've collected a possible --mode arg, show help if necessary
 if $opt_help; then
-  if test "$opt_help" = :; then
+  if test : = "$opt_help"; then
     func_mode_help
   else
     {
@@ -2491,7 +3808,7 @@ if $opt_help; then
       for opt_mode in compile link execute install finish uninstall clean; do
        func_mode_help
       done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
     {
       func_help noexit
       for opt_mode in compile link execute install finish uninstall clean; do
@@ -2499,7 +3816,7 @@ if $opt_help; then
        func_mode_help
       done
     } |
-    sed '1d
+    $SED '1d
       /^When reporting/,/^Report/{
        H
        d
@@ -2516,16 +3833,17 @@ fi
 # func_mode_execute arg...
 func_mode_execute ()
 {
-    $opt_debug
+    $debug_cmd
+
     # The first argument is the command name.
-    cmd="$nonopt"
+    cmd=$nonopt
     test -z "$cmd" && \
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
     for file in $opt_dlopen; do
       test -f "$file" \
-       || func_fatal_help "\`$file' is not a file"
+       || func_fatal_help "'$file' is not a file"
 
       dir=
       case $file in
@@ -2535,7 +3853,7 @@ func_mode_execute ()
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
-         || func_fatal_help "\`$lib' is not a valid libtool archive"
+         || func_fatal_help "'$lib' is not a valid libtool archive"
 
        # Read the libtool library.
        dlname=
@@ -2546,18 +3864,18 @@ func_mode_execute ()
        if test -z "$dlname"; then
          # Warn if it was a shared library.
          test -n "$library_names" && \
-           func_warning "\`$file' was not linked with \`-export-dynamic'"
+           func_warning "'$file' was not linked with '-export-dynamic'"
          continue
        fi
 
        func_dirname "$file" "" "."
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
 
        if test -f "$dir/$objdir/$dlname"; then
          func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
-           func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+           func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
          fi
        fi
        ;;
@@ -2565,18 +3883,18 @@ func_mode_execute ()
       *.lo)
        # Just add the directory containing the .lo file.
        func_dirname "$file" "" "."
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
        ;;
 
       *)
-       func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+       func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
        continue
        ;;
       esac
 
       # Get the absolute pathname.
       absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
+      test -n "$absdir" && dir=$absdir
 
       # Now add the directory to shlibpath_var.
       if eval "test -z \"\$$shlibpath_var\""; then
@@ -2588,7 +3906,7 @@ func_mode_execute ()
 
     # This variable tells wrapper scripts just to set shlibpath_var
     # rather than running their programs.
-    libtool_execute_magic="$magic"
+    libtool_execute_magic=$magic
 
     # Check if any of the arguments is a wrapper script.
     args=
@@ -2601,12 +3919,12 @@ func_mode_execute ()
        if func_ltwrapper_script_p "$file"; then
          func_source "$file"
          # Transform arg to wrapped name.
-         file="$progdir/$program"
+         file=$progdir/$program
        elif func_ltwrapper_executable_p "$file"; then
          func_ltwrapper_scriptname "$file"
          func_source "$func_ltwrapper_scriptname_result"
          # Transform arg to wrapped name.
-         file="$progdir/$program"
+         file=$progdir/$program
        fi
        ;;
       esac
@@ -2614,7 +3932,15 @@ func_mode_execute ()
       func_append_quoted args "$file"
     done
 
-    if test "X$opt_dry_run" = Xfalse; then
+    if $opt_dry_run; then
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+       echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    else
       if test -n "$shlibpath_var"; then
        # Export the shlibpath_var.
        eval "export $shlibpath_var"
@@ -2631,25 +3957,18 @@ func_mode_execute ()
       done
 
       # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-       echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
+      exec_cmd=\$cmd$args
     fi
 }
 
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
-    $opt_debug
+    $debug_cmd
+
     libs=
     libdirs=
     admincmds=
@@ -2663,11 +3982,11 @@ func_mode_finish ()
        if func_lalib_unsafe_p "$opt"; then
          func_append libs " $opt"
        else
-         func_warning "\`$opt' is not a valid libtool archive"
+         func_warning "'$opt' is not a valid libtool archive"
        fi
 
       else
-       func_fatal_error "invalid argument \`$opt'"
+       func_fatal_error "invalid argument '$opt'"
       fi
     done
 
@@ -2682,12 +4001,12 @@ func_mode_finish ()
       # Remove sysroot references
       if $opt_dry_run; then
         for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
         done
       else
         tmpdir=`func_mktempdir`
         for lib in $libs; do
-         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+         $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
            > $tmpdir/tmp-la
          mv -f $tmpdir/tmp-la $lib
        done
@@ -2712,7 +4031,7 @@ func_mode_finish ()
     fi
 
     # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
+    $opt_quiet && exit $EXIT_SUCCESS
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       echo "----------------------------------------------------------------------"
@@ -2723,27 +4042,27 @@ func_mode_finish ()
       echo
       echo "If you ever happen to want to link against installed libraries"
       echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
       echo "flag during linking and do at least one of the following:"
       if test -n "$shlibpath_var"; then
-       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
        echo "     during execution"
       fi
       if test -n "$runpath_var"; then
-       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "   - add LIBDIR to the '$runpath_var' environment variable"
        echo "     during linking"
       fi
       if test -n "$hardcode_libdir_flag_spec"; then
        libdir=LIBDIR
        eval flag=\"$hardcode_libdir_flag_spec\"
 
-       $ECHO "   - use the \`$flag' linker flag"
+       $ECHO "   - use the '$flag' linker flag"
       fi
       if test -n "$admincmds"; then
        $ECHO "   - have your system administrator run these commands:$admincmds"
       fi
       if test -f /etc/ld.so.conf; then
-       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+       echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
       fi
       echo
 
@@ -2762,18 +4081,20 @@ func_mode_finish ()
     exit $EXIT_SUCCESS
 }
 
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
 func_mode_install ()
 {
-    $opt_debug
+    $debug_cmd
+
     # There may be an optional sh(1) argument at the beginning of
     # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
        # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
+       case $nonopt in *shtool*) :;; *) false;; esac
+    then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -2800,7 +4121,7 @@ func_mode_install ()
     opts=
     prev=
     install_type=
-    isdir=no
+    isdir=false
     stripme=
     no_mode=:
     for arg
@@ -2813,7 +4134,7 @@ func_mode_install ()
       fi
 
       case $arg in
-      -d) isdir=yes ;;
+      -d) isdir=: ;;
       -f)
        if $install_cp; then :; else
          prev=$arg
@@ -2831,7 +4152,7 @@ func_mode_install ()
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
-         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+         if test X-m = "X$prev" && test -n "$install_override_mode"; then
            arg2=$install_override_mode
            no_mode=false
          fi
@@ -2856,7 +4177,7 @@ func_mode_install ()
       func_fatal_help "you must specify an install program"
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
+      func_fatal_help "the '$prev' option requires an argument"
 
     if test -n "$install_override_mode" && $no_mode; then
       if $install_cp; then :; else
@@ -2878,19 +4199,19 @@ func_mode_install ()
     dest=$func_stripname_result
 
     # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
+    test -d "$dest" && isdir=:
+    if $isdir; then
+      destdir=$dest
       destname=
     else
       func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
+      destdir=$func_dirname_result
+      destname=$func_basename_result
 
       # Not a directory, so check to see that there is only one file specified.
       set dummy $files; shift
       test "$#" -gt 1 && \
-       func_fatal_help "\`$dest' is not a directory"
+       func_fatal_help "'$dest' is not a directory"
     fi
     case $destdir in
     [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -2899,7 +4220,7 @@ func_mode_install ()
        case $file in
        *.lo) ;;
        *)
-         func_fatal_help "\`$destdir' must be an absolute directory name"
+         func_fatal_help "'$destdir' must be an absolute directory name"
          ;;
        esac
       done
@@ -2908,7 +4229,7 @@ func_mode_install ()
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     staticlibs=
     future_libdirs=
@@ -2928,7 +4249,7 @@ func_mode_install ()
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
-         || func_fatal_help "\`$file' is not a valid libtool archive"
+         || func_fatal_help "'$file' is not a valid libtool archive"
 
        library_names=
        old_library=
@@ -2950,7 +4271,7 @@ func_mode_install ()
        fi
 
        func_dirname "$file" "/" ""
-       dir="$func_dirname_result"
+       dir=$func_dirname_result
        func_append dir "$objdir"
 
        if test -n "$relink_command"; then
@@ -2964,7 +4285,7 @@ func_mode_install ()
          # are installed into $libdir/../bin (currently, that works fine)
          # but it's something to keep an eye on.
          test "$inst_prefix_dir" = "$destdir" && \
-           func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+           func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
 
          if test -n "$inst_prefix_dir"; then
            # Stick the inst_prefix_dir data into the link command.
@@ -2973,29 +4294,36 @@ func_mode_install ()
            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
 
-         func_warning "relinking \`$file'"
+         func_warning "relinking '$file'"
          func_show_eval "$relink_command" \
-           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+           'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
        fi
 
        # See the names of the shared library.
        set dummy $library_names; shift
        if test -n "$1"; then
-         realname="$1"
+         realname=$1
          shift
 
-         srcname="$realname"
-         test -n "$relink_command" && srcname="$realname"T
+         srcname=$realname
+         test -n "$relink_command" && srcname=${realname}T
 
          # Install the shared library and build the symlinks.
          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
              'exit $?'
-         tstripme="$stripme"
+         tstripme=$stripme
          case $host_os in
          cygwin* | mingw* | pw32* | cegcc*)
            case $realname in
            *.dll.a)
-             tstripme=""
+             tstripme=
+             ;;
+           esac
+           ;;
+         os2*)
+           case $realname in
+           *_dll.a)
+             tstripme=
              ;;
            esac
            ;;
@@ -3006,7 +4334,7 @@ func_mode_install ()
 
          if test "$#" -gt 0; then
            # Delete the old symlinks, and create new ones.
-           # Try `ln -sf' first, because the `ln' binary might depend on
+           # Try 'ln -sf' first, because the 'ln' binary might depend on
            # the symlink we replace!  Solaris /bin/ln does not understand -f,
            # so we also need to try rm && ln -s.
            for linkname
@@ -3017,14 +4345,14 @@ func_mode_install ()
          fi
 
          # Do each command in the postinstall commands.
-         lib="$destdir/$realname"
+         lib=$destdir/$realname
          func_execute_cmds "$postinstall_cmds" 'exit $?'
        fi
 
        # Install the pseudo-library for information purposes.
        func_basename "$file"
-       name="$func_basename_result"
-       instname="$dir/$name"i
+       name=$func_basename_result
+       instname=$dir/${name}i
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
@@ -3036,11 +4364,11 @@ func_mode_install ()
 
        # Figure out destination file name, if it wasn't already specified.
        if test -n "$destname"; then
-         destfile="$destdir/$destname"
+         destfile=$destdir/$destname
        else
          func_basename "$file"
-         destfile="$func_basename_result"
-         destfile="$destdir/$destfile"
+         destfile=$func_basename_result
+         destfile=$destdir/$destfile
        fi
 
        # Deduce the name of the destination old-style object file.
@@ -3050,11 +4378,11 @@ func_mode_install ()
          staticdest=$func_lo2o_result
          ;;
        *.$objext)
-         staticdest="$destfile"
+         staticdest=$destfile
          destfile=
          ;;
        *)
-         func_fatal_help "cannot copy a libtool object to \`$destfile'"
+         func_fatal_help "cannot copy a libtool object to '$destfile'"
          ;;
        esac
 
@@ -3063,7 +4391,7 @@ func_mode_install ()
          func_show_eval "$install_prog $file $destfile" 'exit $?'
 
        # Install the old object if enabled.
-       if test "$build_old_libs" = yes; then
+       if test yes = "$build_old_libs"; then
          # Deduce the name of the old-style object file.
          func_lo2o "$file"
          staticobj=$func_lo2o_result
@@ -3075,23 +4403,23 @@ func_mode_install ()
       *)
        # Figure out destination file name, if it wasn't already specified.
        if test -n "$destname"; then
-         destfile="$destdir/$destname"
+         destfile=$destdir/$destname
        else
          func_basename "$file"
-         destfile="$func_basename_result"
-         destfile="$destdir/$destfile"
+         destfile=$func_basename_result
+         destfile=$destdir/$destfile
        fi
 
        # If the file is missing, and there is a .exe on the end, strip it
        # because it is most likely a libtool script we actually want to
        # install
-       stripped_ext=""
+       stripped_ext=
        case $file in
          *.exe)
            if test ! -f "$file"; then
              func_stripname '' '.exe' "$file"
              file=$func_stripname_result
-             stripped_ext=".exe"
+             stripped_ext=.exe
            fi
            ;;
        esac
@@ -3119,19 +4447,19 @@ func_mode_install ()
 
          # Check the variables that should have been set.
          test -z "$generated_by_libtool_version" && \
-           func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+           func_fatal_error "invalid libtool wrapper script '$wrapper'"
 
-         finalize=yes
+         finalize=:
          for lib in $notinst_deplibs; do
            # Check to see that each library is installed.
            libdir=
            if test -f "$lib"; then
              func_source "$lib"
            fi
-           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
            if test -n "$libdir" && test ! -f "$libfile"; then
-             func_warning "\`$lib' has not been installed in \`$libdir'"
-             finalize=no
+             func_warning "'$lib' has not been installed in '$libdir'"
+             finalize=false
            fi
          done
 
@@ -3139,29 +4467,29 @@ func_mode_install ()
          func_source "$wrapper"
 
          outputname=
-         if test "$fast_install" = no && test -n "$relink_command"; then
+         if test no = "$fast_install" && test -n "$relink_command"; then
            $opt_dry_run || {
-             if test "$finalize" = yes; then
+             if $finalize; then
                tmpdir=`func_mktempdir`
                func_basename "$file$stripped_ext"
-               file="$func_basename_result"
-               outputname="$tmpdir/$file"
+               file=$func_basename_result
+               outputname=$tmpdir/$file
                # Replace the output file specification.
                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
-               $opt_silent || {
+               $opt_quiet || {
                  func_quote_for_expand "$relink_command"
                  eval "func_echo $func_quote_for_expand_result"
                }
                if eval "$relink_command"; then :
                  else
-                 func_error "error: relink \`$file' with the above command before installing it"
+                 func_error "error: relink '$file' with the above command before installing it"
                  $opt_dry_run || ${RM}r "$tmpdir"
                  continue
                fi
-               file="$outputname"
+               file=$outputname
              else
-               func_warning "cannot relink \`$file'"
+               func_warning "cannot relink '$file'"
              fi
            }
          else
@@ -3198,10 +4526,10 @@ func_mode_install ()
 
     for file in $staticlibs; do
       func_basename "$file"
-      name="$func_basename_result"
+      name=$func_basename_result
 
       # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
+      oldlib=$destdir/$name
       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
       tool_oldlib=$func_to_tool_file_result
 
@@ -3216,18 +4544,18 @@ func_mode_install ()
     done
 
     test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
+      func_warning "remember to run '$progname --finish$future_libdirs'"
 
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
     else
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -3235,16 +4563,17 @@ test "$opt_mode" = install && func_mode_install ${1+"$@"}
 # a dlpreopen symbol table.
 func_generate_dlsyms ()
 {
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    $debug_cmd
+
+    my_outputname=$1
+    my_originator=$2
+    my_pic_p=${3-false}
+    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
     my_dlsyms=
 
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-       my_dlsyms="${my_outputname}S.c"
+       my_dlsyms=${my_outputname}S.c
       else
        func_error "not configured to extract global symbols from dlpreopened files"
       fi
@@ -3255,7 +4584,7 @@ func_generate_dlsyms ()
       "") ;;
       *.c)
        # Discover the nlist of each of the dlfiles.
-       nlist="$output_objdir/${my_outputname}.nm"
+       nlist=$output_objdir/$my_outputname.nm
 
        func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 
@@ -3263,34 +4592,36 @@ func_generate_dlsyms ()
        func_verbose "creating $output_objdir/$my_dlsyms"
 
        $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
 
 #ifdef __cplusplus
 extern \"C\" {
 #endif
 
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 #endif
 
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
 # define LT_DLSYM_CONST const
 #endif
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* External symbol declarations for the compiler. */\
 "
 
-       if test "$dlself" = yes; then
-         func_verbose "generating symbol list for \`$output'"
+       if test yes = "$dlself"; then
+         func_verbose "generating symbol list for '$output'"
 
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
@@ -3298,7 +4629,7 @@ extern \"C\" {
          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
            func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
            $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
@@ -3318,10 +4649,10 @@ extern \"C\" {
 
          # Prepare the list of exported symbols
          if test -z "$export_symbols"; then
-           export_symbols="$output_objdir/$outputname.exp"
+           export_symbols=$output_objdir/$outputname.exp
            $opt_dry_run || {
              $RM $export_symbols
-             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
              case $host in
              *cygwin* | *mingw* | *cegcc* )
                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
@@ -3331,7 +4662,7 @@ extern \"C\" {
            }
          else
            $opt_dry_run || {
-             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
@@ -3345,22 +4676,22 @@ extern \"C\" {
        fi
 
        for dlprefile in $dlprefiles; do
-         func_verbose "extracting global C symbols from \`$dlprefile'"
+         func_verbose "extracting global C symbols from '$dlprefile'"
          func_basename "$dlprefile"
-         name="$func_basename_result"
+         name=$func_basename_result
           case $host in
            *cygwin* | *mingw* | *cegcc* )
              # if an import library, we need to obtain dlname
              if func_win32_import_lib_p "$dlprefile"; then
                func_tr_sh "$dlprefile"
                eval "curr_lafile=\$libfile_$func_tr_sh_result"
-               dlprefile_dlbasename=""
+               dlprefile_dlbasename=
                if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
                  # Use subshell, to avoid clobbering current variable values
                  dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-                 if test -n "$dlprefile_dlname" ; then
+                 if test -n "$dlprefile_dlname"; then
                    func_basename "$dlprefile_dlname"
-                   dlprefile_dlbasename="$func_basename_result"
+                   dlprefile_dlbasename=$func_basename_result
                  else
                    # no lafile. user explicitly requested -dlpreopen <import library>.
                    $sharedlib_from_linklib_cmd "$dlprefile"
@@ -3368,7 +4699,7 @@ extern \"C\" {
                  fi
                fi
                $opt_dry_run || {
-                 if test -n "$dlprefile_dlbasename" ; then
+                 if test -n "$dlprefile_dlbasename"; then
                    eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
                  else
                    func_warning "Could not compute DLL name from $name"
@@ -3424,6 +4755,11 @@ extern \"C\" {
            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
 
+         func_show_eval '$RM "${nlist}I"'
+         if test -n "$global_symbol_to_import"; then
+           eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+         fi
+
          echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
@@ -3432,11 +4768,30 @@ typedef struct {
   void *address;
 } lt_dlsymlist;
 extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+         if test -s "$nlist"I; then
+           echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+  for (; symbol->name; ++symbol)
+    {"
+           $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+           echo >> "$output_objdir/$my_dlsyms" "\
+    }
+}"
+         fi
+         echo >> "$output_objdir/$my_dlsyms" "\
 LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
+{ {\"$my_originator\", (void *) 0},"
+
+         if test -s "$nlist"I; then
+           echo >> "$output_objdir/$my_dlsyms" "\
+  {\"@INIT@\", (void *) &lt_syminit},"
+         fi
 
          case $need_lib_prefix in
          no)
@@ -3478,9 +4833,7 @@ static const void *lt_preloaded_setup() {
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
          *)
-           if test "X$my_pic_p" != Xno; then
-             pic_flag_for_symtable=" $pic_flag"
-           fi
+           $my_pic_p && pic_flag_for_symtable=" $pic_flag"
            ;;
          esac
          ;;
@@ -3497,10 +4850,10 @@ static const void *lt_preloaded_setup() {
        func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
 
        # Clean up the generated files.
-       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
 
        # Transform the symbol file into the correct name.
-       symfileobj="$output_objdir/${my_outputname}S.$objext"
+       symfileobj=$output_objdir/${my_outputname}S.$objext
        case $host in
        *cygwin* | *mingw* | *cegcc* )
          if test -f "$output_objdir/$my_outputname.def"; then
@@ -3518,7 +4871,7 @@ static const void *lt_preloaded_setup() {
        esac
        ;;
       *)
-       func_fatal_error "unknown suffix for \`$my_dlsyms'"
+       func_fatal_error "unknown suffix for '$my_dlsyms'"
        ;;
       esac
     else
@@ -3532,6 +4885,32 @@ static const void *lt_preloaded_setup() {
     fi
 }
 
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -3541,8 +4920,9 @@ static const void *lt_preloaded_setup() {
 # Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
-  $opt_debug
-  win32_libid_type="unknown"
+  $debug_cmd
+
+  win32_libid_type=unknown
   win32_fileres=`file -L $1 2>/dev/null`
   case $win32_fileres in
   *ar\ archive\ import\ library*) # definitely import
@@ -3552,16 +4932,29 @@ func_win32_libid ()
     # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
        $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-       $SED -n -e '
+      case $nm_interface in
+      "MS dumpbin")
+       if func_cygming_ms_implib_p "$1" ||
+          func_cygming_gnu_implib_p "$1"
+       then
+         win32_nmres=import
+       else
+         win32_nmres=
+       fi
+       ;;
+      *)
+       func_to_tool_file "$1" func_convert_file_msys_to_w32
+       win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+         $SED -n -e '
            1,100{
                / I /{
-                   s,.*,import,
+                   s|.*|import|
                    p
                    q
                }
            }'`
+       ;;
+      esac
       case $win32_nmres in
       import*)  win32_libid_type="x86 archive import";;
       *)        win32_libid_type="x86 archive static";;
@@ -3593,7 +4986,8 @@ func_win32_libid ()
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib ()
 {
-  $opt_debug
+  $debug_cmd
+
   sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
 }
 
@@ -3610,7 +5004,8 @@ func_cygming_dll_for_implib ()
 # specified import library.
 func_cygming_dll_for_implib_fallback_core ()
 {
-  $opt_debug
+  $debug_cmd
+
   match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
   $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
     $SED '/^Contents of section '"$match_literal"':/{
@@ -3646,8 +5041,8 @@ func_cygming_dll_for_implib_fallback_core ()
       /./p' |
     # we now have a list, one entry per line, of the stringified
     # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
+    # archive that possess that section. Heuristic: eliminate
+    # all those that have a first or second character that is
     # a '.' (that is, objdump's representation of an unprintable
     # character.) This should work for all archives with less than
     # 0x302f exports -- but will fail for DLLs whose name actually
@@ -3658,30 +5053,6 @@ func_cygming_dll_for_implib_fallback_core ()
     $SED -e '/^\./d;/^.\./d;q'
 }
 
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
-
 # func_cygming_dll_for_implib_fallback ARG
 # Platform-specific function to extract the
 # name of the DLL associated with the specified
@@ -3695,16 +5066,17 @@ func_cygming_ms_implib_p ()
 #    $sharedlib_from_linklib_result
 func_cygming_dll_for_implib_fallback ()
 {
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
+  $debug_cmd
+
+  if func_cygming_gnu_implib_p "$1"; then
     # binutils import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
+  elif func_cygming_ms_implib_p "$1"; then
     # ms-generated import library
     sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
   else
     # unknown
-    sharedlib_from_linklib_result=""
+    sharedlib_from_linklib_result=
   fi
 }
 
@@ -3712,10 +5084,11 @@ func_cygming_dll_for_implib_fallback ()
 # func_extract_an_archive dir oldlib
 func_extract_an_archive ()
 {
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
+    $debug_cmd
+
+    f_ex_an_ar_dir=$1; shift
+    f_ex_an_ar_oldlib=$1
+    if test yes = "$lock_old_archive_extraction"; then
       lockfile=$f_ex_an_ar_oldlib.lock
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
        func_echo "Waiting for $lockfile to be removed"
@@ -3724,7 +5097,7 @@ func_extract_an_archive ()
     fi
     func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
                   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
+    if test yes = "$lock_old_archive_extraction"; then
       $opt_dry_run || rm -f "$lockfile"
     fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
@@ -3738,22 +5111,23 @@ func_extract_an_archive ()
 # func_extract_archives gentop oldlib ...
 func_extract_archives ()
 {
-    $opt_debug
-    my_gentop="$1"; shift
+    $debug_cmd
+
+    my_gentop=$1; shift
     my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
+    my_oldobjs=
+    my_xlib=
+    my_xabs=
+    my_xdir=
 
     for my_xlib in $my_oldlibs; do
       # Extract the objects.
       case $my_xlib in
-       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+       [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
        *) my_xabs=`pwd`"/$my_xlib" ;;
       esac
       func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
+      my_xlib=$func_basename_result
       my_xlib_u=$my_xlib
       while :; do
         case " $extracted_archives " in
@@ -3765,7 +5139,7 @@ func_extract_archives ()
        esac
       done
       extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
+      my_xdir=$my_gentop/$my_xlib_u
 
       func_mkdir_p "$my_xdir"
 
@@ -3778,22 +5152,23 @@ func_extract_archives ()
          cd $my_xdir || exit $?
          darwin_archive=$my_xabs
          darwin_curdir=`pwd`
-         darwin_base_archive=`basename "$darwin_archive"`
+         func_basename "$darwin_archive"
+         darwin_base_archive=$func_basename_result
          darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
          if test -n "$darwin_arches"; then
            darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
            darwin_arch=
            func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-           for darwin_arch in  $darwin_arches ; do
-             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+           for darwin_arch in  $darwin_arches; do
+             func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+             $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+             cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+             func_extract_an_archive "`pwd`" "$darwin_base_archive"
              cd "$darwin_curdir"
-             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+             $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
            done # $darwin_arches
             ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
@@ -3815,7 +5190,7 @@ func_extract_archives ()
       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
-    func_extract_archives_result="$my_oldobjs"
+    func_extract_archives_result=$my_oldobjs
 }
 
 
@@ -3830,7 +5205,7 @@ func_extract_archives ()
 #
 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 # variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
+# will assume that the directory where it is stored is
 # the $objdir directory.  This is a cygwin/mingw-specific
 # behavior.
 func_emit_wrapper ()
@@ -3841,7 +5216,7 @@ func_emit_wrapper ()
 #! $SHELL
 
 # $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # The $output program cannot be directly executed until all the libtool
 # libraries that it depends on are installed.
@@ -3898,9 +5273,9 @@ _LTECHO_EOF'
 
 # Very basic option parsing. These options are (a) specific to
 # the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
+# /script/ and the wrapper /executable/ that is used only on
 # windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
+# (application programs are unlikely to have options that match
 # this pattern).
 #
 # There are only two supported options: --lt-debug and
@@ -3933,7 +5308,7 @@ func_parse_lt_options ()
 
   # Print the debug banner immediately:
   if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
   fi
 }
 
@@ -3944,7 +5319,7 @@ func_lt_dump_args ()
   lt_dump_args_N=1;
   for lt_arg
   do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
     lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
   done
 }
@@ -3958,7 +5333,7 @@ func_exec_program_core ()
   *-*-mingw | *-*-os2* | *-cegcc*)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
@@ -3968,7 +5343,7 @@ func_exec_program_core ()
   *)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir/\$program\" \${1+\"\$@\"}
@@ -4043,13 +5418,13 @@ func_exec_program ()
   test -n \"\$absdir\" && thisdir=\"\$absdir\"
 "
 
-       if test "$fast_install" = yes; then
+       if test yes = "$fast_install"; then
          $ECHO "\
   program=lt-'$outputname'$exeext
   progdir=\"\$thisdir/$objdir\"
 
   if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
     file=\"\$\$-\$program\"
@@ -4066,7 +5441,7 @@ func_exec_program ()
     if test -n \"\$relink_command\"; then
       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
       else
-       $ECHO \"\$relink_command_output\" >&2
+       \$ECHO \"\$relink_command_output\" >&2
        $RM \"\$progdir/\$file\"
        exit 1
       fi
@@ -4101,7 +5476,7 @@ func_exec_program ()
        fi
 
        # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+       if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
     # Add our own library path to $shlibpath_var
     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
@@ -4121,7 +5496,7 @@ func_exec_program ()
     fi
   else
     # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
     \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
@@ -4140,7 +5515,7 @@ func_emit_cwrapperexe_src ()
        cat <<EOF
 
 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 
    The $output program cannot be directly executed until all the libtool
    libraries that it depends on are installed.
@@ -4175,47 +5550,45 @@ EOF
 #include <fcntl.h>
 #include <sys/stat.h>
 
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
 /* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
+#if defined __MINGW32__
 # ifdef __STRICT_ANSI__
 int _putenv (const char *);
 # endif
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # ifdef __STRICT_ANSI__
 char *realpath (const char *, char *);
 int putenv (char *);
 int setenv (const char *, const char *, int);
 # endif
-/* #elif defined (other platforms) ... */
+/* #elif defined other_platform || defined ... */
 #endif
 
 /* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
+#if defined _MSC_VER
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
+#elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
-#elif defined(__CYGWIN__)
+#elif defined __CYGWIN__
 # define HAVE_SETENV
 # define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
+/* #elif defined other platforms ... */
 #endif
 
-#if defined(PATH_MAX)
+#if defined PATH_MAX
 # define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
+#elif defined MAXPATHLEN
 # define LT_PATHMAX MAXPATHLEN
 #else
 # define LT_PATHMAX 1024
@@ -4234,8 +5607,8 @@ int setenv (const char *, const char *, int);
 # define PATH_SEPARATOR ':'
 #endif
 
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+  defined __OS2__
 # define HAVE_DOS_BASED_FILE_SYSTEM
 # define FOPEN_WB "wb"
 # ifndef DIR_SEPARATOR_2
@@ -4268,10 +5641,10 @@ int setenv (const char *, const char *, int);
 
 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 #define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
+  if (stale) { free (stale); stale = 0; } \
 } while (0)
 
-#if defined(LT_DEBUGWRAPPER)
+#if defined LT_DEBUGWRAPPER
 static int lt_debug = 1;
 #else
 static int lt_debug = 0;
@@ -4300,11 +5673,16 @@ void lt_dump_script (FILE *f);
 EOF
 
            cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
-           if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+           if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
               func_to_host_path "$temp_rpath"
              cat <<EOF
 const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
@@ -4328,7 +5706,7 @@ const char * EXE_PATH_VALUE   = "";
 EOF
            fi
 
-           if test "$fast_install" = yes; then
+           if test yes = "$fast_install"; then
              cat <<EOF
 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 EOF
@@ -4357,12 +5735,12 @@ main (int argc, char *argv[])
   char *actual_cwrapper_name;
   char *target_name;
   char *lt_argv_zero;
-  intptr_t rval = 127;
+  int rval = 127;
 
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
+  newargz = XMALLOC (char *, (size_t) argc + 1);
 
   /* very simple arg parsing; don't want to rely on getopt
    * also, copy all non cwrapper options to newargz, except
@@ -4371,10 +5749,10 @@ main (int argc, char *argv[])
   newargc=0;
   for (i = 1; i < argc; i++)
     {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
+      if (STREQ (argv[i], dumpscript_opt))
        {
 EOF
-           case "$host" in
+           case $host in
              *mingw* | *cygwin* )
                # make stdout use "unix" line endings
                echo "          setmode(1,_O_BINARY);"
@@ -4385,12 +5763,12 @@ EOF
          lt_dump_script (stdout);
          return 0;
        }
-      if (strcmp (argv[i], debug_opt) == 0)
+      if (STREQ (argv[i], debug_opt))
        {
           lt_debug = 1;
           continue;
        }
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+      if (STREQ (argv[i], ltwrapper_option_prefix))
         {
           /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
              namespace, but it is not one of the ones we know about and
@@ -4413,7 +5791,7 @@ EOF
 EOF
            cat <<EOF
   /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
 EOF
            cat <<"EOF"
   lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
@@ -4524,7 +5902,7 @@ EOF
                cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
   newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
@@ -4569,7 +5947,7 @@ base_name (const char *name)
 {
   const char *base;
 
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   /* Skip over the disk name in MSDOS pathnames. */
   if (isalpha ((unsigned char) name[0]) && name[1] == ':')
     name += 2;
@@ -4628,7 +6006,7 @@ find_executable (const char *wrapper)
   const char *p_next;
   /* static buffer for getcwd */
   char tmp[LT_PATHMAX + 1];
-  int tmp_len;
+  size_t tmp_len;
   char *concat_name;
 
   lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
@@ -4638,7 +6016,7 @@ find_executable (const char *wrapper)
     return NULL;
 
   /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
   if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
     {
       concat_name = xstrdup (wrapper);
@@ -4656,7 +6034,7 @@ find_executable (const char *wrapper)
            return concat_name;
          XFREE (concat_name);
        }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
     }
 #endif
 
@@ -4679,7 +6057,7 @@ find_executable (const char *wrapper)
              for (q = p; *q; q++)
                if (IS_PATH_SEPARATOR (*q))
                  break;
-             p_len = q - p;
+             p_len = (size_t) (q - p);
              p_next = (*q == '\0' ? q : q + 1);
              if (p_len == 0)
                {
@@ -4798,7 +6176,7 @@ strendzap (char *str, const char *pat)
   if (patlen <= len)
     {
       str += len - patlen;
-      if (strcmp (str, pat) == 0)
+      if (STREQ (str, pat))
        *str = '\0';
     }
   return str;
@@ -4863,7 +6241,7 @@ lt_setenv (const char *name, const char *value)
     char *str = xstrdup (value);
     setenv (name, str, 1);
 #else
-    int len = strlen (name) + 1 + strlen (value) + 1;
+    size_t len = strlen (name) + 1 + strlen (value) + 1;
     char *str = XMALLOC (char, len);
     sprintf (str, "%s=%s", name, value);
     if (putenv (str) != EXIT_SUCCESS)
@@ -4880,8 +6258,8 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   char *new_value;
   if (orig_value && *orig_value)
     {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
+      size_t orig_value_len = strlen (orig_value);
+      size_t add_len = strlen (add);
       new_value = XMALLOC (char, add_len + orig_value_len + 1);
       if (to_end)
         {
@@ -4912,10 +6290,10 @@ lt_update_exe_path (const char *name, const char *value)
     {
       char *new_value = lt_extend_str (getenv (name), value, 0);
       /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+      size_t len = strlen (new_value);
+      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
         {
-          new_value[len-1] = '\0';
+          new_value[--len] = '\0';
         }
       lt_setenv (name, new_value);
       XFREE (new_value);
@@ -5082,27 +6460,47 @@ EOF
 # True if ARG is an import lib, as indicated by $file_magic_cmd
 func_win32_import_lib_p ()
 {
-    $opt_debug
+    $debug_cmd
+
     case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
     *import*) : ;;
     *) false ;;
     esac
 }
 
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+    $debug_cmd
+
+    case " $compile_command " in
+    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+      suncc_use_cstd_abi=no
+      ;;
+    *)
+      suncc_use_cstd_abi=yes
+      ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
-    $opt_debug
+    $debug_cmd
+
     case $host in
     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
       # It is impossible to link a dll without this setting, and
       # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
+      # what system we are compiling for in order to pass an extra
       # flag for every libtool invocation.
       # allow_undefined=no
 
       # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
+      # to make a dll that has undefined symbols, in which case not
       # even a static library is built.  For now, we need to specify
       # -no-undefined on the libtool link line when we can be certain
       # that all symbols are satisfied, otherwise we get a static library.
@@ -5146,10 +6544,11 @@ func_mode_link ()
     module=no
     no_install=no
     objs=
+    os2dllname=
     non_pic_objects=
     precious_files_regex=
     prefer_static_libs=no
-    preload=no
+    preload=false
     prev=
     prevarg=
     release=
@@ -5161,7 +6560,7 @@ func_mode_link ()
     vinfo=
     vinfo_number=no
     weak_libs=
-    single_module="${wl}-single_module"
+    single_module=$wl-single_module
     func_infer_tag $base_compile
 
     # We need to know -static, to get the right output filenames.
@@ -5169,15 +6568,15 @@ func_mode_link ()
     do
       case $arg in
       -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
+       test yes != "$build_libtool_libs" \
+         && func_fatal_configuration "cannot build a shared library"
        build_old_libs=no
        break
        ;;
       -all-static | -static | -static-libtool-libs)
        case $arg in
        -all-static)
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+         if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
            func_warning "complete static linking is impossible in this configuration"
          fi
          if test -n "$link_static_flag"; then
@@ -5210,7 +6609,7 @@ func_mode_link ()
 
     # Go through the arguments, transforming them on the way.
     while test "$#" -gt 0; do
-      arg="$1"
+      arg=$1
       shift
       func_quote_for_eval "$arg"
       qarg=$func_quote_for_eval_unquoted_result
@@ -5227,21 +6626,21 @@ func_mode_link ()
 
        case $prev in
        bindir)
-         bindir="$arg"
+         bindir=$arg
          prev=
          continue
          ;;
        dlfiles|dlprefiles)
-         if test "$preload" = no; then
+         $preload || {
            # Add the symbol object into the linking commands.
            func_append compile_command " @SYMFILE@"
            func_append finalize_command " @SYMFILE@"
-           preload=yes
-         fi
+           preload=:
+         }
          case $arg in
          *.la | *.lo) ;;  # We handle these cases below.
          force)
-           if test "$dlself" = no; then
+           if test no = "$dlself"; then
              dlself=needless
              export_dynamic=yes
            fi
@@ -5249,9 +6648,9 @@ func_mode_link ()
            continue
            ;;
          self)
-           if test "$prev" = dlprefiles; then
+           if test dlprefiles = "$prev"; then
              dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+           elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
              dlself=yes
            else
              dlself=needless
@@ -5261,7 +6660,7 @@ func_mode_link ()
            continue
            ;;
          *)
-           if test "$prev" = dlfiles; then
+           if test dlfiles = "$prev"; then
              func_append dlfiles " $arg"
            else
              func_append dlprefiles " $arg"
@@ -5272,14 +6671,14 @@ func_mode_link ()
          esac
          ;;
        expsyms)
-         export_symbols="$arg"
+         export_symbols=$arg
          test -f "$arg" \
-           || func_fatal_error "symbol file \`$arg' does not exist"
+           || func_fatal_error "symbol file '$arg' does not exist"
          prev=
          continue
          ;;
        expsyms_regex)
-         export_symbols_regex="$arg"
+         export_symbols_regex=$arg
          prev=
          continue
          ;;
@@ -5297,7 +6696,13 @@ func_mode_link ()
          continue
          ;;
        inst_prefix)
-         inst_prefix_dir="$arg"
+         inst_prefix_dir=$arg
+         prev=
+         continue
+         ;;
+       mllvm)
+         # Clang does not use LLVM to link, so we can simply discard any
+         # '-mllvm $arg' options when doing the link step.
          prev=
          continue
          ;;
@@ -5321,21 +6726,21 @@ func_mode_link ()
 
                if test -z "$pic_object" ||
                   test -z "$non_pic_object" ||
-                  test "$pic_object" = none &&
-                  test "$non_pic_object" = none; then
-                 func_fatal_error "cannot find name of object for \`$arg'"
+                  test none = "$pic_object" &&
+                  test none = "$non_pic_object"; then
+                 func_fatal_error "cannot find name of object for '$arg'"
                fi
 
                # Extract subdirectory from the argument.
                func_dirname "$arg" "/" ""
-               xdir="$func_dirname_result"
+               xdir=$func_dirname_result
 
-               if test "$pic_object" != none; then
+               if test none != "$pic_object"; then
                  # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
+                 pic_object=$xdir$pic_object
 
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                 if test dlfiles = "$prev"; then
+                   if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                      func_append dlfiles " $pic_object"
                      prev=
                      continue
@@ -5346,7 +6751,7 @@ func_mode_link ()
                  fi
 
                  # CHECK ME:  I think I busted this.  -Ossama
-                 if test "$prev" = dlprefiles; then
+                 if test dlprefiles = "$prev"; then
                    # Preload the old-style object.
                    func_append dlprefiles " $pic_object"
                    prev=
@@ -5354,23 +6759,23 @@ func_mode_link ()
 
                  # A PIC object.
                  func_append libobjs " $pic_object"
-                 arg="$pic_object"
+                 arg=$pic_object
                fi
 
                # Non-PIC object.
-               if test "$non_pic_object" != none; then
+               if test none != "$non_pic_object"; then
                  # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
+                 non_pic_object=$xdir$non_pic_object
 
                  # A standard non-PIC object
                  func_append non_pic_objects " $non_pic_object"
-                 if test -z "$pic_object" || test "$pic_object" = none ; then
-                   arg="$non_pic_object"
+                 if test -z "$pic_object" || test none = "$pic_object"; then
+                   arg=$non_pic_object
                  fi
                else
                  # If the PIC object exists, use it instead.
                  # $xdir was prepended to $pic_object above.
-                 non_pic_object="$pic_object"
+                 non_pic_object=$pic_object
                  func_append non_pic_objects " $non_pic_object"
                fi
              else
@@ -5378,7 +6783,7 @@ func_mode_link ()
                if $opt_dry_run; then
                  # Extract subdirectory from the argument.
                  func_dirname "$arg" "/" ""
-                 xdir="$func_dirname_result"
+                 xdir=$func_dirname_result
 
                  func_lo2o "$arg"
                  pic_object=$xdir$objdir/$func_lo2o_result
@@ -5386,24 +6791,29 @@ func_mode_link ()
                  func_append libobjs " $pic_object"
                  func_append non_pic_objects " $non_pic_object"
                else
-                 func_fatal_error "\`$arg' is not a valid libtool object"
+                 func_fatal_error "'$arg' is not a valid libtool object"
                fi
              fi
            done
          else
-           func_fatal_error "link input file \`$arg' does not exist"
+           func_fatal_error "link input file '$arg' does not exist"
          fi
          arg=$save_arg
          prev=
          continue
          ;;
+       os2dllname)
+         os2dllname=$arg
+         prev=
+         continue
+         ;;
        precious_regex)
-         precious_files_regex="$arg"
+         precious_files_regex=$arg
          prev=
          continue
          ;;
        release)
-         release="-$arg"
+         release=-$arg
          prev=
          continue
          ;;
@@ -5415,7 +6825,7 @@ func_mode_link ()
            func_fatal_error "only absolute run-paths are allowed"
            ;;
          esac
-         if test "$prev" = rpath; then
+         if test rpath = "$prev"; then
            case "$rpath " in
            *" $arg "*) ;;
            *) func_append rpath " $arg" ;;
@@ -5430,7 +6840,7 @@ func_mode_link ()
          continue
          ;;
        shrext)
-         shrext_cmds="$arg"
+         shrext_cmds=$arg
          prev=
          continue
          ;;
@@ -5470,7 +6880,7 @@ func_mode_link ()
        esac
       fi # test -n "$prev"
 
-      prevarg="$arg"
+      prevarg=$arg
 
       case $arg in
       -all-static)
@@ -5484,7 +6894,7 @@ func_mode_link ()
 
       -allow-undefined)
        # FIXME: remove this flag sometime in the future.
-       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+       func_fatal_error "'-allow-undefined' must not be used because it is the default"
        ;;
 
       -avoid-version)
@@ -5516,7 +6926,7 @@ func_mode_link ()
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
          func_fatal_error "more than one -exported-symbols argument is not allowed"
        fi
-       if test "X$arg" = "X-export-symbols"; then
+       if test X-export-symbols = "X$arg"; then
          prev=expsyms
        else
          prev=expsyms_regex
@@ -5550,9 +6960,9 @@ func_mode_link ()
        func_stripname "-L" '' "$arg"
        if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
-           func_fatal_error "require no space between \`-L' and \`$1'"
+           func_fatal_error "require no space between '-L' and '$1'"
          else
-           func_fatal_error "need path for \`-L' option"
+           func_fatal_error "need path for '-L' option"
          fi
        fi
        func_resolve_sysroot "$func_stripname_result"
@@ -5563,8 +6973,8 @@ func_mode_link ()
        *)
          absdir=`cd "$dir" && pwd`
          test -z "$absdir" && \
-           func_fatal_error "cannot determine absolute directory name of \`$dir'"
-         dir="$absdir"
+           func_fatal_error "cannot determine absolute directory name of '$dir'"
+         dir=$absdir
          ;;
        esac
        case "$deplibs " in
@@ -5599,7 +7009,7 @@ func_mode_link ()
        ;;
 
       -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+       if test X-lc = "X$arg" || test X-lm = "X$arg"; then
          case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # These systems don't actually have a C or math library (as such)
@@ -5607,11 +7017,11 @@ func_mode_link ()
            ;;
          *-*-os2*)
            # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
-         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
            # Do not include libc due to us having libc/libc_r.
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
@@ -5620,16 +7030,16 @@ func_mode_link ()
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
            # Causes problems with __ctype
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
            # Compiler inserts libc in the correct place for threads to work
-           test "X$arg" = "X-lc" && continue
+           test X-lc = "X$arg" && continue
            ;;
          esac
-       elif test "X$arg" = "X-lc_r"; then
+       elif test X-lc_r = "X$arg"; then
         case $host in
-        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
           # Do not include libc_r directly, use -pthread flag.
           continue
           ;;
@@ -5639,6 +7049,11 @@ func_mode_link ()
        continue
        ;;
 
+      -mllvm)
+       prev=mllvm
+       continue
+       ;;
+
       -module)
        module=yes
        continue
@@ -5668,7 +7083,7 @@ func_mode_link ()
        ;;
 
       -multi_module)
-       single_module="${wl}-multi_module"
+       single_module=$wl-multi_module
        continue
        ;;
 
@@ -5682,8 +7097,8 @@ func_mode_link ()
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
          # The PATH hackery in wrapper scripts is required on Windows
          # and Darwin in order for the loader to find any dlls it needs.
-         func_warning "\`-no-install' is ignored for $host"
-         func_warning "assuming \`-no-fast-install' instead"
+         func_warning "'-no-install' is ignored for $host"
+         func_warning "assuming '-no-fast-install' instead"
          fast_install=no
          ;;
        *) no_install=yes ;;
@@ -5701,6 +7116,11 @@ func_mode_link ()
        continue
        ;;
 
+      -os2dllname)
+       prev=os2dllname
+       continue
+       ;;
+
       -o) prev=output ;;
 
       -precious-files-regex)
@@ -5788,14 +7208,14 @@ func_mode_link ()
        func_stripname '-Wc,' '' "$arg"
        args=$func_stripname_result
        arg=
-       save_ifs="$IFS"; IFS=','
+       save_ifs=$IFS; IFS=,
        for flag in $args; do
-         IFS="$save_ifs"
+         IFS=$save_ifs
           func_quote_for_eval "$flag"
          func_append arg " $func_quote_for_eval_result"
          func_append compiler_flags " $func_quote_for_eval_result"
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
        func_stripname ' ' '' "$arg"
        arg=$func_stripname_result
        ;;
@@ -5804,15 +7224,15 @@ func_mode_link ()
        func_stripname '-Wl,' '' "$arg"
        args=$func_stripname_result
        arg=
-       save_ifs="$IFS"; IFS=','
+       save_ifs=$IFS; IFS=,
        for flag in $args; do
-         IFS="$save_ifs"
+         IFS=$save_ifs
           func_quote_for_eval "$flag"
          func_append arg " $wl$func_quote_for_eval_result"
          func_append compiler_flags " $wl$func_quote_for_eval_result"
          func_append linker_flags " $func_quote_for_eval_result"
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
        func_stripname ' ' '' "$arg"
        arg=$func_stripname_result
        ;;
@@ -5835,7 +7255,7 @@ func_mode_link ()
       # -msg_* for osf cc
       -msg_*)
        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
 
       # Flags to be passed through unchanged, with rationale:
@@ -5847,25 +7267,46 @@ func_mode_link ()
       # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
       # -F/path              path to uninstalled frameworks, gcc on darwin
       # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # -fstack-protector*   stack protector flags for GCC
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
       # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -stdlib=*            select c++ std lib with clang
       -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*|-flto*|-fwhopr*|-fuse-linker-plugin)
+      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
         func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
         func_append compiler_flags " $arg"
         continue
         ;;
 
+      -Z*)
+        if test os2 = "`expr $host : '.*\(os2\)'`"; then
+          # OS/2 uses -Zxxx to specify OS/2-specific options
+         compiler_flags="$compiler_flags $arg"
+         func_append compile_command " $arg"
+         func_append finalize_command " $arg"
+         case $arg in
+         -Zlinker | -Zstack)
+           prev=xcompiler
+           ;;
+         esac
+         continue
+        else
+         # Otherwise treat like 'Some other compiler flag' below
+         func_quote_for_eval "$arg"
+         arg=$func_quote_for_eval_result
+        fi
+       ;;
+
       # Some other compiler flag.
       -* | +*)
         func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
 
       *.$objext)
@@ -5886,21 +7327,21 @@ func_mode_link ()
 
          if test -z "$pic_object" ||
             test -z "$non_pic_object" ||
-            test "$pic_object" = none &&
-            test "$non_pic_object" = none; then
-           func_fatal_error "cannot find name of object for \`$arg'"
+            test none = "$pic_object" &&
+            test none = "$non_pic_object"; then
+           func_fatal_error "cannot find name of object for '$arg'"
          fi
 
          # Extract subdirectory from the argument.
          func_dirname "$arg" "/" ""
-         xdir="$func_dirname_result"
+         xdir=$func_dirname_result
 
-         if test "$pic_object" != none; then
+         test none = "$pic_object" || {
            # Prepend the subdirectory the object is found in.
-           pic_object="$xdir$pic_object"
+           pic_object=$xdir$pic_object
 
-           if test "$prev" = dlfiles; then
-             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+           if test dlfiles = "$prev"; then
+             if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                func_append dlfiles " $pic_object"
                prev=
                continue
@@ -5911,7 +7352,7 @@ func_mode_link ()
            fi
 
            # CHECK ME:  I think I busted this.  -Ossama
-           if test "$prev" = dlprefiles; then
+           if test dlprefiles = "$prev"; then
              # Preload the old-style object.
              func_append dlprefiles " $pic_object"
              prev=
@@ -5919,23 +7360,23 @@ func_mode_link ()
 
            # A PIC object.
            func_append libobjs " $pic_object"
-           arg="$pic_object"
-         fi
+           arg=$pic_object
+         }
 
          # Non-PIC object.
-         if test "$non_pic_object" != none; then
+         if test none != "$non_pic_object"; then
            # Prepend the subdirectory the object is found in.
-           non_pic_object="$xdir$non_pic_object"
+           non_pic_object=$xdir$non_pic_object
 
            # A standard non-PIC object
            func_append non_pic_objects " $non_pic_object"
-           if test -z "$pic_object" || test "$pic_object" = none ; then
-             arg="$non_pic_object"
+           if test -z "$pic_object" || test none = "$pic_object"; then
+             arg=$non_pic_object
            fi
          else
            # If the PIC object exists, use it instead.
            # $xdir was prepended to $pic_object above.
-           non_pic_object="$pic_object"
+           non_pic_object=$pic_object
            func_append non_pic_objects " $non_pic_object"
          fi
        else
@@ -5943,7 +7384,7 @@ func_mode_link ()
          if $opt_dry_run; then
            # Extract subdirectory from the argument.
            func_dirname "$arg" "/" ""
-           xdir="$func_dirname_result"
+           xdir=$func_dirname_result
 
            func_lo2o "$arg"
            pic_object=$xdir$objdir/$func_lo2o_result
@@ -5951,7 +7392,7 @@ func_mode_link ()
            func_append libobjs " $pic_object"
            func_append non_pic_objects " $non_pic_object"
          else
-           func_fatal_error "\`$arg' is not a valid libtool object"
+           func_fatal_error "'$arg' is not a valid libtool object"
          fi
        fi
        ;;
@@ -5967,11 +7408,11 @@ func_mode_link ()
        # A libtool-controlled library.
 
        func_resolve_sysroot "$arg"
-       if test "$prev" = dlfiles; then
+       if test dlfiles = "$prev"; then
          # This library was specified with -dlopen.
          func_append dlfiles " $func_resolve_sysroot_result"
          prev=
-       elif test "$prev" = dlprefiles; then
+       elif test dlprefiles = "$prev"; then
          # The library was specified with -dlpreopen.
          func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
@@ -5986,7 +7427,7 @@ func_mode_link ()
        # Unknown arguments in both finalize_command and compile_command need
        # to be aesthetically quoted because they are evaled later.
        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
+       arg=$func_quote_for_eval_result
        ;;
       esac # arg
 
@@ -5998,9 +7439,9 @@ func_mode_link ()
     done # argument parsing loop
 
     test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
+      func_fatal_help "the '$prevarg' option requires an argument"
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
       eval arg=\"$export_dynamic_flag_spec\"
       func_append compile_command " $arg"
       func_append finalize_command " $arg"
@@ -6009,20 +7450,23 @@ func_mode_link ()
     oldlibs=
     # calculate the name of the file, without its directory
     func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
+    outputname=$func_basename_result
+    libobjs_save=$libobjs
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
+    # Definition is injected by LT_CONFIG during libtool generation.
+    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
     func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
+    output_objdir=$func_dirname_result$objdir
     func_to_tool_file "$output_objdir/"
     tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
@@ -6045,7 +7489,7 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
+      if $opt_preserve_dup_deps; then
        case "$libs " in
        *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
@@ -6053,7 +7497,7 @@ func_mode_link ()
       func_append libs " $deplib"
     done
 
-    if test "$linkmode" = lib; then
+    if test lib = "$linkmode"; then
       libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
       # Compute libraries that are listed more than once in $predeps
@@ -6085,7 +7529,7 @@ func_mode_link ()
          case $file in
          *.la) ;;
          *)
-           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+           func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
            ;;
          esac
        done
@@ -6093,7 +7537,7 @@ func_mode_link ()
     prog)
        compile_deplibs=
        finalize_deplibs=
-       alldeplibs=no
+       alldeplibs=false
        newdlfiles=
        newdlprefiles=
        passes="conv scan dlopen dlpreopen link"
@@ -6105,29 +7549,29 @@ func_mode_link ()
     for pass in $passes; do
       # The preopen pass in lib mode reverses $deplibs; put it back here
       # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
+      if test lib,link = "$linkmode,$pass"; then
        ## FIXME: Find the place where the list is rebuilt in the wrong
        ##        order, and fix it there properly
         tmp_deplibs=
        for deplib in $deplibs; do
          tmp_deplibs="$deplib $tmp_deplibs"
        done
-       deplibs="$tmp_deplibs"
+       deplibs=$tmp_deplibs
       fi
 
-      if test "$linkmode,$pass" = "lib,link" ||
-        test "$linkmode,$pass" = "prog,scan"; then
-       libs="$deplibs"
+      if test lib,link = "$linkmode,$pass" ||
+        test prog,scan = "$linkmode,$pass"; then
+       libs=$deplibs
        deplibs=
       fi
-      if test "$linkmode" = prog; then
+      if test prog = "$linkmode"; then
        case $pass in
-       dlopen) libs="$dlfiles" ;;
-       dlpreopen) libs="$dlprefiles" ;;
+       dlopen) libs=$dlfiles ;;
+       dlpreopen) libs=$dlprefiles ;;
        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
        esac
       fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+      if test lib,dlpreopen = "$linkmode,$pass"; then
        # Collect and forward deplibs of preopened libtool libs
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
@@ -6148,26 +7592,26 @@ func_mode_link ()
            esac
          done
        done
-       libs="$dlprefiles"
+       libs=$dlprefiles
       fi
-      if test "$pass" = dlopen; then
+      if test dlopen = "$pass"; then
        # Collect dlpreopened libraries
-       save_deplibs="$deplibs"
+       save_deplibs=$deplibs
        deplibs=
       fi
 
       for deplib in $libs; do
        lib=
-       found=no
+       found=false
        case $deplib in
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
         |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-         if test "$linkmode,$pass" = "prog,link"; then
+         if test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
            func_append compiler_flags " $deplib"
-           if test "$linkmode" = lib ; then
+           if test lib = "$linkmode"; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6177,13 +7621,13 @@ func_mode_link ()
          continue
          ;;
        -l*)
-         if test "$linkmode" != lib && test "$linkmode" != prog; then
-           func_warning "\`-l' is ignored for archives/objects"
+         if test lib != "$linkmode" && test prog != "$linkmode"; then
+           func_warning "'-l' is ignored for archives/objects"
            continue
          fi
          func_stripname '-l' '' "$deplib"
          name=$func_stripname_result
-         if test "$linkmode" = lib; then
+         if test lib = "$linkmode"; then
            searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
          else
            searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
@@ -6191,31 +7635,22 @@ func_mode_link ()
          for searchdir in $searchdirs; do
            for search_ext in .la $std_shrext .so .a; do
              # Search the libtool library
-             lib="$searchdir/lib${name}${search_ext}"
+             lib=$searchdir/lib$name$search_ext
              if test -f "$lib"; then
-               if test "$search_ext" = ".la"; then
-                 found=yes
+               if test .la = "$search_ext"; then
+                 found=:
                else
-                 found=no
+                 found=false
                fi
                break 2
              fi
            done
          done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             deplibs="$deplib $deplibs"
-             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         else # deplib is a libtool library
+         if $found; then
+           # deplib is a libtool library
            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
            # We need to do some special things here, and not later.
-           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+           if test yes = "$allow_libtool_libs_with_static_runtimes"; then
              case " $predeps $postdeps " in
              *" $deplib "*)
                if func_lalib_p "$lib"; then
@@ -6223,19 +7658,19 @@ func_mode_link ()
                  old_library=
                  func_source "$lib"
                  for l in $old_library $library_names; do
-                   ll="$l"
+                   ll=$l
                  done
-                 if test "X$ll" = "X$old_library" ; then # only static version available
-                   found=no
+                 if test "X$ll" = "X$old_library"; then # only static version available
+                   found=false
                    func_dirname "$lib" "" "."
-                   ladir="$func_dirname_result"
+                   ladir=$func_dirname_result
                    lib=$ladir/$old_library
-                   if test "$linkmode,$pass" = "prog,link"; then
+                   if test prog,link = "$linkmode,$pass"; then
                      compile_deplibs="$deplib $compile_deplibs"
                      finalize_deplibs="$deplib $finalize_deplibs"
                    else
                      deplibs="$deplib $deplibs"
-                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+                     test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
                    fi
                    continue
                  fi
@@ -6244,15 +7679,25 @@ func_mode_link ()
              *) ;;
              esac
            fi
+         else
+           # deplib doesn't seem to be a libtool library
+           if test prog,link = "$linkmode,$pass"; then
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+             test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
          fi
          ;; # -l
        *.ltframework)
-         if test "$linkmode,$pass" = "prog,link"; then
+         if test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
            deplibs="$deplib $deplibs"
-           if test "$linkmode" = lib ; then
+           if test lib = "$linkmode"; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
                    * ) func_append new_inherited_linker_flags " $deplib" ;;
@@ -6265,18 +7710,18 @@ func_mode_link ()
          case $linkmode in
          lib)
            deplibs="$deplib $deplibs"
-           test "$pass" = conv && continue
+           test conv = "$pass" && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
            func_resolve_sysroot "$func_stripname_result"
            func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
-           if test "$pass" = conv; then
+           if test conv = "$pass"; then
              deplibs="$deplib $deplibs"
              continue
            fi
-           if test "$pass" = scan; then
+           if test scan = "$pass"; then
              deplibs="$deplib $deplibs"
            else
              compile_deplibs="$deplib $compile_deplibs"
@@ -6287,13 +7732,13 @@ func_mode_link ()
            func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
-           func_warning "\`-L' is ignored for archives/objects"
+           func_warning "'-L' is ignored for archives/objects"
            ;;
          esac # linkmode
          continue
          ;; # -L
        -R*)
-         if test "$pass" = link; then
+         if test link = "$pass"; then
            func_stripname '-R' '' "$deplib"
            func_resolve_sysroot "$func_stripname_result"
            dir=$func_resolve_sysroot_result
@@ -6311,7 +7756,7 @@ func_mode_link ()
          lib=$func_resolve_sysroot_result
          ;;
        *.$libext)
-         if test "$pass" = conv; then
+         if test conv = "$pass"; then
            deplibs="$deplib $deplibs"
            continue
          fi
@@ -6322,21 +7767,26 @@ func_mode_link ()
            case " $dlpreconveniencelibs " in
            *" $deplib "*) ;;
            *)
-             valid_a_lib=no
+             valid_a_lib=false
              case $deplibs_check_method in
                match_pattern*)
                  set dummy $deplibs_check_method; shift
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                    | $EGREP "$match_pattern_regex" > /dev/null; then
-                   valid_a_lib=yes
+                   valid_a_lib=:
                  fi
                ;;
                pass_all)
-                 valid_a_lib=yes
+                 valid_a_lib=:
                ;;
              esac
-             if test "$valid_a_lib" != yes; then
+             if $valid_a_lib; then
+               echo
+               $ECHO "*** Warning: Linking the shared library $output against the"
+               $ECHO "*** static library $deplib is not portable!"
+               deplibs="$deplib $deplibs"
+             else
                echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
                echo "*** I have the capability to make that library automatically link in when"
@@ -6344,18 +7794,13 @@ func_mode_link ()
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because the file extensions .$libext of this argument makes me believe"
                echo "*** that it is just a static archive that I should not use here."
-             else
-               echo
-               $ECHO "*** Warning: Linking the shared library $output against the"
-               $ECHO "*** static library $deplib is not portable!"
-               deplibs="$deplib $deplibs"
              fi
              ;;
            esac
            continue
            ;;
          prog)
-           if test "$pass" != link; then
+           if test link != "$pass"; then
              deplibs="$deplib $deplibs"
            else
              compile_deplibs="$deplib $compile_deplibs"
@@ -6366,10 +7811,10 @@ func_mode_link ()
          esac # linkmode
          ;; # *.$libext
        *.lo | *.$objext)
-         if test "$pass" = conv; then
+         if test conv = "$pass"; then
            deplibs="$deplib $deplibs"
-         elif test "$linkmode" = prog; then
-           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+         elif test prog = "$linkmode"; then
+           if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
              func_append newdlprefiles " $deplib"
@@ -6382,22 +7827,20 @@ func_mode_link ()
          continue
          ;;
        %DEPLIBS%)
-         alldeplibs=yes
+         alldeplibs=:
          continue
          ;;
        esac # case $deplib
 
-       if test "$found" = yes || test -f "$lib"; then :
-       else
-         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-       fi
+       $found || test -f "$lib" \
+         || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
 
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$lib" \
-         || func_fatal_error "\`$lib' is not a valid libtool archive"
+         || func_fatal_error "'$lib' is not a valid libtool archive"
 
        func_dirname "$lib" "" "."
-       ladir="$func_dirname_result"
+       ladir=$func_dirname_result
 
        dlname=
        dlopen=
@@ -6427,30 +7870,30 @@ func_mode_link ()
          done
        fi
        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+       if test lib,link = "$linkmode,$pass" ||
+          test prog,scan = "$linkmode,$pass" ||
+          { test prog != "$linkmode" && test lib != "$linkmode"; }; then
          test -n "$dlopen" && func_append dlfiles " $dlopen"
          test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
-       if test "$pass" = conv; then
+       if test conv = "$pass"; then
          # Only check for convenience libraries
          deplibs="$lib $deplibs"
          if test -z "$libdir"; then
            if test -z "$old_library"; then
-             func_fatal_error "cannot find name of link library for \`$lib'"
+             func_fatal_error "cannot find name of link library for '$lib'"
            fi
            # 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"
-         elif test "$linkmode" != prog && test "$linkmode" != lib; then
-           func_fatal_error "\`$lib' is not a convenience library"
+         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
+           if $opt_preserve_dup_deps; then
              case "$tmp_libs " in
              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
@@ -6464,26 +7907,26 @@ func_mode_link ()
        # Get the name of the library we link against.
        linklib=
        if test -n "$old_library" &&
-          { test "$prefer_static_libs" = yes ||
-            test "$prefer_static_libs,$installed" = "built,no"; }; then
+          { test yes = "$prefer_static_libs" ||
+            test built,no = "$prefer_static_libs,$installed"; }; then
          linklib=$old_library
        else
          for l in $old_library $library_names; do
-           linklib="$l"
+           linklib=$l
          done
        fi
        if test -z "$linklib"; then
-         func_fatal_error "cannot find name of link library for \`$lib'"
+         func_fatal_error "cannot find name of link library for '$lib'"
        fi
 
        # This library was specified with -dlopen.
-       if test "$pass" = dlopen; then
-         if test -z "$libdir"; then
-           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-         fi
+       if test dlopen = "$pass"; then
+         test -z "$libdir" \
+           && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
          if test -z "$dlname" ||
-            test "$dlopen_support" != yes ||
-            test "$build_libtool_libs" = no; then
+            test yes != "$dlopen_support" ||
+            test no = "$build_libtool_libs"
+         then
            # If there is no dlname, no dlopen support or we're linking
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
@@ -6497,40 +7940,40 @@ func_mode_link ()
 
        # We need an absolute path.
        case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
        *)
          abs_ladir=`cd "$ladir" && pwd`
          if test -z "$abs_ladir"; then
-           func_warning "cannot determine absolute directory name of \`$ladir'"
+           func_warning "cannot determine absolute directory name of '$ladir'"
            func_warning "passing it literally to the linker, although it might fail"
-           abs_ladir="$ladir"
+           abs_ladir=$ladir
          fi
          ;;
        esac
        func_basename "$lib"
-       laname="$func_basename_result"
+       laname=$func_basename_result
 
        # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
+       if test yes = "$installed"; then
          if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           func_warning "library \`$lib' was moved."
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
+           func_warning "library '$lib' was moved."
+           dir=$ladir
+           absdir=$abs_ladir
+           libdir=$abs_ladir
          else
-           dir="$lt_sysroot$libdir"
-           absdir="$lt_sysroot$libdir"
+           dir=$lt_sysroot$libdir
+           absdir=$lt_sysroot$libdir
          fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+         test yes = "$hardcode_automatic" && avoidtemprpath=yes
        else
          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           dir="$ladir"
-           absdir="$abs_ladir"
+           dir=$ladir
+           absdir=$abs_ladir
            # Remove this search path later
            func_append notinst_path " $abs_ladir"
          else
-           dir="$ladir/$objdir"
-           absdir="$abs_ladir/$objdir"
+           dir=$ladir/$objdir
+           absdir=$abs_ladir/$objdir
            # Remove this search path later
            func_append notinst_path " $abs_ladir"
          fi
@@ -6539,11 +7982,11 @@ func_mode_link ()
        name=$func_stripname_result
 
        # This library was specified with -dlpreopen.
-       if test "$pass" = dlpreopen; then
-         if test -z "$libdir" && test "$linkmode" = prog; then
-           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+       if test dlpreopen = "$pass"; then
+         if test -z "$libdir" && test prog = "$linkmode"; then
+           func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
          fi
-         case "$host" in
+         case $host in
            # special handling for platforms with PE-DLLs.
            *cygwin* | *mingw* | *cegcc* )
              # Linker will automatically link against shared library if both
@@ -6587,9 +8030,9 @@ func_mode_link ()
 
        if test -z "$libdir"; then
          # Link the convenience library
-         if test "$linkmode" = lib; then
+         if test lib = "$linkmode"; then
            deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
+         elif test prog,link = "$linkmode,$pass"; then
            compile_deplibs="$dir/$old_library $compile_deplibs"
            finalize_deplibs="$dir/$old_library $finalize_deplibs"
          else
@@ -6599,14 +8042,14 @@ func_mode_link ()
        fi
 
 
-       if test "$linkmode" = prog && test "$pass" != link; then
+       if test prog = "$linkmode" && test link != "$pass"; then
          func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
+         linkalldeplibs=false
+         if test no != "$link_all_deplibs" || test -z "$library_names" ||
+            test no = "$build_libtool_libs"; then
+           linkalldeplibs=:
          fi
 
          tmp_libs=
@@ -6618,14 +8061,14 @@ func_mode_link ()
                 ;;
            esac
            # Need to link against all dependency_libs?
-           if test "$linkalldeplibs" = yes; then
+           if $linkalldeplibs; then
              deplibs="$deplib $deplibs"
            else
              # Need to hardcode shared library paths
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_preserve_dup_deps ; then
+           if $opt_preserve_dup_deps; then
              case "$tmp_libs " in
              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
@@ -6635,15 +8078,15 @@ func_mode_link ()
          continue
        fi # $linkmode = prog...
 
-       if test "$linkmode,$pass" = "prog,link"; then
+       if test prog,link = "$linkmode,$pass"; then
          if test -n "$library_names" &&
-            { { test "$prefer_static_libs" = no ||
-                test "$prefer_static_libs,$installed" = "built,yes"; } ||
+            { { test no = "$prefer_static_libs" ||
+                test built,yes = "$prefer_static_libs,$installed"; } ||
               test -z "$old_library"; }; then
            # We need to hardcode the library path
-           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+           if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
              # Make sure the rpath contains only unique directories.
-             case "$temp_rpath:" in
+             case $temp_rpath: in
              *"$absdir:"*) ;;
              *) func_append temp_rpath "$absdir:" ;;
              esac
@@ -6672,9 +8115,9 @@ func_mode_link ()
            esac
          fi # $linkmode,$pass = prog,link...
 
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
+         if $alldeplibs &&
+            { test pass_all = "$deplibs_check_method" ||
+              { test yes = "$build_libtool_libs" &&
                 test -n "$library_names"; }; }; then
            # We only need to search for static libraries
            continue
@@ -6683,19 +8126,19 @@ func_mode_link ()
 
        link_static=no # Whether the deplib will be linked statically
        use_static_libs=$prefer_static_libs
-       if test "$use_static_libs" = built && test "$installed" = yes; then
+       if test built = "$use_static_libs" && test yes = "$installed"; then
          use_static_libs=no
        fi
        if test -n "$library_names" &&
-          { test "$use_static_libs" = no || test -z "$old_library"; }; then
+          { test no = "$use_static_libs" || test -z "$old_library"; }; then
          case $host in
-         *cygwin* | *mingw* | *cegcc*)
+         *cygwin* | *mingw* | *cegcc* | *os2*)
              # No point in relinking DLLs because paths are not encoded
              func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
-           if test "$installed" = no; then
+           if test no = "$installed"; then
              func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
@@ -6705,24 +8148,24 @@ func_mode_link ()
 
          # Warn about portability, can't link against -module's on some
          # systems (darwin).  Don't bleat about dlopened modules though!
-         dlopenmodule=""
+         dlopenmodule=
          for dlpremoduletest in $dlprefiles; do
            if test "X$dlpremoduletest" = "X$lib"; then
-             dlopenmodule="$dlpremoduletest"
+             dlopenmodule=$dlpremoduletest
              break
            fi
          done
-         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+         if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
            echo
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
              $ECHO "*** Warning: Linking the shared library $output against the loadable module"
            fi
            $ECHO "*** $linklib is not portable!"
          fi
-         if test "$linkmode" = lib &&
-            test "$hardcode_into_libs" = yes; then
+         if test lib = "$linkmode" &&
+            test yes = "$hardcode_into_libs"; then
            # Hardcode the library path.
            # Skip directories that are in the system default run-time
            # search path.
@@ -6750,43 +8193,43 @@ func_mode_link ()
            # figure out the soname
            set dummy $library_names
            shift
-           realname="$1"
+           realname=$1
            shift
            libname=`eval "\\$ECHO \"$libname_spec\""`
            # use dlname if we got it. it's perfectly good, no?
            if test -n "$dlname"; then
-             soname="$dlname"
+             soname=$dlname
            elif test -n "$soname_spec"; then
              # bleh windows
              case $host in
-             *cygwin* | mingw* | *cegcc*)
+             *cygwin* | mingw* | *cegcc* | *os2*)
                func_arith $current - $age
                major=$func_arith_result
-               versuffix="-$major"
+               versuffix=-$major
                ;;
              esac
              eval soname=\"$soname_spec\"
            else
-             soname="$realname"
+             soname=$realname
            fi
 
            # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
+           soroot=$soname
            func_basename "$soroot"
-           soname="$func_basename_result"
+           soname=$func_basename_result
            func_stripname 'lib' '.dll' "$soname"
            newlib=libimp-$func_stripname_result.a
 
            # If the library has no export list, then create one now
            if test -f "$output_objdir/$soname-def"; then :
            else
-             func_verbose "extracting exported symbol list from \`$soname'"
+             func_verbose "extracting exported symbol list from '$soname'"
              func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
            fi
 
            # Create $newlib
            if test -f "$output_objdir/$newlib"; then :; else
-             func_verbose "generating import library for \`$soname'"
+             func_verbose "generating import library for '$soname'"
              func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
            fi
            # make sure the library variables are pointing to the new library
@@ -6794,58 +8237,58 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$opt_mode" != relink; then
+         if test prog = "$linkmode" || test relink != "$opt_mode"; then
            add_shlibpath=
            add_dir=
            add=
            lib_linked=yes
            case $hardcode_action in
            immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
+             if test no = "$hardcode_direct"; then
+               add=$dir/$linklib
                case $host in
-                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+                 *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+                 *-*-sysv4*uw2*) add_dir=-L$dir ;;
                  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-                   *-*-unixware7*) add_dir="-L$dir" ;;
+                   *-*-unixware7*) add_dir=-L$dir ;;
                  *-*-darwin* )
-                   # if the lib is a (non-dlopened) module then we can not
+                   # if the lib is a (non-dlopened) module then we cannot
                    # link against it, someone is ignoring the earlier warnings
                    if /usr/bin/file -L $add 2> /dev/null |
-                        $GREP ": [^:]* bundle" >/dev/null ; then
+                        $GREP ": [^:]* bundle" >/dev/null; then
                      if test "X$dlopenmodule" != "X$lib"; then
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
-                       if test -z "$old_library" ; then
+                       if test -z "$old_library"; then
                          echo
                          echo "*** And there doesn't seem to be a static archive available"
                          echo "*** The link will probably fail, sorry"
                        else
-                         add="$dir/$old_library"
+                         add=$dir/$old_library
                        fi
                      elif test -n "$old_library"; then
-                       add="$dir/$old_library"
+                       add=$dir/$old_library
                      fi
                    fi
                esac
-             elif test "$hardcode_minus_L" = no; then
+             elif test no = "$hardcode_minus_L"; then
                case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
+               *-*-sunos*) add_shlibpath=$dir ;;
                esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
+               add_dir=-L$dir
+               add=-l$name
+             elif test no = "$hardcode_shlibpath_var"; then
+               add_shlibpath=$dir
+               add=-l$name
              else
                lib_linked=no
              fi
              ;;
            relink)
-             if test "$hardcode_direct" = yes &&
-                test "$hardcode_direct_absolute" = no; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$absdir"
+             if test yes = "$hardcode_direct" &&
+                test no = "$hardcode_direct_absolute"; then
+               add=$dir/$linklib
+             elif test yes = "$hardcode_minus_L"; then
+               add_dir=-L$absdir
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
@@ -6854,10 +8297,10 @@ func_mode_link ()
                      ;;
                  esac
                fi
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
+               add=-l$name
+             elif test yes = "$hardcode_shlibpath_var"; then
+               add_shlibpath=$dir
+               add=-l$name
              else
                lib_linked=no
              fi
@@ -6865,7 +8308,7 @@ func_mode_link ()
            *) lib_linked=no ;;
            esac
 
-           if test "$lib_linked" != yes; then
+           if test yes != "$lib_linked"; then
              func_fatal_configuration "unsupported hardcode properties"
            fi
 
@@ -6875,15 +8318,15 @@ func_mode_link ()
              *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
              test -n "$add" && compile_deplibs="$add $compile_deplibs"
            else
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
              test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes &&
-                test "$hardcode_minus_L" != yes &&
-                test "$hardcode_shlibpath_var" = yes; then
+             if test yes != "$hardcode_direct" &&
+                test yes != "$hardcode_minus_L" &&
+                test yes = "$hardcode_shlibpath_var"; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
                *) func_append finalize_shlibpath "$libdir:" ;;
@@ -6892,33 +8335,33 @@ func_mode_link ()
            fi
          fi
 
-         if test "$linkmode" = prog || test "$opt_mode" = relink; then
+         if test prog = "$linkmode" || test relink = "$opt_mode"; then
            add_shlibpath=
            add_dir=
            add=
            # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes &&
-              test "$hardcode_direct_absolute" = no; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
+           if test yes = "$hardcode_direct" &&
+              test no = "$hardcode_direct_absolute"; then
+             add=$libdir/$linklib
+           elif test yes = "$hardcode_minus_L"; then
+             add_dir=-L$libdir
+             add=-l$name
+           elif test yes = "$hardcode_shlibpath_var"; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
              *) func_append finalize_shlibpath "$libdir:" ;;
              esac
-             add="-l$name"
-           elif test "$hardcode_automatic" = yes; then
+             add=-l$name
+           elif test yes = "$hardcode_automatic"; then
              if test -n "$inst_prefix_dir" &&
-                test -f "$inst_prefix_dir$libdir/$linklib" ; then
-               add="$inst_prefix_dir$libdir/$linklib"
+                test -f "$inst_prefix_dir$libdir/$linklib"; then
+               add=$inst_prefix_dir$libdir/$linklib
              else
-               add="$libdir/$linklib"
+               add=$libdir/$linklib
              fi
            else
              # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
+             add_dir=-L$libdir
              # Try looking first in the location we're being installed to.
              if test -n "$inst_prefix_dir"; then
                case $libdir in
@@ -6927,10 +8370,10 @@ func_mode_link ()
                    ;;
                esac
              fi
-             add="-l$name"
+             add=-l$name
            fi
 
-           if test "$linkmode" = prog; then
+           if test prog = "$linkmode"; then
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
@@ -6938,43 +8381,43 @@ func_mode_link ()
              test -n "$add" && deplibs="$add $deplibs"
            fi
          fi
-       elif test "$linkmode" = prog; then
+       elif test prog = "$linkmode"; then
          # Here we assume that one of hardcode_direct or hardcode_minus_L
          # is not unsupported.  This is valid on all known static and
          # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
+         if test unsupported != "$hardcode_direct"; then
+           test -n "$old_library" && linklib=$old_library
            compile_deplibs="$dir/$linklib $compile_deplibs"
            finalize_deplibs="$dir/$linklib $finalize_deplibs"
          else
            compile_deplibs="-l$name -L$dir $compile_deplibs"
            finalize_deplibs="-l$name -L$dir $finalize_deplibs"
          fi
-       elif test "$build_libtool_libs" = yes; then
+       elif test yes = "$build_libtool_libs"; then
          # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
+         if test pass_all != "$deplibs_check_method"; then
            # We're trying link a shared library against a static one
            # but the system doesn't support it.
 
            # Just print a warning and add the library to dependency_libs so
            # that the program can be linked against the static library.
            echo
-           $ECHO "*** Warning: This system can not link to static lib archive $lib."
+           $ECHO "*** Warning: This system cannot link to static lib archive $lib."
            echo "*** I have the capability to make that library automatically link in when"
            echo "*** you link to this library.  But I can only do this if you have a"
            echo "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
+           if test yes = "$module"; then
              echo "*** But as you try to build a module library, libtool will still create "
              echo "*** a static module, that should work as long as the dlopening application"
              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
                echo
                echo "*** However, this would only work if libtool was able to extract symbol"
-               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
                echo "*** not find such a program.  So, this module is probably useless."
-               echo "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo "*** 'nm' from GNU binutils and a full rebuild may help."
              fi
-             if test "$build_old_libs" = no; then
+             if test no = "$build_old_libs"; then
                build_libtool_libs=module
                build_old_libs=yes
              else
@@ -6987,11 +8430,11 @@ func_mode_link ()
          fi
        fi # link shared/static library?
 
-       if test "$linkmode" = lib; then
+       if test lib = "$linkmode"; then
          if test -n "$dependency_libs" &&
-            { test "$hardcode_into_libs" != yes ||
-              test "$build_old_libs" = yes ||
-              test "$link_static" = yes; }; then
+            { test yes != "$hardcode_into_libs" ||
+              test yes = "$build_old_libs" ||
+              test yes = "$link_static"; }; then
            # Extract -R from dependency_libs
            temp_deplibs=
            for libdir in $dependency_libs; do
@@ -7005,12 +8448,12 @@ func_mode_link ()
              *) func_append temp_deplibs " $libdir";;
              esac
            done
-           dependency_libs="$temp_deplibs"
+           dependency_libs=$temp_deplibs
          fi
 
          func_append newlib_search_path " $absdir"
          # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+         test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
@@ -7020,7 +8463,7 @@ func_mode_link ()
                    func_resolve_sysroot "$func_stripname_result";;
               *) func_resolve_sysroot "$deplib" ;;
             esac
-           if $opt_preserve_dup_deps ; then
+           if $opt_preserve_dup_deps; then
              case "$tmp_libs " in
              *" $func_resolve_sysroot_result "*)
                 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
@@ -7029,12 +8472,12 @@ func_mode_link ()
            func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
-         if test "$link_all_deplibs" != no; then
+         if test no != "$link_all_deplibs"; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
              path=
              case $deplib in
-             -L*) path="$deplib" ;;
+             -L*) path=$deplib ;;
              *.la)
                func_resolve_sysroot "$deplib"
                deplib=$func_resolve_sysroot_result
@@ -7042,12 +8485,12 @@ func_mode_link ()
                dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
                *)
                  absdir=`cd "$dir" && pwd`
                  if test -z "$absdir"; then
-                   func_warning "cannot determine absolute directory name of \`$dir'"
-                   absdir="$dir"
+                   func_warning "cannot determine absolute directory name of '$dir'"
+                   absdir=$dir
                  fi
                  ;;
                esac
@@ -7055,35 +8498,35 @@ func_mode_link ()
                case $host in
                *-*-darwin*)
                  depdepl=
-                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-                 if test -n "$deplibrary_names" ; then
-                   for tmp in $deplibrary_names ; do
+                 eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+                 if test -n "$deplibrary_names"; then
+                   for tmp in $deplibrary_names; do
                      depdepl=$tmp
                    done
-                   if test -f "$absdir/$objdir/$depdepl" ; then
-                     depdepl="$absdir/$objdir/$depdepl"
-                     darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                   if test -f "$absdir/$objdir/$depdepl"; then
+                     depdepl=$absdir/$objdir/$depdepl
+                     darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
                       if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+                     func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
                      path=
                    fi
                  fi
                  ;;
                *)
-                 path="-L$absdir/$objdir"
+                 path=-L$absdir/$objdir
                  ;;
                esac
                else
-                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                  test -z "$libdir" && \
-                   func_fatal_error "\`$deplib' is not a valid libtool archive"
+                   func_fatal_error "'$deplib' is not a valid libtool archive"
                  test "$absdir" != "$libdir" && \
-                   func_warning "\`$deplib' seems to be moved"
+                   func_warning "'$deplib' seems to be moved"
 
-                 path="-L$absdir"
+                 path=-L$absdir
                fi
                ;;
              esac
@@ -7095,23 +8538,23 @@ func_mode_link ()
          fi # link_all_deplibs != no
        fi # linkmode = lib
       done # for deplib in $libs
-      if test "$pass" = link; then
-       if test "$linkmode" = "prog"; then
+      if test link = "$pass"; then
+       if test prog = "$linkmode"; then
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
       fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
+      dependency_libs=$newdependency_libs
+      if test dlpreopen = "$pass"; then
        # Link the dlpreopened libraries before other libraries
        for deplib in $save_deplibs; do
          deplibs="$deplib $deplibs"
        done
       fi
-      if test "$pass" != dlopen; then
-       if test "$pass" != conv; then
+      if test dlopen != "$pass"; then
+       test conv = "$pass" || {
          # Make sure lib_search_path contains only unique directories.
          lib_search_path=
          for dir in $newlib_search_path; do
@@ -7121,12 +8564,12 @@ func_mode_link ()
            esac
          done
          newlib_search_path=
-       fi
+       }
 
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
-       else
+       if test prog,link = "$linkmode,$pass"; then
          vars="compile_deplibs finalize_deplibs"
+       else
+         vars=deplibs
        fi
        for var in $vars dependency_libs; do
          # Add libraries to $var in reverse order
@@ -7184,62 +8627,93 @@ func_mode_link ()
          eval $var=\"$tmp_libs\"
        done # for var
       fi
+
+      # Add Sun CC postdeps if required:
+      test CXX = "$tagname" && {
+        case $host_os in
+        linux*)
+          case `$CC -V 2>&1 | sed 5q` in
+          *Sun\ C*) # Sun C++ 5.9
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+
+        solaris*)
+          func_cc_basename "$CC"
+          case $func_cc_basename_result in
+          CC* | sunCC*)
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+        esac
+      }
+
       # Last step: remove runtime libs from dependency_libs
       # (they stay in deplibs)
       tmp_libs=
-      for i in $dependency_libs ; do
+      for i in $dependency_libs; do
        case " $predeps $postdeps $compiler_lib_search_path " in
        *" $i "*)
-         i=""
+         i=
          ;;
        esac
-       if test -n "$i" ; then
+       if test -n "$i"; then
          func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
     done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
+    if test prog = "$linkmode"; then
+      dlfiles=$newdlfiles
     fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
+    if test prog = "$linkmode" || test lib = "$linkmode"; then
+      dlprefiles=$newdlprefiles
     fi
 
     case $linkmode in
     oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for archives"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+       func_warning "'-dlopen' is ignored for archives"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-       func_warning "\`-l' and \`-L' are ignored for archives" ;;
+       func_warning "'-l' and '-L' are ignored for archives" ;;
       esac
 
       test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for archives"
+       func_warning "'-rpath' is ignored for archives"
 
       test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for archives"
+       func_warning "'-R' is ignored for archives"
 
       test -n "$vinfo" && \
-       func_warning "\`-version-info/-version-number' is ignored for archives"
+       func_warning "'-version-info/-version-number' is ignored for archives"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for archives"
+       func_warning "'-release' is ignored for archives"
 
       test -n "$export_symbols$export_symbols_regex" && \
-       func_warning "\`-export-symbols' is ignored for archives"
+       func_warning "'-export-symbols' is ignored for archives"
 
       # Now set the variables for building old libraries.
       build_libtool_libs=no
-      oldlibs="$output"
+      oldlibs=$output
       func_append objs "$old_deplibs"
       ;;
 
     lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
+      # Make sure we only generate libraries of the form 'libNAME.la'.
       case $outputname in
       lib*)
        func_stripname 'lib' '.la' "$outputname"
@@ -7248,10 +8722,10 @@ func_mode_link ()
        eval libname=\"$libname_spec\"
        ;;
       *)
-       test "$module" = no && \
-         func_fatal_help "libtool library \`$output' must begin with \`lib'"
+       test no = "$module" \
+         && func_fatal_help "libtool library '$output' must begin with 'lib'"
 
-       if test "$need_lib_prefix" != no; then
+       if test no != "$need_lib_prefix"; then
          # Add the "lib" prefix for modules if required
          func_stripname '' '.la' "$outputname"
          name=$func_stripname_result
@@ -7265,8 +8739,8 @@ func_mode_link ()
       esac
 
       if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+       if test pass_all != "$deplibs_check_method"; then
+         func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
        else
          echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
@@ -7275,21 +8749,21 @@ func_mode_link ()
        fi
       fi
 
-      test "$dlself" != no && \
-       func_warning "\`-dlopen self' is ignored for libtool libraries"
+      test no = "$dlself" \
+       || func_warning "'-dlopen self' is ignored for libtool libraries"
 
       set dummy $rpath
       shift
-      test "$#" -gt 1 && \
-       func_warning "ignoring multiple \`-rpath's for a libtool library"
+      test 1 -lt "$#" \
+       && func_warning "ignoring multiple '-rpath's for a libtool library"
 
-      install_libdir="$1"
+      install_libdir=$1
 
       oldlibs=
       if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
+       if test yes = "$build_libtool_libs"; then
          # Building a libtool convenience library.
-         # Some compilers have problems with a `.al' extension so
+         # Some compilers have problems with a '.al' extension so
          # convenience libraries should have the same extension an
          # archive normally would.
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
@@ -7298,20 +8772,20 @@ func_mode_link ()
        fi
 
        test -n "$vinfo" && \
-         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+         func_warning "'-version-info/-version-number' is ignored for convenience libraries"
 
        test -n "$release" && \
-         func_warning "\`-release' is ignored for convenience libraries"
+         func_warning "'-release' is ignored for convenience libraries"
       else
 
        # Parse the version information argument.
-       save_ifs="$IFS"; IFS=':'
+       save_ifs=$IFS; IFS=:
        set dummy $vinfo 0 0 0
        shift
-       IFS="$save_ifs"
+       IFS=$save_ifs
 
        test -n "$7" && \
-         func_fatal_help "too many parameters to \`-version-info'"
+         func_fatal_help "too many parameters to '-version-info'"
 
        # convert absolute version numbers to libtool ages
        # this retains compatibility with .la files and attempts
@@ -7319,42 +8793,42 @@ func_mode_link ()
 
        case $vinfo_number in
        yes)
-         number_major="$1"
-         number_minor="$2"
-         number_revision="$3"
+         number_major=$1
+         number_minor=$2
+         number_revision=$3
          #
          # There are really only two kinds -- those that
          # use the current revision as the major version
          # and those that subtract age and use age as
          # a minor version.  But, then there is irix
-         # which has an extra 1 added just for fun
+         # that has an extra 1 added just for fun
          #
          case $version_type in
          # correct linux to gnu/linux during the next big refactor
-         darwin|linux|osf|windows|none)
+         darwin|freebsd-elf|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
-           age="$number_minor"
-           revision="$number_revision"
+           age=$number_minor
+           revision=$number_revision
            ;;
-         freebsd-aout|freebsd-elf|qnx|sunos)
-           current="$number_major"
-           revision="$number_minor"
-           age="0"
+         freebsd-aout|qnx|sunos)
+           current=$number_major
+           revision=$number_minor
+           age=0
            ;;
          irix|nonstopux)
            func_arith $number_major + $number_minor
            current=$func_arith_result
-           age="$number_minor"
-           revision="$number_minor"
+           age=$number_minor
+           revision=$number_minor
            lt_irix_increment=no
            ;;
          esac
          ;;
        no)
-         current="$1"
-         revision="$2"
-         age="$3"
+         current=$1
+         revision=$2
+         age=$3
          ;;
        esac
 
@@ -7362,30 +8836,30 @@ func_mode_link ()
        case $current in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "CURRENT \`$current' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "CURRENT '$current' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        case $revision in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "REVISION \`$revision' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "REVISION '$revision' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        case $age in
        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
        *)
-         func_error "AGE \`$age' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "AGE '$age' must be a nonnegative integer"
+         func_fatal_error "'$vinfo' is not valid version information"
          ;;
        esac
 
        if test "$age" -gt "$current"; then
-         func_error "AGE \`$age' is greater than the current interface number \`$current'"
-         func_fatal_error "\`$vinfo' is not valid version information"
+         func_error "AGE '$age' is greater than the current interface number '$current'"
+         func_fatal_error "'$vinfo' is not valid version information"
        fi
 
        # Calculate the version variables.
@@ -7400,26 +8874,36 @@ func_mode_link ()
          # verstring for coding it into the library header
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix="$major.$age.$revision"
+         versuffix=$major.$age.$revision
          # Darwin ld doesn't like 0 for these options...
          func_arith $current + 1
          minor_current=$func_arith_result
-         xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+         xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
          verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+          # On Darwin other compilers
+          case $CC in
+              nagfor*)
+                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+                  ;;
+              *)
+                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+                  ;;
+          esac
          ;;
 
        freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
+         major=.$current
+         versuffix=.$current.$revision
          ;;
 
        freebsd-elf)
-         major=".$current"
-         versuffix=".$current"
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix=$major.$age.$revision
          ;;
 
        irix | nonstopux)
-         if test "X$lt_irix_increment" = "Xno"; then
+         if test no = "$lt_irix_increment"; then
            func_arith $current - $age
          else
            func_arith $current - $age + 1
@@ -7430,69 +8914,74 @@ func_mode_link ()
            nonstopux) verstring_prefix=nonstopux ;;
            *)         verstring_prefix=sgi ;;
          esac
-         verstring="$verstring_prefix$major.$revision"
+         verstring=$verstring_prefix$major.$revision
 
          # Add in all the interfaces that we are compatible with.
          loop=$revision
-         while test "$loop" -ne 0; do
+         while test 0 -ne "$loop"; do
            func_arith $revision - $loop
            iface=$func_arith_result
            func_arith $loop - 1
            loop=$func_arith_result
-           verstring="$verstring_prefix$major.$iface:$verstring"
+           verstring=$verstring_prefix$major.$iface:$verstring
          done
 
-         # Before this point, $major must not contain `.'.
+         # Before this point, $major must not contain '.'.
          major=.$major
-         versuffix="$major.$revision"
+         versuffix=$major.$revision
          ;;
 
        linux) # correct to gnu/linux during the next big refactor
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix="$major.$age.$revision"
+         versuffix=$major.$age.$revision
          ;;
 
        osf)
          func_arith $current - $age
          major=.$func_arith_result
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
+         versuffix=.$current.$age.$revision
+         verstring=$current.$age.$revision
 
          # Add in all the interfaces that we are compatible with.
          loop=$age
-         while test "$loop" -ne 0; do
+         while test 0 -ne "$loop"; do
            func_arith $current - $loop
            iface=$func_arith_result
            func_arith $loop - 1
            loop=$func_arith_result
-           verstring="$verstring:${iface}.0"
+           verstring=$verstring:$iface.0
          done
 
          # Make executables depend on our current version.
-         func_append verstring ":${current}.0"
+         func_append verstring ":$current.0"
          ;;
 
        qnx)
-         major=".$current"
-         versuffix=".$current"
+         major=.$current
+         versuffix=.$current
+         ;;
+
+       sco)
+         major=.$current
+         versuffix=.$current
          ;;
 
        sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
+         major=.$current
+         versuffix=.$current.$revision
          ;;
 
        windows)
          # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
+         # extension on DOS 8.3 file systems.
          func_arith $current - $age
          major=$func_arith_result
-         versuffix="-$major"
+         versuffix=-$major
          ;;
 
        *)
-         func_fatal_configuration "unknown library version type \`$version_type'"
+         func_fatal_configuration "unknown library version type '$version_type'"
          ;;
        esac
 
@@ -7506,42 +8995,45 @@ func_mode_link ()
            verstring=
            ;;
          *)
-           verstring="0.0"
+           verstring=0.0
            ;;
          esac
-         if test "$need_version" = no; then
+         if test no = "$need_version"; then
            versuffix=
          else
-           versuffix=".0.0"
+           versuffix=.0.0
          fi
        fi
 
        # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
+       if test yes,no = "$avoid_version,$need_version"; then
          major=
          versuffix=
-         verstring=""
+         verstring=
        fi
 
        # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           func_warning "undefined symbols not allowed in $host shared libraries"
-           build_libtool_libs=no
-           build_old_libs=yes
+       if test yes = "$allow_undefined"; then
+         if test unsupported = "$allow_undefined_flag"; then
+           if test yes = "$build_old_libs"; then
+             func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+             build_libtool_libs=no
+           else
+             func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+           fi
          fi
        else
          # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
+         allow_undefined_flag=$no_undefined_flag
        fi
 
       fi
 
-      func_generate_dlsyms "$libname" "$libname" "yes"
+      func_generate_dlsyms "$libname" "$libname" :
       func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
+      test " " = "$libobjs" && libobjs=
 
-      if test "$opt_mode" != relink; then
+      if test relink != "$opt_mode"; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -7550,8 +9042,8 @@ func_mode_link ()
          case $p in
            *.$objext | *.gcno)
               ;;
-           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-              if test "X$precious_files_regex" != "X"; then
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+              if test -n "$precious_files_regex"; then
                 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
                 then
                   continue
@@ -7567,11 +9059,11 @@ func_mode_link ()
       fi
 
       # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
        func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
@@ -7592,13 +9084,13 @@ func_mode_link ()
          *) func_append finalize_rpath " $libdir" ;;
          esac
        done
-       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+       if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
          dependency_libs="$temp_xrpath $dependency_libs"
        fi
       fi
 
       # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
+      old_dlfiles=$dlfiles
       dlfiles=
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
@@ -7608,7 +9100,7 @@ func_mode_link ()
       done
 
       # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
+      old_dlprefiles=$dlprefiles
       dlprefiles=
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
@@ -7617,7 +9109,7 @@ func_mode_link ()
        esac
       done
 
-      if test "$build_libtool_libs" = yes; then
+      if test yes = "$build_libtool_libs"; then
        if test -n "$rpath"; then
          case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
@@ -7641,7 +9133,7 @@ func_mode_link ()
            ;;
          *)
            # Add libc to deplibs on all other systems if necessary.
-           if test "$build_libtool_need_lc" = "yes"; then
+           if test yes = "$build_libtool_need_lc"; then
              func_append deplibs " -lc"
            fi
            ;;
@@ -7657,9 +9149,9 @@ func_mode_link ()
        # I'm not sure if I'm treating the release correctly.  I think
        # release should show up in the -l (ie -lgmp5) so we don't want to
        # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
+       release=
+       versuffix=
+       major=
        newdeplibs=
        droppeddeps=no
        case $deplibs_check_method in
@@ -7688,20 +9180,20 @@ EOF
              -l*)
                func_stripname -l '' "$i"
                name=$func_stripname_result
-               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                  case " $predeps $postdeps " in
                  *" $i "*)
                    func_append newdeplibs " $i"
-                   i=""
+                   i=
                    ;;
                  esac
                fi
-               if test -n "$i" ; then
+               if test -n "$i"; then
                  libname=`eval "\\$ECHO \"$libname_spec\""`
                  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                  set dummy $deplib_matches; shift
                  deplib_match=$1
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                    func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
@@ -7731,20 +9223,20 @@ EOF
                $opt_dry_run || $RM conftest
                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
                  ldd_output=`ldd conftest`
-                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                 if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                    case " $predeps $postdeps " in
                    *" $i "*)
                      func_append newdeplibs " $i"
-                     i=""
+                     i=
                      ;;
                    esac
                  fi
-                 if test -n "$i" ; then
+                 if test -n "$i"; then
                    libname=`eval "\\$ECHO \"$libname_spec\""`
                    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                    set dummy $deplib_matches; shift
                    deplib_match=$1
-                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                      func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
@@ -7781,24 +9273,24 @@ EOF
            -l*)
              func_stripname -l '' "$a_deplib"
              name=$func_stripname_result
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
                  func_append newdeplibs " $a_deplib"
-                 a_deplib=""
+                 a_deplib=
                  ;;
                esac
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
                if test -n "$file_magic_glob"; then
                  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
                else
                  libnameglob=$libname
                fi
-               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+               test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 if test "$want_nocaseglob" = yes; then
+                 if test yes = "$want_nocaseglob"; then
                    shopt -s nocaseglob
                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
                    $nocaseglob
@@ -7816,25 +9308,25 @@ EOF
                      # We might still enter an endless loop, since a link
                      # loop can be closed while we follow links,
                      # but so what?
-                     potlib="$potent_lib"
+                     potlib=$potent_lib
                      while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+                       potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
                        case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+                       [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+                       *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
                        func_append newdeplibs " $a_deplib"
-                       a_deplib=""
+                       a_deplib=
                        break 2
                      fi
                  done
                done
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                droppeddeps=yes
                echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7842,7 +9334,7 @@ EOF
                echo "*** you link to this library.  But I can only do this if you have a"
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
+               if test -z "$potlib"; then
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                else
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7865,30 +9357,30 @@ EOF
            -l*)
              func_stripname -l '' "$a_deplib"
              name=$func_stripname_result
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
                  func_append newdeplibs " $a_deplib"
-                 a_deplib=""
+                 a_deplib=
                  ;;
                esac
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                  for potent_lib in $potential_libs; do
-                   potlib="$potent_lib" # see symlink-check above in file_magic test
+                   potlib=$potent_lib # see symlink-check above in file_magic test
                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
                      func_append newdeplibs " $a_deplib"
-                     a_deplib=""
+                     a_deplib=
                      break 2
                    fi
                  done
                done
              fi
-             if test -n "$a_deplib" ; then
+             if test -n "$a_deplib"; then
                droppeddeps=yes
                echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
@@ -7896,7 +9388,7 @@ EOF
                echo "*** you link to this library.  But I can only do this if you have a"
                echo "*** shared version of the library, which you do not appear to have"
                echo "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
+               if test -z "$potlib"; then
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                else
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
@@ -7912,18 +9404,18 @@ EOF
          done # Gone through all deplibs.
          ;;
        none | unknown | *)
-         newdeplibs=""
+         newdeplibs=
          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-           for i in $predeps $postdeps ; do
+         if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+           for i in $predeps $postdeps; do
              # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
            done
          fi
          case $tmp_deplibs in
          *[!\  \ ]*)
            echo
-           if test "X$deplibs_check_method" = "Xnone"; then
+           if test none = "$deplibs_check_method"; then
              echo "*** Warning: inter-library dependencies are not supported in this platform."
            else
              echo "*** Warning: inter-library dependencies are not known to be supported."
@@ -7947,8 +9439,8 @@ EOF
          ;;
        esac
 
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
+       if test yes = "$droppeddeps"; then
+         if test yes = "$module"; then
            echo
            echo "*** Warning: libtool could not satisfy all declared inter-library"
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
@@ -7957,12 +9449,12 @@ EOF
            if test -z "$global_symbol_pipe"; then
              echo
              echo "*** However, this would only work if libtool was able to extract symbol"
-             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
              echo "*** not find such a program.  So, this module is probably useless."
-             echo "*** \`nm' from GNU binutils and a full rebuild may help."
+             echo "*** 'nm' from GNU binutils and a full rebuild may help."
            fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
+           if test no = "$build_old_libs"; then
+             oldlibs=$output_objdir/$libname.$libext
              build_libtool_libs=module
              build_old_libs=yes
            else
@@ -7973,14 +9465,14 @@ EOF
            echo "*** automatically added whenever a program is linked with this library"
            echo "*** or is declared to -dlopen it."
 
-           if test "$allow_undefined" = no; then
+           if test no = "$allow_undefined"; then
              echo
              echo "*** Since this library must not contain undefined symbols,"
              echo "*** because either the platform does not support them or"
              echo "*** it was explicitly requested with -no-undefined,"
              echo "*** libtool will only create a static version of it."
-             if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
+             if test no = "$build_old_libs"; then
+               oldlibs=$output_objdir/$libname.$libext
                build_libtool_libs=module
                build_old_libs=yes
              else
@@ -8026,7 +9518,7 @@ EOF
        *) func_append new_libs " $deplib" ;;
        esac
       done
-      deplibs="$new_libs"
+      deplibs=$new_libs
 
       # All the library-specific variables (install_libdir is set above).
       library_names=
@@ -8034,25 +9526,25 @@ EOF
       dlname=
 
       # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       # Remove ${wl} instances when linking with ld.
+      if test yes = "$build_libtool_libs"; then
+       # Remove $wl instances when linking with ld.
        # FIXME: should test the right _cmds variable.
        case $archive_cmds in
          *\$LD\ *) wl= ;;
         esac
-       if test "$hardcode_into_libs" = yes; then
+       if test yes = "$hardcode_into_libs"; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
-         rpath="$finalize_rpath"
-         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+         rpath=$finalize_rpath
+         test relink = "$opt_mode" || rpath=$compile_rpath$rpath
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
                func_replace_sysroot "$libdir"
                libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
+                 hardcode_libdirs=$libdir
                else
                  # Just accumulate the unique libdirs.
                  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8077,7 +9569,7 @@ EOF
          # Substitute the hardcoded libdirs into the rpath.
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
+           libdir=$hardcode_libdirs
            eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
@@ -8091,8 +9583,8 @@ EOF
          test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
        fi
 
-       shlibpath="$finalize_shlibpath"
-       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       shlibpath=$finalize_shlibpath
+       test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -8102,19 +9594,19 @@ EOF
        eval library_names=\"$library_names_spec\"
        set dummy $library_names
        shift
-       realname="$1"
+       realname=$1
        shift
 
        if test -n "$soname_spec"; then
          eval soname=\"$soname_spec\"
        else
-         soname="$realname"
+         soname=$realname
        fi
        if test -z "$dlname"; then
          dlname=$soname
        fi
 
-       lib="$output_objdir/$realname"
+       lib=$output_objdir/$realname
        linknames=
        for link
        do
@@ -8128,7 +9620,7 @@ EOF
        delfiles=
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-         export_symbols="$output_objdir/$libname.uexp"
+         export_symbols=$output_objdir/$libname.uexp
          func_append delfiles " $export_symbols"
        fi
 
@@ -8137,31 +9629,31 @@ EOF
        cygwin* | mingw* | cegcc*)
          if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
            # exporting using user supplied symfile
-           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+           func_dll_def_p "$export_symbols" || {
              # and it's NOT already a .def file. Must figure out
              # which of the given symbols are data symbols and tag
              # them as such. So, trigger use of export_symbols_cmds.
              # export_symbols gets reassigned inside the "prepare
              # the list of exported symbols" if statement, so the
              # include_expsyms logic still works.
-             orig_export_symbols="$export_symbols"
+             orig_export_symbols=$export_symbols
              export_symbols=
              always_export_symbols=yes
-           fi
+           }
          fi
          ;;
        esac
 
        # Prepare the list of exported symbols
        if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           func_verbose "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
+         if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+           func_verbose "generating symbol list for '$libname.la'"
+           export_symbols=$output_objdir/$libname.exp
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
-           save_ifs="$IFS"; IFS='~'
+           save_ifs=$IFS; IFS='~'
            for cmd1 in $cmds; do
-             IFS="$save_ifs"
+             IFS=$save_ifs
              # Take the normal branch if the nm_file_list_spec branch
              # doesn't work or if tool conversion is not needed.
              case $nm_file_list_spec~$to_tool_file_cmd in
@@ -8175,7 +9667,7 @@ EOF
                  try_normal_branch=no
                  ;;
              esac
-             if test "$try_normal_branch" = yes \
+             if test yes = "$try_normal_branch" \
                 && { test "$len" -lt "$max_cmd_len" \
                      || test "$max_cmd_len" -le -1; }
              then
@@ -8186,7 +9678,7 @@ EOF
                output_la=$func_basename_result
                save_libobjs=$libobjs
                save_output=$output
-               output=${output_objdir}/${output_la}.nm
+               output=$output_objdir/$output_la.nm
                func_to_tool_file "$output"
                libobjs=$nm_file_list_spec$func_to_tool_file_result
                func_append delfiles " $output"
@@ -8209,8 +9701,8 @@ EOF
                break
              fi
            done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+           IFS=$save_ifs
+           if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
              func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
            fi
@@ -8218,16 +9710,16 @@ EOF
        fi
 
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         tmp_export_symbols="$export_symbols"
-         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+         tmp_export_symbols=$export_symbols
+         test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
        fi
 
-       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+       if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
          # The given exports_symbols file has to be filtered, so filter it.
-         func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+         func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
          # FIXME: $output_objdir/$libname.filter potentially contains lots of
-         # 's' commands which not all seds can handle. GNU sed should be fine
+         # 's' commands, which not all seds can handle. GNU sed should be fine
          # though. Also, the filter scales superlinearly with the number of
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
@@ -8246,11 +9738,11 @@ EOF
            ;;
          esac
        done
-       deplibs="$tmp_deplibs"
+       deplibs=$tmp_deplibs
 
        if test -n "$convenience"; then
          if test -n "$whole_archive_flag_spec" &&
-           test "$compiler_needs_object" = yes &&
+           test yes = "$compiler_needs_object" &&
            test -z "$libobjs"; then
            # extract the archives, so we have objects to list.
            # TODO: could optimize this to just extract one archive.
@@ -8261,7 +9753,7 @@ EOF
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
            test "X$libobjs" = "X " && libobjs=
          else
-           gentop="$output_objdir/${outputname}x"
+           gentop=$output_objdir/${outputname}x
            func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
@@ -8270,18 +9762,18 @@ EOF
          fi
        fi
 
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+       if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
          func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$opt_mode" = relink; then
+       if test relink = "$opt_mode"; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
        # Do each of the archive commands.
-       if test "$module" = yes && test -n "$module_cmds" ; then
+       if test yes = "$module" && test -n "$module_cmds"; then
          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
            eval test_cmds=\"$module_expsym_cmds\"
            cmds=$module_expsym_cmds
@@ -8299,7 +9791,7 @@ EOF
          fi
        fi
 
-       if test "X$skipped_export" != "X:" &&
+       if test : != "$skipped_export" &&
           func_len " $test_cmds" &&
           len=$func_len_result &&
           test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
@@ -8332,8 +9824,8 @@ EOF
          last_robj=
          k=1
 
-         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-           output=${output_objdir}/${output_la}.lnkscript
+         if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+           output=$output_objdir/$output_la.lnkscript
            func_verbose "creating GNU ld script: $output"
            echo 'INPUT (' > $output
            for obj in $save_libobjs
@@ -8345,14 +9837,14 @@ EOF
            func_append delfiles " $output"
            func_to_tool_file "$output"
            output=$func_to_tool_file_result
-         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-           output=${output_objdir}/${output_la}.lnk
+         elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+           output=$output_objdir/$output_la.lnk
            func_verbose "creating linker input file list: $output"
            : > $output
            set x $save_libobjs
            shift
            firstobj=
-           if test "$compiler_needs_object" = yes; then
+           if test yes = "$compiler_needs_object"; then
              firstobj="$1 "
              shift
            fi
@@ -8367,7 +9859,7 @@ EOF
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
-             output=$output_objdir/$output_la-${k}.$objext
+             output=$output_objdir/$output_la-$k.$objext
              eval test_cmds=\"$reload_cmds\"
              func_len " $test_cmds"
              len0=$func_len_result
@@ -8379,13 +9871,13 @@ EOF
                func_len " $obj"
                func_arith $len + $func_len_result
                len=$func_arith_result
-               if test "X$objlist" = X ||
+               if test -z "$objlist" ||
                   test "$len" -lt "$max_cmd_len"; then
                  func_append objlist " $obj"
                else
                  # The command $test_cmds is almost too long, add a
                  # command to the queue.
-                 if test "$k" -eq 1 ; then
+                 if test 1 -eq "$k"; then
                    # The first file doesn't have a previous command to add.
                    reload_objs=$objlist
                    eval concat_cmds=\"$reload_cmds\"
@@ -8395,10 +9887,10 @@ EOF
                    reload_objs="$objlist $last_robj"
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                  fi
-                 last_robj=$output_objdir/$output_la-${k}.$objext
+                 last_robj=$output_objdir/$output_la-$k.$objext
                  func_arith $k + 1
                  k=$func_arith_result
-                 output=$output_objdir/$output_la-${k}.$objext
+                 output=$output_objdir/$output_la-$k.$objext
                  objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
@@ -8410,9 +9902,9 @@ EOF
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              reload_objs="$objlist $last_robj"
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+             eval concat_cmds=\"\$concat_cmds$reload_cmds\"
              if test -n "$last_robj"; then
-               eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+               eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
              fi
              func_append delfiles " $output"
 
@@ -8420,9 +9912,9 @@ EOF
              output=
            fi
 
-           if ${skipped_export-false}; then
-             func_verbose "generating symbol list for \`$libname.la'"
-             export_symbols="$output_objdir/$libname.exp"
+           ${skipped_export-false} && {
+             func_verbose "generating symbol list for '$libname.la'"
+             export_symbols=$output_objdir/$libname.exp
              $opt_dry_run || $RM $export_symbols
              libobjs=$output
              # Append the command to create the export file.
@@ -8431,16 +9923,16 @@ EOF
              if test -n "$last_robj"; then
                eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
              fi
-           fi
+           }
 
            test -n "$save_libobjs" &&
              func_verbose "creating a temporary reloadable object file: $output"
 
            # Loop through the commands generated above and execute them.
-           save_ifs="$IFS"; IFS='~'
+           save_ifs=$IFS; IFS='~'
            for cmd in $concat_cmds; do
-             IFS="$save_ifs"
-             $opt_silent || {
+             IFS=$save_ifs
+             $opt_quiet || {
                  func_quote_for_expand "$cmd"
                  eval "func_echo $func_quote_for_expand_result"
              }
@@ -8448,7 +9940,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$opt_mode" = relink; then
+               if test relink = "$opt_mode"; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -8457,7 +9949,7 @@ EOF
                exit $lt_exit
              }
            done
-           IFS="$save_ifs"
+           IFS=$save_ifs
 
            if test -n "$export_symbols_regex" && ${skipped_export-false}; then
              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
@@ -8465,18 +9957,18 @@ EOF
            fi
          fi
 
-          if ${skipped_export-false}; then
+          ${skipped_export-false} && {
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
-             tmp_export_symbols="$export_symbols"
-             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             tmp_export_symbols=$export_symbols
+             test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
            fi
 
            if test -n "$orig_export_symbols"; then
              # The given exports_symbols file has to be filtered, so filter it.
-             func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+             func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
              # FIXME: $output_objdir/$libname.filter potentially contains lots of
-             # 's' commands which not all seds can handle. GNU sed should be fine
+             # 's' commands, which not all seds can handle. GNU sed should be fine
              # though. Also, the filter scales superlinearly with the number of
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
@@ -8485,7 +9977,7 @@ EOF
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
-         fi
+         }
 
          libobjs=$output
          # Restore the value of output.
@@ -8499,7 +9991,7 @@ EOF
          # value of $libobjs for piecewise linking.
 
          # Do each of the archive commands.
-         if test "$module" = yes && test -n "$module_cmds" ; then
+         if test yes = "$module" && test -n "$module_cmds"; then
            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
              cmds=$module_expsym_cmds
            else
@@ -8521,7 +10013,7 @@ EOF
 
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
@@ -8529,11 +10021,12 @@ EOF
          test "X$libobjs" = "X " && libobjs=
        fi
 
-       save_ifs="$IFS"; IFS='~'
+       save_ifs=$IFS; IFS='~'
        for cmd in $cmds; do
-         IFS="$save_ifs"
+         IFS=$sp$nl
          eval cmd=\"$cmd\"
-         $opt_silent || {
+         IFS=$save_ifs
+         $opt_quiet || {
            func_quote_for_expand "$cmd"
            eval "func_echo $func_quote_for_expand_result"
          }
@@ -8541,7 +10034,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$opt_mode" = relink; then
+           if test relink = "$opt_mode"; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -8550,10 +10043,10 @@ EOF
            exit $lt_exit
          }
        done
-       IFS="$save_ifs"
+       IFS=$save_ifs
 
        # Restore the uninstalled library and exit
-       if test "$opt_mode" = relink; then
+       if test relink = "$opt_mode"; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -8573,39 +10066,39 @@ EOF
        done
 
        # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
+       if test yes = "$module" || test yes = "$export_dynamic"; then
          # On all known operating systems, these are identical.
-         dlname="$soname"
+         dlname=$soname
        fi
       fi
       ;;
 
     obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for objects"
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+       func_warning "'-dlopen' is ignored for objects"
       fi
 
       case " $deplibs" in
       *\ -l* | *\ -L*)
-       func_warning "\`-l' and \`-L' are ignored for objects" ;;
+       func_warning "'-l' and '-L' are ignored for objects" ;;
       esac
 
       test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for objects"
+       func_warning "'-rpath' is ignored for objects"
 
       test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for objects"
+       func_warning "'-R' is ignored for objects"
 
       test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for objects"
+       func_warning "'-version-info' is ignored for objects"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for objects"
+       func_warning "'-release' is ignored for objects"
 
       case $output in
       *.lo)
        test -n "$objs$old_deplibs" && \
-         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+         func_fatal_error "cannot build library object '$output' from non-libtool objects"
 
        libobj=$output
        func_lo2o "$libobj"
@@ -8613,7 +10106,7 @@ EOF
        ;;
       *)
        libobj=
-       obj="$output"
+       obj=$output
        ;;
       esac
 
@@ -8626,17 +10119,19 @@ EOF
       # the extraction.
       reload_conv_objs=
       gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
+      # if reload_cmds runs $LD directly, get rid of -Wl from
+      # whole_archive_flag_spec and hope we can get by with turning comma
+      # into space.
+      case $reload_cmds in
+        *\$LD[\ \$]*) wl= ;;
+      esac
       if test -n "$convenience"; then
        if test -n "$whole_archive_flag_spec"; then
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+         test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+         reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
        else
-         gentop="$output_objdir/${obj}x"
+         gentop=$output_objdir/${obj}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
@@ -8645,12 +10140,12 @@ EOF
       fi
 
       # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
 
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
 
-      output="$obj"
+      output=$obj
       func_execute_cmds "$reload_cmds" 'exit $?'
 
       # Exit if we aren't doing a library object file.
@@ -8662,7 +10157,7 @@ EOF
        exit $EXIT_SUCCESS
       fi
 
-      if test "$build_libtool_libs" != yes; then
+      test yes = "$build_libtool_libs" || {
        if test -n "$gentop"; then
          func_show_eval '${RM}r "$gentop"'
        fi
@@ -8672,12 +10167,12 @@ EOF
        # $show "echo timestamp > $libobj"
        # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
        exit $EXIT_SUCCESS
-      fi
+      }
 
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
+      if test -n "$pic_flag" || test default != "$pic_mode"; then
        # Only do commands if we really have different PIC objects.
        reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
+       output=$libobj
        func_execute_cmds "$reload_cmds" 'exit $?'
       fi
 
@@ -8694,16 +10189,14 @@ EOF
                  output=$func_stripname_result.exe;;
       esac
       test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for programs"
+       func_warning "'-version-info' is ignored for programs"
 
       test -n "$release" && \
-       func_warning "\`-release' is ignored for programs"
+       func_warning "'-release' is ignored for programs"
 
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-       && test "$dlopen_self" = unknown \
-       && test "$dlopen_self_static" = unknown && \
-         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+      $preload \
+       && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+       && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
 
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
@@ -8717,11 +10210,11 @@ EOF
       *-*-darwin*)
        # Don't allow lazy linking, it breaks C++ global constructors
        # But is supposedly fixed on 10.4 or later (yay!).
-       if test "$tagname" = CXX ; then
+       if test CXX = "$tagname"; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             func_append compile_command " ${wl}-bind_at_load"
-             func_append finalize_command " ${wl}-bind_at_load"
+             func_append compile_command " $wl-bind_at_load"
+             func_append finalize_command " $wl-bind_at_load"
            ;;
          esac
        fi
@@ -8757,7 +10250,7 @@ EOF
        *) func_append new_libs " $deplib" ;;
        esac
       done
-      compile_deplibs="$new_libs"
+      compile_deplibs=$new_libs
 
 
       func_append compile_command " $compile_deplibs"
@@ -8781,7 +10274,7 @@ EOF
        if test -n "$hardcode_libdir_flag_spec"; then
          if test -n "$hardcode_libdir_separator"; then
            if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+             hardcode_libdirs=$libdir
            else
              # Just accumulate the unique libdirs.
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8804,7 +10297,7 @@ EOF
        fi
        case $host in
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+         testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
@@ -8821,10 +10314,10 @@ EOF
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
         test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
+       libdir=$hardcode_libdirs
        eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      compile_rpath="$rpath"
+      compile_rpath=$rpath
 
       rpath=
       hardcode_libdirs=
@@ -8832,7 +10325,7 @@ EOF
        if test -n "$hardcode_libdir_flag_spec"; then
          if test -n "$hardcode_libdir_separator"; then
            if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+             hardcode_libdirs=$libdir
            else
              # Just accumulate the unique libdirs.
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
@@ -8857,45 +10350,43 @@ EOF
       # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&
         test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
+       libdir=$hardcode_libdirs
        eval rpath=\" $hardcode_libdir_flag_spec\"
       fi
-      finalize_rpath="$rpath"
+      finalize_rpath=$rpath
 
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+      if test -n "$libobjs" && test yes = "$build_old_libs"; then
        # Transform all the library objects into standard objects.
        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+      func_generate_dlsyms "$outputname" "@PROGRAM@" false
 
       # template prelinking step
       if test -n "$prelink_cmds"; then
        func_execute_cmds "$prelink_cmds" 'exit $?'
       fi
 
-      wrappers_required=yes
+      wrappers_required=:
       case $host in
       *cegcc* | *mingw32ce*)
         # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
+        wrappers_required=false
         ;;
       *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
+        test yes = "$build_libtool_libs" || wrappers_required=false
         ;;
       *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
+        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+          wrappers_required=false
         fi
         ;;
       esac
-      if test "$wrappers_required" = no; then
+      $wrappers_required || {
        # Replace the output file specification.
        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-       link_command="$compile_command$compile_rpath"
+       link_command=$compile_command$compile_rpath
 
        # We have no uninstalled library dependencies, so finalize right now.
        exit_status=0
@@ -8908,12 +10399,12 @@ EOF
        fi
 
        # Delete the generated files.
-       if test -f "$output_objdir/${outputname}S.${objext}"; then
-         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       if test -f "$output_objdir/${outputname}S.$objext"; then
+         func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
        fi
 
        exit $exit_status
-      fi
+      }
 
       if test -n "$compile_shlibpath$finalize_shlibpath"; then
        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
@@ -8943,9 +10434,9 @@ EOF
        fi
       fi
 
-      if test "$no_install" = yes; then
+      if test yes = "$no_install"; then
        # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
+       link_command=$compile_var$compile_command$compile_rpath
        # Replace the output file specification.
        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        # Delete the old output file.
@@ -8962,27 +10453,28 @@ EOF
        exit $EXIT_SUCCESS
       fi
 
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
+      case $hardcode_action,$fast_install in
+        relink,*)
+         # Fast installation is not supported
+         link_command=$compile_var$compile_command$compile_rpath
+         relink_command=$finalize_var$finalize_command$finalize_rpath
 
-       func_warning "this platform does not like uninstalled shared libraries"
-       func_warning "\`$output' will be relinked during installation"
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-         else
-           # fast_install is set to needless
-           relink_command=
-         fi
-       else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
-       fi
-      fi
+         func_warning "this platform does not like uninstalled shared libraries"
+         func_warning "'$output' will be relinked during installation"
+         ;;
+        *,yes)
+         link_command=$finalize_var$compile_command$finalize_rpath
+         relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+          ;;
+       *,no)
+         link_command=$compile_var$compile_command$compile_rpath
+         relink_command=$finalize_var$finalize_command$finalize_rpath
+          ;;
+       *,needless)
+         link_command=$finalize_var$compile_command$finalize_rpath
+         relink_command=
+          ;;
+      esac
 
       # Replace the output file specification.
       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
@@ -9039,8 +10531,8 @@ EOF
            func_dirname_and_basename "$output" "" "."
            output_name=$func_basename_result
            output_path=$func_dirname_result
-           cwrappersource="$output_path/$objdir/lt-$output_name.c"
-           cwrapper="$output_path/$output_name.exe"
+           cwrappersource=$output_path/$objdir/lt-$output_name.c
+           cwrapper=$output_path/$output_name.exe
            $RM $cwrappersource $cwrapper
            trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
@@ -9061,7 +10553,7 @@ EOF
            trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
            $opt_dry_run || {
              # note: this script will not be executed, so do not chmod.
-             if test "x$build" = "x$host" ; then
+             if test "x$build" = "x$host"; then
                $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
              else
                func_emit_wrapper no > $func_ltwrapper_scriptname_result
@@ -9084,25 +10576,27 @@ EOF
     # See if we need to build an old-fashioned archive.
     for oldlib in $oldlibs; do
 
-      if test "$build_libtool_libs" = convenience; then
-       oldobjs="$libobjs_save $symfileobj"
-       addlibs="$convenience"
-       build_libtool_libs=no
-      else
-       if test "$build_libtool_libs" = module; then
-         oldobjs="$libobjs_save"
+      case $build_libtool_libs in
+        convenience)
+         oldobjs="$libobjs_save $symfileobj"
+         addlibs=$convenience
          build_libtool_libs=no
-       else
+         ;;
+       module)
+         oldobjs=$libobjs_save
+         addlibs=$old_convenience
+         build_libtool_libs=no
+          ;;
+       *)
          oldobjs="$old_deplibs $non_pic_objects"
-         if test "$preload" = yes && test -f "$symfileobj"; then
-           func_append oldobjs " $symfileobj"
-         fi
-       fi
-       addlibs="$old_convenience"
-      fi
+         $preload && test -f "$symfileobj" \
+           && func_append oldobjs " $symfileobj"
+         addlibs=$old_convenience
+         ;;
+      esac
 
       if test -n "$addlibs"; then
-       gentop="$output_objdir/${outputname}x"
+       gentop=$output_objdir/${outputname}x
        func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
@@ -9110,13 +10604,13 @@ EOF
       fi
 
       # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
        cmds=$old_archive_from_new_cmds
       else
 
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
@@ -9137,7 +10631,7 @@ EOF
          :
        else
          echo "copying selected object files to avoid basename conflicts..."
-         gentop="$output_objdir/${outputname}x"
+         gentop=$output_objdir/${outputname}x
          func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
@@ -9146,7 +10640,7 @@ EOF
          for obj in $save_oldobjs
          do
            func_basename "$obj"
-           objbase="$func_basename_result"
+           objbase=$func_basename_result
            case " $oldobjs " in
            " ") oldobjs=$obj ;;
            *[\ /]"$objbase "*)
@@ -9215,18 +10709,18 @@ EOF
            else
              # the above command should be used before it gets too long
              oldobjs=$objlist
-             if test "$obj" = "$last_oldobj" ; then
+             if test "$obj" = "$last_oldobj"; then
                RANLIB=$save_RANLIB
              fi
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+             eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
              objlist=
              len=$len0
            fi
          done
          RANLIB=$save_RANLIB
          oldobjs=$objlist
-         if test "X$oldobjs" = "X" ; then
+         if test -z "$oldobjs"; then
            eval cmds=\"\$concat_cmds\"
          else
            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
@@ -9243,7 +10737,7 @@ EOF
     case $output in
     *.la)
       old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      test yes = "$build_old_libs" && old_library=$libname.$libext
       func_verbose "creating $output"
 
       # Preserve any variables that may affect compiler behavior
@@ -9258,31 +10752,31 @@ EOF
        fi
       done
       # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
+      if test yes = "$hardcode_automatic"; then
        relink_command=
       fi
 
       # Only create the output if not a dry run.
       $opt_dry_run || {
        for installed in no yes; do
-         if test "$installed" = yes; then
+         if test yes = "$installed"; then
            if test -z "$install_libdir"; then
              break
            fi
-           output="$output_objdir/$outputname"i
+           output=$output_objdir/${outputname}i
            # Replace all uninstalled libtool libraries with the installed ones
            newdependency_libs=
            for deplib in $dependency_libs; do
              case $deplib in
              *.la)
                func_basename "$deplib"
-               name="$func_basename_result"
+               name=$func_basename_result
                func_resolve_sysroot "$deplib"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                test -z "$libdir" && \
-                 func_fatal_error "\`$deplib' is not a valid libtool archive"
+                 func_fatal_error "'$deplib' is not a valid libtool archive"
                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
                ;;
              -L*)
@@ -9298,23 +10792,23 @@ EOF
              *) func_append newdependency_libs " $deplib" ;;
              esac
            done
-           dependency_libs="$newdependency_libs"
+           dependency_libs=$newdependency_libs
            newdlfiles=
 
            for lib in $dlfiles; do
              case $lib in
              *.la)
                func_basename "$lib"
-               name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               name=$func_basename_result
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
-                 func_fatal_error "\`$lib' is not a valid libtool archive"
+                 func_fatal_error "'$lib' is not a valid libtool archive"
                func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              *) func_append newdlfiles " $lib" ;;
              esac
            done
-           dlfiles="$newdlfiles"
+           dlfiles=$newdlfiles
            newdlprefiles=
            for lib in $dlprefiles; do
              case $lib in
@@ -9324,34 +10818,34 @@ EOF
                # didn't already link the preopened objects directly into
                # the library:
                func_basename "$lib"
-               name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               name=$func_basename_result
+               eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
-                 func_fatal_error "\`$lib' is not a valid libtool archive"
+                 func_fatal_error "'$lib' is not a valid libtool archive"
                func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
-           dlprefiles="$newdlprefiles"
+           dlprefiles=$newdlprefiles
          else
            newdlfiles=
            for lib in $dlfiles; do
              case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                *) abs=`pwd`"/$lib" ;;
              esac
              func_append newdlfiles " $abs"
            done
-           dlfiles="$newdlfiles"
+           dlfiles=$newdlfiles
            newdlprefiles=
            for lib in $dlprefiles; do
              case $lib in
-               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                *) abs=`pwd`"/$lib" ;;
              esac
              func_append newdlprefiles " $abs"
            done
-           dlprefiles="$newdlprefiles"
+           dlprefiles=$newdlprefiles
          fi
          $RM $output
          # place dlname in correct position for cygwin
@@ -9367,10 +10861,9 @@ EOF
          case $host,$output,$installed,$module,$dlname in
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
              # If a -bindir argument was supplied, place the dll there.
-             if test "x$bindir" != x ;
-             then
+             if test -n "$bindir"; then
                func_relative_path "$install_libdir" "$bindir"
-               tdlname=$func_relative_path_result$dlname
+               tdlname=$func_relative_path_result/$dlname
              else
                # Otherwise fall back on heuristic.
                tdlname=../bin/$dlname
@@ -9379,7 +10872,7 @@ EOF
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
@@ -9393,7 +10886,7 @@ library_names='$library_names'
 # The name of the static archive.
 old_library='$old_library'
 
-# Linker flags that can not go in dependency_libs.
+# Linker flags that cannot go in dependency_libs.
 inherited_linker_flags='$new_inherited_linker_flags'
 
 # Libraries that this one depends upon.
@@ -9419,7 +10912,7 @@ dlpreopen='$dlprefiles'
 
 # Directory that this library needs to be installed in:
 libdir='$install_libdir'"
-         if test "$installed" = no && test "$need_relink" = yes; then
+         if test no,yes = "$installed,$need_relink"; then
            $ECHO >> $output "\
 relink_command=\"$relink_command\""
          fi
@@ -9434,27 +10927,29 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+  func_mode_link ${1+"$@"}
+fi
 
 
 # func_mode_uninstall arg...
 func_mode_uninstall ()
 {
-    $opt_debug
-    RM="$nonopt"
+    $debug_cmd
+
+    RM=$nonopt
     files=
-    rmforce=
+    rmforce=false
     exit_status=0
 
     # This variable tells wrapper scripts just to set variables rather
     # than running their programs.
-    libtool_install_magic="$magic"
+    libtool_install_magic=$magic
 
     for arg
     do
       case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
+      -f) func_append RM " $arg"; rmforce=: ;;
       -*) func_append RM " $arg" ;;
       *) func_append files " $arg" ;;
       esac
@@ -9467,18 +10962,18 @@ func_mode_uninstall ()
 
     for file in $files; do
       func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-       odir="$objdir"
+      dir=$func_dirname_result
+      if test . = "$dir"; then
+       odir=$objdir
       else
-       odir="$dir/$objdir"
+       odir=$dir/$objdir
       fi
       func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
+      name=$func_basename_result
+      test uninstall = "$opt_mode" && odir=$dir
 
       # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
+      if test clean = "$opt_mode"; then
        case " $rmdirs " in
          *" $odir "*) ;;
          *) func_append rmdirs " $odir" ;;
@@ -9493,11 +10988,11 @@ func_mode_uninstall ()
       elif test -d "$file"; then
        exit_status=1
        continue
-      elif test "$rmforce" = yes; then
+      elif $rmforce; then
        continue
       fi
 
-      rmfiles="$file"
+      rmfiles=$file
 
       case $name in
       *.la)
@@ -9511,7 +11006,7 @@ func_mode_uninstall ()
          done
          test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$opt_mode" in
+         case $opt_mode in
          clean)
            case " $library_names " in
            *" $dlname "*) ;;
@@ -9522,12 +11017,12 @@ func_mode_uninstall ()
          uninstall)
            if test -n "$library_names"; then
              # Do each command in the postuninstall commands.
-             func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+             func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
            fi
 
            if test -n "$old_library"; then
              # Do each command in the old_postuninstall commands.
-             func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+             func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
            fi
            # FIXME: should reinstall the best remaining shared library.
            ;;
@@ -9543,21 +11038,19 @@ func_mode_uninstall ()
          func_source $dir/$name
 
          # Add PIC object to the list of files to remove.
-         if test -n "$pic_object" &&
-            test "$pic_object" != none; then
+         if test -n "$pic_object" && test none != "$pic_object"; then
            func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
-         if test -n "$non_pic_object" &&
-            test "$non_pic_object" != none; then
+         if test -n "$non_pic_object" && test none != "$non_pic_object"; then
            func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$opt_mode" = clean ; then
+       if test clean = "$opt_mode"; then
          noexename=$name
          case $file in
          *.exe)
@@ -9584,12 +11077,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-           if test "$fast_install" = yes && test -n "$relink_command"; then
+           func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+           if test yes = "$fast_install" && test -n "$relink_command"; then
              func_append rmfiles " $odir/lt-$name"
            fi
-           if test "X$noexename" != "X$name" ; then
-             func_append rmfiles " $odir/lt-${noexename}.c"
+           if test "X$noexename" != "X$name"; then
+             func_append rmfiles " $odir/lt-$noexename.c"
            fi
          fi
        fi
@@ -9598,7 +11091,7 @@ func_mode_uninstall ()
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
 
-    # Try to remove the ${objdir}s in the directories where we deleted files
+    # Try to remove the $objdir's in the directories where we deleted files
     for dir in $rmdirs; do
       if test -d "$dir"; then
        func_show_eval "rmdir $dir >/dev/null 2>&1"
@@ -9608,16 +11101,17 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+  func_mode_uninstall ${1+"$@"}
+fi
 
 test -z "$opt_mode" && {
-  help="$generic_help"
+  help=$generic_help
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
+  func_fatal_help "invalid operation mode '$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
@@ -9628,7 +11122,7 @@ exit $exit_status
 
 
 # The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
+# where we disable both kinds of libraries.  Given conflicting
 # choices, we go for a static library, that is the most portable,
 # since we can't tell whether shared libraries were disabled because
 # the user asked for that or because the platform doesn't support
@@ -9651,5 +11145,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 # mode:shell-script
 # sh-indentation:2
 # End:
-# vi:sw=2
-
index cdea514..f62bbae 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -160,7 +160,7 @@ give_advice ()
       ;;
    autom4te*)
       echo "You might have modified some maintainer files that require"
-      echo "the 'automa4te' program to be rebuilt."
+      echo "the 'autom4te' program to be rebuilt."
       program_details 'autom4te'
       ;;
     bison*|yacc*)
index 32bf39e..8e575b0 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2012-06-27.10; # UTC
+scriptversion=2013-07-13.22; # UTC
 
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -44,13 +44,12 @@ print_usage ()
 Usage:
   test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
               [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
 END
 }
 
-# TODO: better error handling in option parsing (in particular, ensure
-# TODO: $log_file, $trs_file and $test_name are defined).
 test_name= # Used for reporting.
 log_file=  # Where to save the output of the test script.
 trs_file=  # Where to save the metadata of the test run.
@@ -69,10 +68,23 @@ while test $# -gt 0; do
   --enable-hard-errors) enable_hard_errors=$2; shift;;
   --) shift; break;;
   -*) usage_error "invalid option: '$1'";;
+   *) break;;
   esac
   shift
 done
 
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
 if test $color_tests = yes; then
   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
   red='\e[0;31m' # Red.
@@ -94,11 +106,14 @@ trap "st=143; $do_exit" 15
 # Test script is run here.
 "$@" >$log_file 2>&1
 estatus=$?
+
 if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
+  tweaked_estatus=1
+else
+  tweaked_estatus=$estatus
 fi
 
-case $estatus:$expect_failure in
+case $tweaked_estatus:$expect_failure in
   0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
   0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
   77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
@@ -107,6 +122,12 @@ case $estatus:$expect_failure in
   *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
 esac
 
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
 # Report outcome to console.
 echo "${col}${res}${std}: $test_name"
 
index 75f9332..eea13ac 100644 (file)
@@ -4,4 +4,6 @@ EXTRA_DIST =    \
        config.h.win32.in       \
        config.h.win32  \
        gen-file-list-jsonglib.py       \
-       gengir_jsonglib.bat
+       detectenv_msvc.mak      \
+       introspection-msvc.mak  \
+       json-glib-introspection-msvc.mak
index 053c5ee..b299239 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,17 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = build/win32
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(srcdir)/config.h.win32.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -75,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = config.h.win32
@@ -134,6 +173,7 @@ am__define_uniq_tagged_files = \
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.win32.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -199,6 +239,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -223,6 +264,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -244,6 +286,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -280,6 +323,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -313,6 +359,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -337,7 +385,9 @@ EXTRA_DIST = \
        config.h.win32.in       \
        config.h.win32  \
        gen-file-list-jsonglib.py       \
-       gengir_jsonglib.bat
+       detectenv_msvc.mak      \
+       introspection-msvc.mak  \
+       json-glib-introspection-msvc.mak
 
 all: all-recursive
 
@@ -354,7 +404,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/win32/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign build/win32/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -388,13 +437,12 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -652,6 +700,8 @@ uninstall-am:
        mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
        ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 66d1e32..fbc0870 100644 (file)
@@ -1,5 +1,9 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#define ENABLE_NLS 1
+
 /* The prefix for our gettext translation domains. */
 #define GETTEXT_PACKAGE "json-glib-1.0"
 
@@ -16,7 +20,7 @@
 #define HAVE_DCGETTEXT 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
-/*#undef HAVE_DLFCN_H*/
+/* #undef HAVE_DLFCN_H */
 
 /* Whether you have gcov */
 /* #undef HAVE_GCOV */
 #define HAVE_ICONV 1
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-/*#undef HAVE_INTTYPES_H*/
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+#define HAVE_INTTYPES_H 1
+#endif
 
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
-#if (_MSC_VER >= 1600)
+#if !defined (_MSC_VER) || (_MSC_VER >= 1600)
 #define HAVE_STDINT_H 1
 #endif
 
 #define HAVE_SYS_TYPES_H 1
 
 /* Define to 1 if you have the <unistd.h> header file. */
-/*#undef HAVE_UNISTD_H*/
+#ifndef _MSC_VER
+#define HAVE_UNISTD_H 1
+#endif
 
 /* Define to the sub-directory in which libtool stores uninstalled libraries.
    */
 #define LT_OBJDIR ".libs/"
 
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#define NO_MINUS_C_MINUS_O 1
+/* #undef NO_MINUS_C_MINUS_O */
 
 /* Define to the address where bug reports for this package should be sent. */
 #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib"
@@ -70,7 +78,7 @@
 #define PACKAGE_NAME "json-glib"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "json-glib 0.16.0"
+#define PACKAGE_STRING "json-glib 1.2.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "json-glib"
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.16.0"
+#define PACKAGE_VERSION "1.2.0"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
+
+/* defines how to decorate public symbols while building */
+#ifdef _MSC_VER
+#define _JSON_EXTERN __declspec(dllexport) extern
+#else
+#define _JSON_EXTERN __attribute__((visibility("default"))) __declspec(dllexport) extern
+#endif
index d87103d..f150ce1 100644 (file)
@@ -1,5 +1,9 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#define ENABLE_NLS 1
+
 /* The prefix for our gettext translation domains. */
 #define GETTEXT_PACKAGE "json-glib-1.0"
 
@@ -16,7 +20,7 @@
 #define HAVE_DCGETTEXT 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
-/*#undef HAVE_DLFCN_H*/
+/* #undef HAVE_DLFCN_H */
 
 /* Whether you have gcov */
 /* #undef HAVE_GCOV */
 #define HAVE_ICONV 1
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-/*#undef HAVE_INTTYPES_H*/
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+#define HAVE_INTTYPES_H 1
+#endif
 
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
-#if (_MSC_VER >= 1600)
+#if !defined (_MSC_VER) || (_MSC_VER >= 1600)
 #define HAVE_STDINT_H 1
 #endif
 
 #define HAVE_SYS_TYPES_H 1
 
 /* Define to 1 if you have the <unistd.h> header file. */
-/*#undef HAVE_UNISTD_H*/
+#ifndef _MSC_VER
+#define HAVE_UNISTD_H 1
+#endif
 
 /* Define to the sub-directory in which libtool stores uninstalled libraries.
    */
 #define LT_OBJDIR ".libs/"
 
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#define NO_MINUS_C_MINUS_O 1
+/* #undef NO_MINUS_C_MINUS_O */
 
 /* Define to the address where bug reports for this package should be sent. */
 #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
+
+/* defines how to decorate public symbols while building */
+#ifdef _MSC_VER
+#define _JSON_EXTERN __declspec(dllexport) extern
+#else
+#define _JSON_EXTERN __attribute__((visibility("default"))) __declspec(dllexport) extern
+#endif
diff --git a/build/win32/detectenv_msvc.mak b/build/win32/detectenv_msvc.mak
new file mode 100644 (file)
index 0000000..020548a
--- /dev/null
@@ -0,0 +1,65 @@
+# Check to see we are configured to build with MSVC (MSDEVDIR, MSVCDIR or
+# VCINSTALLDIR) or with the MS Platform SDK (MSSDK or WindowsSDKDir)
+!if !defined(VCINSTALLDIR) && !defined(WINDOWSSDKDIR)
+MSG = ^
+This Makefile is only for Visual Studio 2008 and later.^
+You need to ensure that the Visual Studio Environment is properly set up^
+before running this Makefile.
+!error $(MSG)
+!endif
+
+ERRNUL  = 2>NUL
+_HASH=^#
+
+!if ![echo VCVERSION=_MSC_VER > vercl.x] \
+    && ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
+    && ![echo PLAT=Win32 >> vercl.x] \
+    && ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
+    && ![echo PLAT=x64 >> vercl.x] \
+    && ![echo $(_HASH)endif >> vercl.x] \
+    && ![cl -nologo -TC -P vercl.x $(ERRNUL)]
+!include vercl.i
+!if ![echo VCVER= ^\> vercl.vc] \
+    && ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
+!include vercl.vc
+!endif
+!endif
+!if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
+!endif
+
+!if $(VCVERSION) > 1499 && $(VCVERSION) < 1600
+VSVER = 9
+!elseif $(VCVERSION) > 1599 && $(VCVERSION) < 1700
+VSVER = 10
+!elseif $(VCVERSION) > 1699 && $(VCVERSION) < 1800
+VSVER = 11
+!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
+VSVER = 12
+!else
+VSVER = 0
+!endif
+
+!if "$(VSVER)" == "0"
+MSG = ^
+This NMake Makefile set supports Visual Studio^
+9 (2008) through 12 (2013).  Your Visual Studio^
+version is not supported.
+!error $(MSG)
+!endif
+
+VALID_CFGSET = FALSE
+!if "$(CFG)" == "release" || "$(CFG)" == "debug"
+VALID_CFGSET = TRUE
+!endif
+
+!if "$(CFG)" == "release"
+CFLAGS_ADD = /MD /O2
+!else
+CFLAGS_ADD = /MDd /Od /Zi
+!endif
+
+!if "$(PLAT)" == "x64"
+LDFLAGS_ARCH = /machine:x64
+!else
+LDFLAGS_ARCH = /machine:x86
+!endif
index eed85f3..9e1c43f 100644 (file)
@@ -11,7 +11,8 @@ import optparse
 def gen_jsonglib_filelist(srcroot, subdir, dest):
     vars = read_vars_from_AM(os.path.join(srcroot, subdir, 'Makefile.am'),
                              vars = {'srcdir':'../json-glib',
-                                     'top_srcdir':'..'},
+                                     'top_srcdir':'..',
+                                     'top_builddir':'..'},
                              conds = {'HAVE_INTROSPECTION':True},
                              filters = ['Json_1_0_gir_FILES'])
 
diff --git a/build/win32/gengir_jsonglib.bat b/build/win32/gengir_jsonglib.bat
deleted file mode 100644 (file)
index ec70dc2..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-@echo off\r
-\r
-setlocal EnableDelayedExpansion\r
-\r
-rem Needed environmental variables:\r
-rem PLAT: Windows platform-Win32 (i.e. x86) or x64 (i.e. x86-64)\r
-rem CONF: Configuration Type, Release or Debug\r
-rem VSVER: Visual C++ version used [9, 10 or 11]\r
-rem BASEDIR: Where the dependent libraries/headers are located\r
-rem PKG_CONFIG_PATH: Where the GLib and its dependent pkg-config .pc files can be found\r
-rem MINGWDIR: Installation path of MINGW GCC, so gcc.exe can be found in %MINGWDIR%\bin.\r
-\r
-rem Note that the Python executable/installation and all the runtime dependencies of the\r
-rem library/libraries need to be in your PATH or %BASEBIN%\bin.\r
-\r
-rem Check the environemental variables...\r
-if /i "%PLAT%" == "Win32" goto PLAT_OK\r
-if /i "%PLAT%" == "x64" goto PLAT_OK\r
-if /i "%PLAT%" == "x86" (\r
-   set PLAT=Win32\r
-   goto PLAT_OK\r
-)\r
-if /i "%PLAT%" == "x86-64" (\r
-   set PLAT=x64\r
-   goto PLAT_OK\r
-)\r
-goto ERR_PLAT\r
-\r
-:PLAT_OK\r
-if "%VSVER%" == "9" goto VSVER_OK\r
-if "%VSVER%" == "10" goto VSVER_OK\r
-if "%VSVER%" == "11" goto VSVER_OK\r
-goto ERR_VSVER\r
-:VSVER_OK\r
-if /i "%CONF%" == "Release" goto CONF_OK\r
-if /i "%CONF%" == "Debug" goto CONF_OK\r
-goto ERR_CONF\r
-:CONF_OK\r
-if "%BASEDIR%" == "" goto ERR_BASEDIR\r
-if not exist %BASEDIR% goto ERR_BASEDIR\r
-\r
-if "%PKG_CONFIG_PATH%" == "" goto ERR_PKGCONFIG\r
-if not exist %PKG_CONFIG_PATH%\gobject-2.0.pc goto ERR_PKGCONFIG\r
-\r
-if "%MINGWDIR%" == "" goto ERR_MINGWDIR\r
-if not exist %MINGWDIR%\bin\gcc.exe goto ERR_MINGWDIR\r
-\r
-set CC=cl\r
-set BINDIR=%CD%\vs%VSVER%\%CONF%\%PLAT%\bin\r
-set INCLUDE=%BASEDIR%\include\glib-2.0;%BASEDIR%\lib\glib-2.0\include;%INCLUDE%\r
-set LIB=%BINDIR%;%BASEDIR%\lib;%LIB%\r
-set PATH=%BINDIR%;%BASEDIR%\bin;%PATH%;%MINGWDIR%\bin\r
-set PYTHONPATH=%BASEDIR%\lib\gobject-introspection;%BINDIR%\r
-\r
-echo Setup .bat and filelist for generating Json-1.0.gir...\r
-\r
-call python gen-file-list-jsonglib.py\r
-\r
-rem ===============================================================================\r
-rem Begin setup of json_gir.bat to create Json-1.0.gir\r
-rem (The ^^ is necessary to span the command to multiple lines on Windows cmd.exe!)\r
-rem ===============================================================================\r
-\r
-echo echo Generating Json-1.0.gir...> json_gir.bat\r
-echo @echo off>> json_gir.bat\r
-echo.>> json_gir.bat\r
-\r
-echo copy /b %BINDIR%\json-glib-1.0.lib %BINDIR%\json-1.0.lib>> json_gir.bat\r
-echo.>> json_gir.bat\r
-rem ================================================================\r
-rem Setup the command line flags to g-ir-scanner for Json-1.0.gir...\r
-rem ================================================================\r
-echo python %BASEDIR%\bin\g-ir-scanner --verbose -I..\.. ^^>> json_gir.bat\r
-echo -I%BASEDIR%\include\glib-2.0 -I%BASEDIR%\lib\glib-2.0\include ^^>> json_gir.bat\r
-echo --namespace=Json --nsversion=1.0 ^^>> json_gir.bat\r
-echo --include=GObject-2.0 --include=Gio-2.0 ^^>> json_gir.bat\r
-echo --no-libtool --library=json-glib-1-vs%VSVER% ^^>> json_gir.bat\r
-echo --reparse-validate --add-include-path=%BASEDIR%\share\gir-1.0 --add-include-path=. ^^>> json_gir.bat\r
-echo --warn-all --pkg-export json-glib-1.0 --c-include "json-glib/json-glib.h" ^^>> json_gir.bat\r
-echo -I..\..  -DJSON_COMPILATION=1 -DG_LOG_DOMAIN=\"Json\" ^^>> json_gir.bat\r
-echo --filelist=json_list ^^>> json_gir.bat\r
-echo -o Json-1.0.gir>> json_gir.bat\r
-echo.>> json_gir.bat\r
-\r
-echo del %BINDIR%\json-1.0.lib>> json_gir.bat\r
-echo.>> json_gir.bat\r
-\r
-echo Completed setup of .bat for generating Json-1.0.gir.\r
-echo.>> json_gir.bat\r
-\r
-rem =======================\r
-rem Now generate the .gir's\r
-rem =======================\r
-CALL json_gir.bat\r
-\r
-rem Clean up the .bat and filelist for generating the .gir files...\r
-del json_gir.bat\r
-del json_list\r
-\r
-rem Now compile the generated .gir files\r
-%BASEDIR%\bin\g-ir-compiler --includedir=. --debug --verbose Json-1.0.gir -o Json-1.0.typelib\r
-\r
-rem Copy the generated .girs and .typelibs to their appropriate places\r
-\r
-mkdir ..\..\build\win32\vs%VSVER%\%CONF%\%PLAT%\share\gir-1.0\r
-move /y *.gir %BASEDIR%\share\gir-1.0\\r
-\r
-mkdir ..\..\build\win32\vs%VSVER%\%CONF%\%PLAT%\lib\girepository-1.0\r
-move /y *.typelib %BASEDIR%\lib\girepository-1.0\\r
-\r
-goto DONE\r
-\r
-:ERR_PLAT\r
-echo You need to specify a valid Platform [set PLAT=Win32 or PLAT=x64]\r
-goto DONE\r
-:ERR_VSVER\r
-echo You need to specify your Visual Studio version [set VSVER=9 or VSVER=10 or VSVER=11]\r
-goto DONE\r
-:ERR_CONF\r
-echo You need to specify a valid Configuration [set CONF=Release or CONF=Debug]\r
-goto DONE\r
-:ERR_BASEDIR\r
-echo You need to specify a valid BASEDIR.\r
-goto DONE\r
-:ERR_PKGCONFIG\r
-echo You need to specify a valid PKG_CONFIG_PATH\r
-goto DONE\r
-:ERR_MINGWDIR\r
-echo You need to specify a valid MINGWDIR, where a valid gcc installation can be found.\r
-goto DONE\r
-:DONE\r
-\r
diff --git a/build/win32/introspection-msvc.mak b/build/win32/introspection-msvc.mak
new file mode 100644 (file)
index 0000000..d637cc7
--- /dev/null
@@ -0,0 +1,79 @@
+# Common Utility NMake Makefile Template
+# Used to Generate Introspection files for various Projects
+
+# Can Override with env vars as needed
+# You will need to have built gobject-introspection for this to work.
+# Change or pass in or set the following to suit your environment
+
+BASEDIR = ..\..\..\vs$(VSVER)\$(PLAT)
+GIR_SUBDIR = share\gir-1.0
+GIR_TYPELIBDIR = lib\girepository-1.0
+G_IR_SCANNER = $(BASEDIR)\bin\g-ir-scanner
+G_IR_COMPILER = $(BASEDIR)\bin\g-ir-compiler.exe
+G_IR_INCLUDEDIR = $(BASEDIR)\$(GIR_SUBDIR)
+G_IR_TYPELIBDIR = $(BASEDIR)\$(GIR_TYPELIBDIR)
+
+# Note: The PYTHON2 must be a Python 2.6.x or 2.7.x Interpretor!
+# Either having python.exe from Python 2.6.x/2.7.x in your PATH will work
+# or passing in PYTHON2=<full path to your Python 2.6.x/2.7.x interpretor> will do
+
+# This is required, and gobject-introspection needs to be built
+# before this can be successfully run.
+PYTHON2=python
+
+# Don't change anything following this line!
+VALID_PKG_CONFIG_PATH = FALSE
+VALID_GCC_INSTPATH = FALSE
+
+MSG_INVALID_PKGCONFIG = You must set or specifiy a valid PKG_CONFIG_PATH
+MSG_INVALID_MINGWDIR = You must set or specifiy a valid MINGWDIR, where gcc.exe can be found in %MINGWDIR%\bin
+MSG_INVALID_CFG = You need to specify or set CFG to be release or debug to use this Makefile to build the Introspection Files
+
+ERROR_MSG =
+
+BUILD_INTROSPECTION = TRUE
+
+!if ![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]       \
+       && ![del $(ERRNUL) /q/f pkgconfig.x]
+!endif
+
+!include pkgconfig.chksize
+!if "$(PKG_CHECK_SIZE)" == "0"
+VALID_PKG_CONFIG_PATH = TRUE
+!else
+VALID_PKG_CONFIG_PATH = FALSE
+!endif
+
+!if ![IF EXIST %MINGWDIR%\bin\gcc.exe @echo VALID_GCC_INSTPATH=TRUE > gcccheck.x]
+!endif
+
+!if ![IF NOT EXIST %MINGWDIR%\bin\gcc.exe @echo VALID_GCC_INSTPATH=FALSE > gcccheck.x]
+!endif
+
+!include gcccheck.x
+
+!if ![del $(ERRNUL) /q/f pkgconfig.chksize gcccheck.x]
+!endif
+
+VALID_CFGSET = FALSE
+!if "$(CFG)" == "release" || "$(CFG)" == "debug"
+VALID_CFGSET = TRUE
+!endif
+
+!if "$(VALID_GCC_INSTPATH)" != "TRUE"
+BUILD_INTROSPECTION = FALSE
+ERROR_MSG = $(MSG_INVALID_MINGWDIR)
+!endif
+
+!if "$(VALID_PKG_CONFIG_PATH)" != "TRUE"
+BUILD_INTROSPECTION = FALSE
+ERROR_MSG = $(MSG_INVALID_PKGCONFIG)
+!endif
+
+!if "$(VALID_CFGSET)" != "TRUE"
+BUILD_INTROSPECTION = FALSE
+ERROR_MSG = $(MSG_INVALID_CFG)
+!endif
diff --git a/build/win32/json-glib-introspection-msvc.mak b/build/win32/json-glib-introspection-msvc.mak
new file mode 100644 (file)
index 0000000..9089e28
--- /dev/null
@@ -0,0 +1,59 @@
+# NMake Makefile to build Introspection Files for JSON-GLib
+
+!include detectenv_msvc.mak
+
+APIVERSION = 1.0
+
+CHECK_PACKAGE =  gio-2.0
+
+!include introspection-msvc.mak
+
+!if "$(BUILD_INTROSPECTION)" == "TRUE"
+all: setgirbuildnev Json-$(APIVERSION).gir Json-$(APIVERSION).typelib
+
+json_list:
+       @-echo Generating Filelist to Introspect for JSON-GLib...
+       $(PYTHON2) gen-file-list-jsonglib.py
+
+vs$(VSVER)\$(CFG)\$(PLAT)\bin\Json-$(APIVERSION).lib:
+       @-echo Copying Json-1.0.lib from json-glib-1.0.lib
+       @-copy /b vs$(VSVER)\$(CFG)\$(PLAT)\bin\json-glib-$(APIVERSION).lib vs$(VSVER)\$(CFG)\$(PLAT)\bin\Json-$(APIVERSION).lib
+
+setgirbuildnev:
+       @set CC=$(CC)
+       @set PYTHONPATH=$(BASEDIR)\lib\gobject-introspection
+       @set PATH=vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(BASEDIR)\bin;$(PATH);$(MINGWDIR)\bin
+       @set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
+       @set LIB=vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(LIB)
+
+Json-$(APIVERSION).gir: json_list vs$(VSVER)\$(CFG)\$(PLAT)\bin\Json-$(APIVERSION).lib
+       @-echo Generating Json-$(APIVERSION).gir...
+       $(PYTHON2) $(G_IR_SCANNER) --verbose -I..\..    \
+       -I$(BASEDIR)\include\glib-2.0 -I$(BASEDIR)\lib\glib-2.0\include \
+       --namespace=Json --nsversion=$(APIVERSION)      \
+       --include=GObject-2.0 --include=Gio-2.0 \
+       --no-libtool --library=json-glib-1.0    \
+       --reparse-validate --add-include-path=$(BASEDIR)\share\gir-1.0 --add-include-path=.     \
+       --warn-all --pkg-export json-glib-$(APIVERSION) --c-include "json-glib/json-glib.h"     \
+       -DJSON_COMPILATION=1 -DG_LOG_DOMAIN=\"Json\"    \
+       --filelist=json_list -o $@
+
+Json-$(APIVERSION).typelib: Json-$(APIVERSION).gir
+       @-echo Compiling Json-$(APIVERSION).typelib...
+       $(G_IR_COMPILER) --includedir=. --debug --verbose Json-$(APIVERSION).gir -o Json-$(APIVERSION).typelib
+
+install-introspection: setgirbuildnev Json-$(APIVERSION).gir Json-$(APIVERSION).typelib
+       @-copy Json-$(APIVERSION).gir $(G_IR_INCLUDEDIR)
+       @-copy /b Json-$(APIVERSION).typelib $(G_IR_TYPELIBDIR)
+
+!else
+all:
+       @-echo $(ERROR_MSG)
+!endif
+
+clean:
+       @-del /f/q Json-$(APIVERSION).typelib
+       @-del /f/q Json-$(APIVERSION).gir
+       @-del /f/q vs$(VSVER)\$(CFG)\$(PLAT)\bin\Json-$(APIVERSION).lib
+       @-del /f/q json_list
+       @-del /f/q *.pyc
index 4c287c8..5eb300d 100644 (file)
@@ -1,6 +1,19 @@
 NULL =
 
 EXTRA_DIST =   \
+       json-glib.sln                   \
+       json-glib-version-paths.props   \
+       json-glib-build-defines.props   \
+       json-glib-gen-srcs.props        \
+       json-glib-install.props \
+       json-glib.vcxproj               \
+       json-glib.vcxprojin             \
+       json-glib.vcxproj.filters       \
+       json-glib.vcxproj.filtersin     \
+       json-glib-format.vcxproj                \
+       json-glib-format.vcxproj.filters        \
+       json-glib-validate.vcxproj              \
+       json-glib-validate.vcxproj.filters      \
        array.vcxproj           \
        array.vcxproj.filters   \
        boxed.vcxproj   \
@@ -11,13 +24,7 @@ EXTRA_DIST = \
        generator.vcxproj.filters       \
        gvariant.vcxproj                \
        gvariant.vcxproj.filters        \
-       install.vcxproj                 \
-       json-glib.sln                   \
-       json-glib.vcxproj               \
-       json-glib.vcxprojin             \
-       json-glib.vcxproj.filters       \
-       json-glib.vcxproj.filtersin     \
-       json-glib.props                 \
+       json-glib-install.vcxproj       \
        node.vcxproj            \
        node.vcxproj.filters    \
        object.vcxproj          \
@@ -35,5 +42,6 @@ EXTRA_DIST =  \
        serialize-simple.vcxproj        \
        serialize-simple.vcxproj.filters        \
        README.txt      \
-       gengir.vcxproj          \
+       invalid.vcxproj \
+       invalid.vcxproj.filters \
        $(NULL)
index d6a4b0f..dba9436 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,16 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = build/win32/vs10
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -74,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -98,6 +138,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -138,6 +179,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -162,6 +204,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -183,6 +226,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -219,6 +263,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -252,6 +299,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -273,6 +322,19 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 NULL = 
 EXTRA_DIST = \
+       json-glib.sln                   \
+       json-glib-version-paths.props   \
+       json-glib-build-defines.props   \
+       json-glib-gen-srcs.props        \
+       json-glib-install.props \
+       json-glib.vcxproj               \
+       json-glib.vcxprojin             \
+       json-glib.vcxproj.filters       \
+       json-glib.vcxproj.filtersin     \
+       json-glib-format.vcxproj                \
+       json-glib-format.vcxproj.filters        \
+       json-glib-validate.vcxproj              \
+       json-glib-validate.vcxproj.filters      \
        array.vcxproj           \
        array.vcxproj.filters   \
        boxed.vcxproj   \
@@ -283,13 +345,7 @@ EXTRA_DIST = \
        generator.vcxproj.filters       \
        gvariant.vcxproj                \
        gvariant.vcxproj.filters        \
-       install.vcxproj                 \
-       json-glib.sln                   \
-       json-glib.vcxproj               \
-       json-glib.vcxprojin             \
-       json-glib.vcxproj.filters       \
-       json-glib.vcxproj.filtersin     \
-       json-glib.props                 \
+       json-glib-install.vcxproj       \
        node.vcxproj            \
        node.vcxproj.filters    \
        object.vcxproj          \
@@ -307,7 +363,8 @@ EXTRA_DIST = \
        serialize-simple.vcxproj        \
        serialize-simple.vcxproj.filters        \
        README.txt      \
-       gengir.vcxproj          \
+       invalid.vcxproj \
+       invalid.vcxproj.filters \
        $(NULL)
 
 all: all-am
@@ -325,7 +382,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/win32/vs10/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign build/win32/vs10/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -500,6 +556,8 @@ uninstall-am:
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
        tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 4c079ea..7ec8e00 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index e4b82bf..f14dfb1 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 9c28df6..1397634 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 5bc87a9..30f52f1 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 08096cb..34e1106 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 2446c0a..5a863c1 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 8e094d0..ec71341 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 5e8776b..554c572 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 155dab3..382908c 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>      
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index f20dd6e..f273c99 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/build/win32/vs10/install.vcxproj b/build/win32/vs10/install.vcxproj
deleted file mode 100644 (file)
index 1539cbd..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}</ProjectGuid>
-    <RootNamespace>install</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Utility</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Utility</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Utility</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Utility</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibEtcInstallRoot)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\$(Platform)\obj\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibEtcInstallRoot)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\$(Platform)\obj\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <PostBuildEvent>
-      <Command>$(JsonGlibDoInstall)</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <PostBuildEvent>
-      <Command>$(JsonGlibDoInstall)</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <PostBuildEvent>
-      <Command>$(JsonGlibDoInstall)</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <PostBuildEvent>
-      <Command>$(JsonGlibDoInstall)</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ProjectReference Include="array.vcxproj">
-      <Project>{9b2921c9-577f-418d-8341-6d79771ddcec}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="builder.vcxproj">
-      <Project>{b7d32b02-3481-4a6e-8e0f-b43887f348a8}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="generator.vcxproj">
-      <Project>{e84f9d53-c9f7-4d7d-b8d0-afe8be3e7b7d}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="json-glib.vcxproj">
-      <Project>{469db0a8-e33e-4112-a38c-52a168ecdc03}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="node.vcxproj">
-      <Project>{04658465-64f9-4f06-b7a7-d40f6edf26e3}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="object.vcxproj">
-      <Project>{83a444a0-d80e-40e0-90cf-5876e1aa97db}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="parser.vcxproj">
-      <Project>{bdf81d39-f7e1-4b34-80e5-4b979e10629f}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="reader.vcxproj">
-      <Project>{99fc597f-539a-49bb-9b9a-6c1ef802a17b}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="boxed.vcxproj">
-      <Project>{5016d295-cc2f-4149-80c2-71d7a33791b2}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="serialize-complex.vcxproj">
-      <Project>{c3fcc23b-54cc-4447-b9a7-ce095ea60b16}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="serialize-full.vcxproj">
-      <Project>{980282ca-eaea-4f33-8982-39daf018978a}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="serialize-simple.vcxproj">
-      <Project>{27afa4cd-917a-4155-9f61-025094a97933}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="gvariant.vcxproj">
-      <Project>{aa52a332-735d-4177-8ca6-842018e60ded}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="path.vcxproj">
-      <Project>{ff640d73-9bcd-4b75-b63f-75175a3c9f67}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/build/win32/vs10/invalid.vcxproj b/build/win32/vs10/invalid.vcxproj
new file mode 100644 (file)
index 0000000..5107991
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{04658465-64F9-4F06-B7A7-D40F6EDF26E4}</ProjectGuid>
+    <RootNamespace>invalid</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>    
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <PreBuildEvent>
+      <Command>
+      </Command>
+    </PreBuildEvent>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\tests\invalid.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="json-glib.vcxproj">
+      <Project>{469db0a8-e33e-4112-a38c-52a168ecdc03}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/build/win32/vs10/invalid.vcxproj.filters b/build/win32/vs10/invalid.vcxproj.filters
new file mode 100644 (file)
index 0000000..322c279
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Sources">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\tests\invalid.c">
+      <Filter>Sources</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-build-defines.props b/build/win32/vs10/json-glib-build-defines.props
new file mode 100644 (file)
index 0000000..b6267cc
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="json-glib-version-paths.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <JsonGlibDefines>JSON_COMPILATION;G_LOG_DOMAIN="Json";JSON_LOCALEDIR="/dummy"</JsonGlibDefines>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>jsonglibbuilddefinesprops</_PropertySheetDisplayName>
+    <OutDir>$(SolutionDir)$(Configuration)\$(PlatformName)\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>glib-2.0.lib;gobject-2.0.lib;gio-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <BuildMacro Include="JsonGlibDefines">
+      <Value>$(JsonGlibDefines)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-format.vcxproj b/build/win32/vs10/json-glib-format.vcxproj
new file mode 100644 (file)
index 0000000..8af5074
--- /dev/null
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{FF640D73-9BCD-4B75-B63F-75175A3C9F69}</ProjectGuid>
+    <RootNamespace>jsonglibformat</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\json-glib-format.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="json-glib.vcxproj">
+      <Project>{469db0a8-e33e-4112-a38c-52a168ecdc03}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-format.vcxproj.filters b/build/win32/vs10/json-glib-format.vcxproj.filters
new file mode 100644 (file)
index 0000000..3911577
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Sources">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\json-glib-format.c">
+      <Filter>Sources</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-gen-srcs.props b/build/win32/vs10/json-glib-gen-srcs.props
new file mode 100644 (file)
index 0000000..f5629eb
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <CopyConfigH>copy ..\config.h.win32 ..\..\..\config.h</CopyConfigH>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>jsonglibgensrcsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="CopyConfigH">
+      <Value>$(CopyConfigH)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-install.props b/build/win32/vs10/json-glib-install.props
new file mode 100644 (file)
index 0000000..f03efd7
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir>
+    <InstalledDlls>$(BinDir)\$(JsonGlibDllPrefix)json-glib(JsonGlibDllSuffix).dll</InstalledDlls>
+    <InstalledBins>$(BinDir)\json-glib-format.exe;$(BinDir)\json-glib-validate.exe</InstalledBins>
+    <JsonGlibDoInstall>
+mkdir $(CopyDir)
+mkdir $(CopyDir)\bin
+mkdir $(CopyDir)\lib
+
+copy $(BinDir)\json-glib-$(ApiVersion).lib $(CopyDir)\lib
+
+copy $(BinDir)\$(JsonGlibDllPrefix)json-glib$(JsonGlibDllSuffix).dll $(CopyDir)\bin
+copy $(BinDir)\$(JsonGlibDllPrefix)json-glib$(JsonGlibDllSuffix).pdb $(CopyDir)\bin
+copy $(BinDir)\json-glib-*.exe $(CopyDir)\bin
+copy $(BinDir)\json-glib-*.pdb $(CopyDir)\bin
+
+mkdir $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-enum-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-version.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-glib.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-builder.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-generator.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-gvariant.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-gobject.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-path.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-parser.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-reader.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+copy ..\..\..\json-glib\json-version-macros.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
+</JsonGlibDoInstall>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>jsonglibinstallprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="BinDir">
+      <Value>$(BinDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="InstalledDlls">
+      <Value>$(InstalledDlls)</Value>
+    </BuildMacro>
+    <BuildMacro Include="InstalledBins">
+      <Value>$(InstalledBins)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibDoInstall">
+      <Value>$(JsonGlibDoInstall)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
similarity index 63%
rename from build/win32/vs10/gengir.vcxproj
rename to build/win32/vs10/json-glib-install.vcxproj
index 12c32a2..25551b6 100644 (file)
@@ -19,8 +19,8 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B15}</ProjectGuid>
-    <RootNamespace>gengir</RootNamespace>
+    <ProjectGuid>{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}</ProjectGuid>
+    <RootNamespace>jsonglibinstall</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-install.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-install.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibEtcInstallRoot)\</OutDir>
-    <ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <PreBuildEvent>
-      <Command>$(DoGenGir)</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <PreBuildEvent>
-      <Command>$(DoGenGir)</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <PreBuildEvent>
-      <Command>$(DoGenGir)</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <PreBuildEvent>
-      <Command>$(DoGenGir)</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <CustomBuild Include="..\config.h.win32">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Installing Build Results...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(JsonGlibDoInstall)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Installing Build Results...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(JsonGlibDoInstall)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Installing Build Results...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(JsonGlibDoInstall)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Installing Build Results...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(JsonGlibDoInstall)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="json-glib.vcxproj">
       <Project>{469db0a8-e33e-4112-a38c-52a168ecdc03}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="json-glib-validate.vcxproj">
+      <Project>{ff640d73-9bcd-4b75-b63f-75175a3c9f68}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+    <ProjectReference Include="json-glib-format.vcxproj">
+      <Project>{ff640d73-9bcd-4b75-b63f-75175a3c9f69}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/build/win32/vs10/json-glib-validate.vcxproj b/build/win32/vs10/json-glib-validate.vcxproj
new file mode 100644 (file)
index 0000000..f847fc3
--- /dev/null
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{FF640D73-9BCD-4B75-B63F-75175A3C9F68}</ProjectGuid>
+    <RootNamespace>jsonglibvalidate</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="json-glib-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>CompileAsC</CompileAs>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\json-glib-validate.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="json-glib.vcxproj">
+      <Project>{469db0a8-e33e-4112-a38c-52a168ecdc03}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-validate.vcxproj.filters b/build/win32/vs10/json-glib-validate.vcxproj.filters
new file mode 100644 (file)
index 0000000..6f9b5c3
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Sources">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\json-glib\json-glib-validate.c">
+      <Filter>Sources</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib-version-paths.props b/build/win32/vs10/json-glib-version-paths.props
new file mode 100644 (file)
index 0000000..0e0eca5
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="UserMacros">
+    <VSVer>10</VSVer>
+    <GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+    <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+    <DefDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</DefDir>
+    <ApiVersion>1.0</ApiVersion>
+    <JsonGlibLibtoolCompatibleDllPrefix>lib</JsonGlibLibtoolCompatibleDllPrefix>
+    <JsonGlibLibtoolCompatibleDllSuffix>-1.0-0</JsonGlibLibtoolCompatibleDllSuffix>
+    <JsonGlibSeparateVSDllPrefix />
+    <JsonGlibSeparateVSDllSuffix>-1-vs$(VSVer)</JsonGlibSeparateVSDllSuffix>
+    <JsonGlibDllPrefix>$(JsonGlibSeparateVSDllPrefix)</JsonGlibDllPrefix>
+    <JsonGlibDllSuffix>$(JsonGlibSeparateVSDllSuffix)</JsonGlibDllSuffix>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>jsonglibversionpathsprops</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemGroup>
+    <BuildMacro Include="VSVer">
+      <Value>$(VSVer)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GlibEtcInstallRoot">
+      <Value>$(GlibEtcInstallRoot)</Value>
+    </BuildMacro>
+    <BuildMacro Include="CopyDir">
+      <Value>$(CopyDir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="ApiVersion">
+      <Value>$(ApiVersion)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibLibtoolCompatibleDllPrefix">
+      <Value>$(JsonGlibLibtoolCompatibleDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibLibtoolCompatibleDllSuffix">
+      <Value>$(JsonGlibLibtoolCompatibleDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibSeparateVSDllPrefix">
+      <Value>$(JsonGlibSeparateVSDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibSeparateVSDllSuffix">
+      <Value>$(JsonGlibSeparateVSDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibDllPrefix">
+      <Value>$(JsonGlibDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="JsonGlibDllSuffix">
+      <Value>$(JsonGlibDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="DefDir">
+      <Value>$(DefDir)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/build/win32/vs10/json-glib.props b/build/win32/vs10/json-glib.props
deleted file mode 100644 (file)
index 1efcc9f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Label="UserMacros">
-    <VSVer>10</VSVer>
-    <GlibEtcInstallRoot>..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
-    <GlibEtcInstallRootFromBuildWin32>..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRootFromBuildWin32>
-    <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
-    <DefDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</DefDir>
-    <ApiVersion>1.0</ApiVersion>
-    <PrepBuild>
-if exist ..\..\..\config.h goto DONE_CONFIG_H
-
-copy ..\config.h.win32 ..\..\..\config.h
-
-:DONE_CONFIG_H
-
-</PrepBuild>
-    <JsonGlibDoInstall>
-mkdir $(CopyDir)
-
-mkdir $(CopyDir)\bin
-
-mkdir $(CopyDir)\lib
-
-
-copy $(SolutionDir)$(Configuration)\$(Platform)\bin\*.lib $(CopyDir)\lib
-
-
-copy $(SolutionDir)$(Configuration)\$(Platform)\bin\*.dll $(CopyDir)\bin
-
-copy $(SolutionDir)$(Configuration)\$(Platform)\bin\*.exe $(CopyDir)\bin
-
-copy ..\..\..\json-glib\tests\stream-load.json $(CopyDir)\bin
-
-
-mkdir $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-
-copy ..\..\..\json-glib\json-enum-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-version.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-glib.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-
-copy ..\..\..\json-glib\json-builder.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-generator.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-gvariant.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-gobject.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-path.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-parser.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-reader.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib
-
-</JsonGlibDoInstall>
-<DoGenGir>
-set VSVER=$(VSVer)
-set CONF=$(Configuration)
-set PLAT=$(Platform)
-set BASEDIR=$(GlibEtcInstallRootFromBuildWin32)
-cd ..
-call gengir_jsonglib.bat
-
-cd vs$(VSVer)
-</DoGenGir>
-    <JsonGlibGenerateDef>
-echo EXPORTS &gt;$(DefDir)\json-glib.def
-cl /EP ..\..\..\json-glib\json-glib.symbols &gt;&gt;$(DefDir)\json-glib.def
-    </JsonGlibGenerateDef>
-    <JsonGlibDefines>JSON_COMPILATION;G_LOG_DOMAIN="Json"</JsonGlibDefines>
-    <JsonGlibLibtoolCompatibleDllPrefix>lib</JsonGlibLibtoolCompatibleDllPrefix>
-    <JsonGlibLibtoolCompatibleDllSuffix>-1.0-0</JsonGlibLibtoolCompatibleDllSuffix>
-    <JsonGlibSeparateVSDllPrefix />
-    <JsonGlibSeparateVSDllSuffix>-1-vs$(VSVer)</JsonGlibSeparateVSDllSuffix>
-    <JsonGlibDllPrefix>$(JsonGlibSeparateVSDllPrefix)</JsonGlibDllPrefix>
-    <JsonGlibDllSuffix>$(JsonGlibSeparateVSDllSuffix)</JsonGlibDllSuffix>
-  </PropertyGroup>
-  <PropertyGroup>
-    <_PropertySheetDisplayName>jsonglibprops</_PropertySheetDisplayName>
-    <OutDir>$(SolutionDir)$(Configuration)\$(PlatformName)\bin\</OutDir>
-    <IntDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>glib-2.0.lib;gobject-2.0.lib;gio-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <BuildMacro Include="VSVer">
-      <Value>$(VSVer)</Value>
-    </BuildMacro>
-    <BuildMacro Include="GlibEtcInstallRoot">
-      <Value>$(GlibEtcInstallRoot)</Value>
-    </BuildMacro>
-    <BuildMacro Include="GlibEtcInstallRootFromBuildWin32">
-      <Value>$(GlibEtcInstallRootFromBuildWin32)</Value>
-    </BuildMacro>
-    <BuildMacro Include="CopyDir">
-      <Value>$(CopyDir)</Value>
-    </BuildMacro>
-    <BuildMacro Include="PrepBuild">
-      <Value>$(PrepBuild)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibDoInstall">
-      <Value>$(JsonGlibDoInstall)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibGenerateDef">
-      <Value>$(JsonGlibGenerateDef)</Value>
-    </BuildMacro>
-    <BuildMacro Include="ApiVersion">
-      <Value>$(ApiVersion)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibDefines">
-      <Value>$(JsonGlibDefines)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibLibtoolCompatibleDllPrefix">
-      <Value>$(JsonGlibLibtoolCompatibleDllPrefix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibLibtoolCompatibleDllSuffix">
-      <Value>$(JsonGlibLibtoolCompatibleDllSuffix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibSeparateVSDllPrefix">
-      <Value>$(JsonGlibSeparateVSDllPrefix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibSeparateVSDllSuffix">
-      <Value>$(JsonGlibSeparateVSDllSuffix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibDllPrefix">
-      <Value>$(JsonGlibDllPrefix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="JsonGlibDllSuffix">
-      <Value>$(JsonGlibDllSuffix)</Value>
-    </BuildMacro>
-    <BuildMacro Include="DefDir">
-      <Value>$(DefDir)</Value>
-    </BuildMacro>
-    <BuildMacro Include="DoGenGir">
-      <Value>$(DoGenGir)</Value>
-    </BuildMacro>
-  </ItemGroup>
-</Project>
\ No newline at end of file
index 0c68243..a68fd98 100644 (file)
@@ -1,6 +1,14 @@
 \r
 Microsoft Visual Studio Solution File, Format Version 11.00\r
 # Visual Studio 2010\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcxproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-validate", "json-glib-validate.vcxproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F68}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-format", "json-glib-format.vcxproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F69}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-install", "json-glib-install.vcxproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcxproj", "{9B2921C9-577F-418D-8341-6D79771DDCEC}"\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "builder", "builder.vcxproj", "{B7D32B02-3481-4A6E-8E0F-B43887F348A8}"\r
@@ -27,11 +35,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "serialize-simple", "seriali
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boxed", "boxed.vcxproj", "{5016D295-CC2F-4149-80C2-71D7A33791B2}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcxproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengir", "gengir.vcxproj", "{2093D218-190E-4194-9421-3BA7CBF33B15}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid", "invalid.vcxproj", "{04658465-64F9-4F06-B7A7-D40F6EDF26E4}"\r
 EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
@@ -41,6 +45,30 @@ Global
                Release|x64 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.Build.0 = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.ActiveCfg = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.Build.0 = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.ActiveCfg = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.Build.0 = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.ActiveCfg = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.Build.0 = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.Build.0 = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.ActiveCfg = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.Build.0 = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.ActiveCfg = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.Build.0 = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.ActiveCfg = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.Build.0 = Release|x64\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.Build.0 = Debug|Win32\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|x64.ActiveCfg = Debug|x64\r
@@ -129,14 +157,6 @@ Global
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|Win32.Build.0 = Release|Win32\r
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.ActiveCfg = Release|x64\r
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.Build.0 = Release|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.Build.0 = Debug|Win32\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|x64.ActiveCfg = Debug|x64\r
@@ -161,10 +181,14 @@ Global
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|Win32.Build.0 = Release|Win32\r
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.ActiveCfg = Release|x64\r
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.Build.0 = Release|x64\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|x64.ActiveCfg = Debug|x64\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|Win32.ActiveCfg = Release|Win32\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|x64.ActiveCfg = Release|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.Build.0 = Debug|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.ActiveCfg = Debug|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.Build.0 = Debug|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.ActiveCfg = Release|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.Build.0 = Release|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.ActiveCfg = Release|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.Build.0 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index 1f77a9f..515cab6 100644 (file)
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -69,7 +73,6 @@
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
@@ -98,7 +97,6 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\json-glib\./json-array.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-builder.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-debug.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-gboxed.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-generator.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-gobject.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-gvariant.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-node.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-object.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-parser.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-path.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-reader.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-scanner.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-serializable.c" />
-    <ClCompile Include="..\..\..\json-glib\./json-value.c" />
+    <ClCompile Include="..\..\..\json-glib\json-array.c" />
+    <ClCompile Include="..\..\..\json-glib\json-builder.c" />
+    <ClCompile Include="..\..\..\json-glib\json-debug.c" />
+    <ClCompile Include="..\..\..\json-glib\json-gboxed.c" />
+    <ClCompile Include="..\..\..\json-glib\json-generator.c" />
+    <ClCompile Include="..\..\..\json-glib\json-gobject.c" />
+    <ClCompile Include="..\..\..\json-glib\json-gvariant.c" />
+    <ClCompile Include="..\..\..\json-glib\json-node.c" />
+    <ClCompile Include="..\..\..\json-glib\json-object.c" />
+    <ClCompile Include="..\..\..\json-glib\json-parser.c" />
+    <ClCompile Include="..\..\..\json-glib\json-path.c" />
+    <ClCompile Include="..\..\..\json-glib\json-reader.c" />
+    <ClCompile Include="..\..\..\json-glib\json-scanner.c" />
+    <ClCompile Include="..\..\..\json-glib\json-serializable.c" />
+    <ClCompile Include="..\..\..\json-glib\json-utils.c" />
+    <ClCompile Include="..\..\..\json-glib\json-value.c" />
     <ClCompile Include="..\..\..\json-glib\json-enum-types.c" />
     <ClCompile Include="..\..\..\json-glib\json-marshal.c" />
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\config.h.win32">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
index bda3c69..fbee4dd 100644 (file)
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\json-glib\./json-array.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-builder.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-debug.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-gboxed.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-generator.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-gobject.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-gvariant.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-node.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-object.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-parser.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-path.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-reader.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-scanner.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-serializable.c"><Filter>Sources</Filter></ClCompile>
-    <ClCompile Include="..\..\..\json-glib\./json-value.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-array.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-builder.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-debug.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-gboxed.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-generator.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-gobject.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-gvariant.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-node.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-object.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-parser.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-path.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-reader.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-scanner.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-serializable.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-utils.c"><Filter>Sources</Filter></ClCompile>
+    <ClCompile Include="..\..\..\json-glib\json-value.c"><Filter>Sources</Filter></ClCompile>
     <ClCompile Include="..\..\..\json-glib\json-enum-types.c"><Filter>Sources</Filter></ClCompile>
     <ClCompile Include="..\..\..\json-glib\json-marshal.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+  </ItemGroup>
 </Project>
index 84f08cf..30ea641 100644 (file)
@@ -17,4 +17,7 @@
   <ItemGroup>
 #include "jsonglib.vs10.sourcefiles.filters"
   </ItemGroup>
-</Project>
\ No newline at end of file
+  <ItemGroup>
+    <CustomBuild Include="..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
+  </ItemGroup>
+</Project>
index c5e7c71..b41c6c4 100644 (file)
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-gen-srcs.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -69,7 +73,6 @@
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
@@ -98,7 +97,6 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <PreBuildEvent>
-      <Command>$(PrepBuild)</Command>
     </PreBuildEvent>
     <ClCompile>
       <PreprocessorDefinitions>$(JsonGlibDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <PreLinkEvent>
-      <Command>$(JsonGlibGenerateDef)</Command>
-    </PreLinkEvent>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)\json-glib.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
   <ItemGroup>
 #include "jsonglib.vs10.sourcefiles"
   </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\config.h.win32">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h from config.h.win32...</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyConfigH)</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 86faa56..9c34843 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 7fde665..32c66c2 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index ebd2421..03682f3 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index b4ccc4d..d6e9a5b 100644 (file)
@@ -10,4 +10,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 8d05e0c..3d99594 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -72,7 +76,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;TESTS_DATA_DIR="./";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -91,7 +95,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_DEBUG;TESTS_DATA_DIR="./";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>TESTS_DATA_DIR="./";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      <PreprocessorDefinitions>TESTS_DATA_DIR="./";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index e0c8df6..c164d40 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 8bf079f..04e8139 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>      
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index a669b22..80ca3d1 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index af5be22..61b5418 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 6d8fac7..1049043 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 0c6387b..428ed79 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index 68ca595..5a2d8b5 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index c464a4a..7e7e94d 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index cc23f72..b7c69b9 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 920659f..596d57f 100644 (file)
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v100</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="json-glib.props" />
+    <Import Project="json-glib-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index fe72401..3fc20bd 100644 (file)
@@ -11,4 +11,4 @@
       <Filter>Sources</Filter>
     </ClCompile>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 24a1ada..0072461 100644 (file)
@@ -1,16 +1,23 @@
 NULL =
 
 EXTRA_DIST =   \
+       json-glib.sln                   \
+       json-glib-version-paths.vsprops \
+       json-glib-build-defines.vsprops \
+       json-glib-gen-srcs.vsprops      \
+       json-glib-install.vsprops       \
+       json-glib.vcproj                \
+       json-glib.vcprojin              \
+       json-glib-validate.vcproj       \
+       json-glib-format.vcproj \
+       json-glib-install.vcproj        \
+       README.txt                      \
        array.vcproj                    \
        boxed.vcproj                    \
        builder.vcproj                  \
        generator.vcproj                \
        gvariant.vcproj                 \
-       install.vcproj                  \
-       json-glib.sln                   \
-       json-glib.vcproj                \
-       json-glib.vcprojin              \
-       json-glib.vsprops               \
+       invalid.vcproj          \
        node.vcproj                     \
        object.vcproj                   \
        parser.vcproj                   \
@@ -19,6 +26,4 @@ EXTRA_DIST =  \
        serialize-complex.vcproj        \
        serialize-full.vcproj           \
        serialize-simple.vcproj         \
-       README.txt                      \
-       gengir.vcproj           \
        $(NULL)
index 0244e39..be28db2 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,16 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = build/win32/vs9
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -74,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -98,6 +138,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -138,6 +179,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -162,6 +204,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -183,6 +226,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -219,6 +263,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -252,6 +299,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -273,16 +322,23 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 NULL = 
 EXTRA_DIST = \
+       json-glib.sln                   \
+       json-glib-version-paths.vsprops \
+       json-glib-build-defines.vsprops \
+       json-glib-gen-srcs.vsprops      \
+       json-glib-install.vsprops       \
+       json-glib.vcproj                \
+       json-glib.vcprojin              \
+       json-glib-validate.vcproj       \
+       json-glib-format.vcproj \
+       json-glib-install.vcproj        \
+       README.txt                      \
        array.vcproj                    \
        boxed.vcproj                    \
        builder.vcproj                  \
        generator.vcproj                \
        gvariant.vcproj                 \
-       install.vcproj                  \
-       json-glib.sln                   \
-       json-glib.vcproj                \
-       json-glib.vcprojin              \
-       json-glib.vsprops               \
+       invalid.vcproj          \
        node.vcproj                     \
        object.vcproj                   \
        parser.vcproj                   \
@@ -291,8 +347,6 @@ EXTRA_DIST = \
        serialize-complex.vcproj        \
        serialize-full.vcproj           \
        serialize-simple.vcproj         \
-       README.txt                      \
-       gengir.vcproj           \
        $(NULL)
 
 all: all-am
@@ -310,7 +364,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/win32/vs9/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign build/win32/vs9/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -485,6 +538,8 @@ uninstall-am:
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
        tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 0f8116c..77c6f03 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="array"\r
-       ProjectGUID="{9B2921C9-577F-418D-8341-6D79771DDCEC}"\r
-       RootNamespace="array"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\array.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="array"
+       ProjectGUID="{9B2921C9-577F-418D-8341-6D79771DDCEC}"
+       RootNamespace="array"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\array.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index 438156d..61f3891 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -51,7 +51,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -78,7 +78,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
index a680960..cc00f7a 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="builder"\r
-       ProjectGUID="{B7D32B02-3481-4A6E-8E0F-B43887F348A8}"\r
-       RootNamespace="builder"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\builder.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="builder"
+       ProjectGUID="{B7D32B02-3481-4A6E-8E0F-B43887F348A8}"
+       RootNamespace="builder"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\builder.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index a7e6dc0..bd369bc 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="generator"\r
-       ProjectGUID="{E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D}"\r
-       RootNamespace="generator"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\generator.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="generator"
+       ProjectGUID="{E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D}"
+       RootNamespace="generator"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\generator.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/build/win32/vs9/gengir.vcproj b/build/win32/vs9/gengir.vcproj
deleted file mode 100644 (file)
index a5cc540..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-       ProjectType="Visual C++"
-       Version="9.00"
-       Name="gengir"
-       ProjectGUID="{2093D218-190E-4194-9421-3BA7CBF33B15}"
-       RootNamespace="gengir"
-       Keyword="Win32Proj"
-       TargetFrameworkVersion="131072"
-       >
-       <Platforms>
-               <Platform
-                       Name="Win32"
-               />
-               <Platform
-                       Name="x64"
-               />
-       </Platforms>
-       <ToolFiles>
-       </ToolFiles>
-       <Configurations>
-               <Configuration
-                       Name="Debug|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
-                       OutputDirectory="$(GlibEtcInstallRoot)"
-                       ConfigurationType="10"
-                       CharacterSet="2"
-                       DeleteExtensionsOnClean=""
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(DoGenGir)"
-                       />
-               </Configuration>
-               <Configuration
-                       Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
-                       OutputDirectory="$(GlibEtcInstallRoot)"
-                       ConfigurationType="10"
-                       CharacterSet="2"
-                       DeleteExtensionsOnClean=""
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(DoGenGir)"
-                       />
-               </Configuration>
-               <Configuration
-                       Name="Release|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
-                       OutputDirectory="$(GlibEtcInstallRoot)"
-                       ConfigurationType="10"
-                       CharacterSet="2"
-                       WholeProgramOptimization="1"
-                       DeleteExtensionsOnClean=""
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(DoGenGir)"
-                       />
-               </Configuration>
-               <Configuration
-                       Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
-                       OutputDirectory="$(GlibEtcInstallRoot)"
-                       ConfigurationType="10"
-                       CharacterSet="2"
-                       WholeProgramOptimization="1"
-                       DeleteExtensionsOnClean=""
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(DoGenGir)"
-                       />
-               </Configuration>
-       </Configurations>
-</VisualStudioProject>
index abd76e4..4164a65 100644 (file)
@@ -21,7 +21,7 @@
        <Configurations>
                <Configuration
                        Name="Debug|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -49,7 +49,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -75,7 +75,7 @@
                </Configuration>
                <Configuration
                        Name="Release|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
diff --git a/build/win32/vs9/invalid.vcproj b/build/win32/vs9/invalid.vcproj
new file mode 100644 (file)
index 0000000..7065cbe
--- /dev/null
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="invalid"
+       ProjectGUID="{04658465-64F9-4F06-B7A7-D40F6EDF26E4}"
+       RootNamespace="invalid"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\invalid.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/build/win32/vs9/json-glib-build-defines.vsprops b/build/win32/vs9/json-glib-build-defines.vsprops
new file mode 100644 (file)
index 0000000..33c9afb
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="jsonglibbuilddefinesprops"
+       OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin"
+       IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"
+       InheritedPropertySheets=".\json-glib-version-paths.vsprops"
+       >
+       <Tool
+               Name="VCCLCompilerTool"
+               AdditionalIncludeDirectories="..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include"
+               PreprocessorDefinitions="HAVE_CONFIG_H"
+               ForcedIncludeFiles="msvc_recommended_pragmas.h"
+               AdditionalOptions="/MP"
+       />
+       <Tool
+               Name="VCLinkerTool"
+               AdditionalDependencies="glib-2.0.lib gobject-2.0.lib gio-2.0.lib"
+               AdditionalLibraryDirectories="$(GlibEtcInstallRoot)\lib"
+       />
+       <UserMacro
+               Name="JsonGlibDefines"
+               Value="JSON_COMPILATION=1;G_LOG_DOMAIN=\&quot;Json\&quot;;JSON_LOCALEDIR=\&quot;/dummy\&quot;"
+       />
+</VisualStudioPropertySheet>
diff --git a/build/win32/vs9/json-glib-format.vcproj b/build/win32/vs9/json-glib-format.vcproj
new file mode 100644 (file)
index 0000000..c2640ba
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="json-glib-format"
+       ProjectGUID="{FF640D73-9BCD-4B75-B63F-75175A3C9F69}"
+       RootNamespace="jsonglibformat"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               PreprocessorDefinitions="$(JsonGlibDefines)"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="$(JsonGlibDefines)"
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\json-glib-format.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/build/win32/vs9/json-glib-gen-srcs.vsprops b/build/win32/vs9/json-glib-gen-srcs.vsprops
new file mode 100644 (file)
index 0000000..aa4fee6
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="jsonglibgensrcsprops"
+       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+       >
+       <UserMacro
+               Name="CopyConfigH"
+               Value="copy ..\config.h.win32 ..\..\..\config.h"
+       />
+</VisualStudioPropertySheet>
similarity index 67%
rename from build/win32/vs9/install.vcproj
rename to build/win32/vs9/json-glib-install.vcproj
index b79beb1..a530235 100644 (file)
@@ -1,83 +1,77 @@
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="install"\r
-       ProjectGUID="{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"\r
-       RootNamespace="install"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(GlibEtcInstallRoot)"\r
-                       IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj"\r
-                       ConfigurationType="10"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                               CommandLine="$(JsonGlibDoInstall)"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       OutputDirectory="$(GlibEtcInstallRoot)"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="10"\r
-                       CharacterSet="2"\r
-                       DeleteExtensionsOnClean=""\r
-                       >\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                               CommandLine="$(JsonGlibDoInstall)"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(GlibEtcInstallRoot)"\r
-                       IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj"\r
-                       ConfigurationType="10"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                               CommandLine="$(JsonGlibDoInstall)"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       OutputDirectory="$(GlibEtcInstallRoot)"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="10"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       DeleteExtensionsOnClean=""\r
-                       >\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                               CommandLine="$(JsonGlibDoInstall)"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="json-glib-install"
+       ProjectGUID="{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"
+       RootNamespace="jsonglibinstall"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="10"
+                       InheritedPropertySheets=".\json-glib-install.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="$(JsonGlibDoInstall)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       ConfigurationType="10"
+                       InheritedPropertySheets=".\json-glib-install.vsprops"
+                       CharacterSet="2"
+                       DeleteExtensionsOnClean=""
+                       >
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="$(JsonGlibDoInstall)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="10"
+                       InheritedPropertySheets=".\json-glib-install.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="$(JsonGlibDoInstall)"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       ConfigurationType="10"
+                       InheritedPropertySheets=".\json-glib-install.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       DeleteExtensionsOnClean=""
+                       >
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="$(JsonGlibDoInstall)"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/build/win32/vs9/json-glib-install.vsprops b/build/win32/vs9/json-glib-install.vsprops
new file mode 100644 (file)
index 0000000..f797b54
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="jsonglibinstallprops"
+       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+       >
+       <UserMacro
+               Name="JsonGlibDoInstall"
+               Value="
+mkdir $(CopyDir)&#x0D;&#x0A;
+mkdir $(CopyDir)\bin&#x0D;&#x0A;
+mkdir $(CopyDir)\lib&#x0D;&#x0A;
+
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*.lib $(CopyDir)\lib&#x0D;&#x0A;
+
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\$(JsonGlibDllPrefix)json-glib$(JsonGlibDllSuffix).dll $(CopyDir)\bin&#x0D;&#x0A;
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\$(JsonGlibDllPrefix)json-glib$(JsonGlibDllSuffix).pdb $(CopyDir)\bin&#x0D;&#x0A;
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\json-glib-*.exe $(CopyDir)\bin&#x0D;&#x0A;
+copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\json-glib-*.pdb $(CopyDir)\bin&#x0D;&#x0A;
+
+mkdir $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+
+copy ..\..\..\json-glib\json-enum-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-version.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-glib.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+
+copy ..\..\..\json-glib\json-builder.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-generator.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-gobject.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-gvariant.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-path.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-parser.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-reader.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+copy ..\..\..\json-glib\json-version-macros.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;
+"
+       />
+</VisualStudioPropertySheet>
diff --git a/build/win32/vs9/json-glib-validate.vcproj b/build/win32/vs9/json-glib-validate.vcproj
new file mode 100644 (file)
index 0000000..1550deb
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="json-glib-validate"
+       ProjectGUID="{FF640D73-9BCD-4B75-B63F-75175A3C9F68}"
+       RootNamespace="jsonglibvalidate"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               PreprocessorDefinitions="$(JsonGlibDefines)"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="$(JsonGlibDefines)"
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="intl.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\json-glib-validate.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/build/win32/vs9/json-glib-version-paths.vsprops b/build/win32/vs9/json-glib-version-paths.vsprops
new file mode 100644 (file)
index 0000000..cade5f9
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="jsonglibversionpathsprops"
+       >
+       <UserMacro
+               Name="VSVer"
+               Value="9"
+       />
+       <UserMacro
+               Name="GlibEtcInstallRoot"
+               Value="$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(PlatformName)"
+       />
+       <UserMacro
+               Name="CopyDir"
+               Value="$(GlibEtcInstallRoot)"
+       />
+       <UserMacro
+               Name="DefDir"
+               Value="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"
+       />
+       <UserMacro
+               Name="ApiVersion"
+               Value="1.0"
+       />
+       <UserMacro
+               Name="JsonGlibLibtoolCompatibleDllPrefix"
+               Value="lib"
+       />
+       <UserMacro
+               Name="JsonGlibLibtoolCompatibleDllSuffix"
+               Value="-1.0-0"
+       />
+       <UserMacro
+               Name="JsonGlibSeparateVSDllPrefix"
+               Value=""
+       />
+       <UserMacro
+               Name="JsonGlibSeparateVSDllSuffix"
+               Value="-1-vs$(VSVer)"
+       />
+       <!-- Change these two to JsonGlibLibtoolCompatibleDllPrefix and
+       JsonGlibLibtoolCompatibleDllSuffix if that is what you want -->
+       <UserMacro
+               Name="JsonGlibDllPrefix"
+               Value="$(JsonGlibSeparateVSDllPrefix)"
+       />
+       <UserMacro
+               Name="JsonGlibDllSuffix"
+               Value="$(JsonGlibSeparateVSDllSuffix)"
+       />
+</VisualStudioPropertySheet>
index 7fd4b61..c451f6c 100644 (file)
@@ -1,6 +1,18 @@
 \r
 Microsoft Visual Studio Solution File, Format Version 10.00\r
 # Visual Studio 2008\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-validate", "json-glib-validate.vcproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F68}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-format", "json-glib-format.vcproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F69}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
+       EndProjectSection\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcproj", "{9B2921C9-577F-418D-8341-6D79771DDCEC}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
@@ -66,29 +78,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "path", "path.vcproj", "{FF6
                {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid", "invalid.vcproj", "{04658465-64F9-4F06-B7A7-D40F6EDF26E4}"\r
        ProjectSection(ProjectDependencies) = postProject\r
-               {B7D32B02-3481-4A6E-8E0F-B43887F348A8} = {B7D32B02-3481-4A6E-8E0F-B43887F348A8}\r
-               {BDF81D39-F7E1-4B34-80E5-4B979E10629F} = {BDF81D39-F7E1-4B34-80E5-4B979E10629F}\r
-               {C3FCC23B-54CC-4447-B9A7-CE095EA60B16} = {C3FCC23B-54CC-4447-B9A7-CE095EA60B16}\r
-               {E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D} = {E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D}\r
-               {04658465-64F9-4F06-B7A7-D40F6EDF26E3} = {04658465-64F9-4F06-B7A7-D40F6EDF26E3}\r
-               {99FC597F-539A-49BB-9B9A-6C1EF802A17B} = {99FC597F-539A-49BB-9B9A-6C1EF802A17B}\r
-               {5016D295-CC2F-4149-80C2-71D7A33791B2} = {5016D295-CC2F-4149-80C2-71D7A33791B2}\r
-               {83A444A0-D80E-40E0-90CF-5876E1AA97DB} = {83A444A0-D80E-40E0-90CF-5876E1AA97DB}\r
                {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
-               {9B2921C9-577F-418D-8341-6D79771DDCEC} = {9B2921C9-577F-418D-8341-6D79771DDCEC}\r
-               {980282CA-EAEA-4F33-8982-39DAF018978A} = {980282CA-EAEA-4F33-8982-39DAF018978A}\r
-               {27AFA4CD-917A-4155-9F61-025094A97933} = {27AFA4CD-917A-4155-9F61-025094A97933}\r
-               {AA52A332-735D-4177-8CA6-842018E60DED} = {AA52A332-735D-4177-8CA6-842018E60DED}\r
-               {FF640D73-9BCD-4B75-B63F-75175A3C9F67} = {FF640D73-9BCD-4B75-B63F-75175A3C9F67}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengir", "gengir.vcproj", "{2093D218-190E-4194-9421-3BA7CBF33B15}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-install", "json-glib-install.vcproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03}\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68} = {FF640D73-9BCD-4B75-B63F-75175A3C9F68}\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69} = {FF640D73-9BCD-4B75-B63F-75175A3C9F69}\r
        EndProjectSection\r
 EndProject\r
 Global\r
@@ -99,6 +98,30 @@ Global
                Release|x64 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64\r
+               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.Build.0 = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.ActiveCfg = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.Build.0 = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.ActiveCfg = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.Build.0 = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.ActiveCfg = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.Build.0 = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.Build.0 = Debug|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.ActiveCfg = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.Build.0 = Debug|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.ActiveCfg = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.Build.0 = Release|Win32\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.ActiveCfg = Release|x64\r
+               {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.Build.0 = Release|x64\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.Build.0 = Debug|Win32\r
                {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|x64.ActiveCfg = Debug|x64\r
@@ -187,14 +210,6 @@ Global
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|Win32.Build.0 = Release|Win32\r
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.ActiveCfg = Release|x64\r
                {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.Build.0 = Release|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64\r
-               {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.Build.0 = Debug|Win32\r
                {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|x64.ActiveCfg = Debug|x64\r
@@ -219,10 +234,14 @@ Global
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|Win32.Build.0 = Release|Win32\r
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.ActiveCfg = Release|x64\r
                {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.Build.0 = Release|x64\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|x64.ActiveCfg = Debug|x64\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|Win32.ActiveCfg = Release|Win32\r
-               {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|x64.ActiveCfg = Release|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.Build.0 = Debug|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.ActiveCfg = Debug|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.Build.0 = Debug|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.ActiveCfg = Release|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.Build.0 = Release|Win32\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.ActiveCfg = Release|x64\r
+               {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.Build.0 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index e4b68b0..01dfba4 100644 (file)
   <Configuration
    Name="Debug|Win32"
    ConfigurationType="2"
-   InheritedPropertySheets=".\json-glib.vsprops"
+   InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
    CharacterSet="2"
    >
    <Tool
-    Name="VCPreBuildEventTool"
-    CommandLine="$(PrepBuild)"
-   />
-   <Tool
     Name="VCCLCompilerTool"
     Optimization="0"
     AdditionalIncludeDirectories=""
     ForcedIncludeFiles=""
    />
    <Tool
-    Name="VCPreLinkEventTool"
-    CommandLine="$(JsonGlibGenerateDef)"
-   />
-   <Tool
     Name="VCLinkerTool"
     OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
     LinkIncremental="2"
-    ModuleDefinitionFile="$(IntDir)\json-glib.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
   </Configuration>
   <Configuration
    Name="Debug|x64"
-   InheritedPropertySheets=".\json-glib.vsprops"
+   InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
    ConfigurationType="2"
    CharacterSet="2"
    >
    <Tool
-    Name="VCPreBuildEventTool"
-    CommandLine="$(PrepBuild)"
-   />
-   <Tool
     Name="VCCLCompilerTool"
     Optimization="0"
     PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
     DebugInformationFormat="3"
    />
    <Tool
-    Name="VCPreLinkEventTool"
-    CommandLine="$(JsonGlibGenerateDef)"
-   />
-   <Tool
     Name="VCLinkerTool"
     AdditionalDependencies=""
     OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
     LinkIncremental="2"
-    ModuleDefinitionFile="$(IntDir)\json-glib.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
   <Configuration
    Name="Release|Win32"
    ConfigurationType="2"
-   InheritedPropertySheets=".\json-glib.vsprops"
+   InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
    CharacterSet="2"
    WholeProgramOptimization="1"
    >
    <Tool
-    Name="VCPreBuildEventTool"
-    CommandLine="$(PrepBuild)"
-   />
-   <Tool
     Name="VCCLCompilerTool"
     Optimization="2"
     EnableIntrinsicFunctions="true"
     ForcedIncludeFiles=""
    />
    <Tool
-    Name="VCPreLinkEventTool"
-    CommandLine="$(JsonGlibGenerateDef)"
-   />
-   <Tool
     Name="VCLinkerTool"
     OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
     LinkIncremental="1"
-    ModuleDefinitionFile="$(IntDir)\json-glib.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     OptimizeReferences="2"
   </Configuration>
   <Configuration
    Name="Release|x64"
-   InheritedPropertySheets=".\json-glib.vsprops"
+   InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
    ConfigurationType="2"
    CharacterSet="2"
    >
    <Tool
-    Name="VCPreBuildEventTool"
-    CommandLine="$(PrepBuild)"
-   />
-   <Tool
     Name="VCCLCompilerTool"
     PreprocessorDefinitions="$(JsonGlibDefines)"
     RuntimeLibrary="2"
     DebugInformationFormat="3"
    />
    <Tool
-    Name="VCPreLinkEventTool"
-    CommandLine="$(JsonGlibGenerateDef)"
-   />
-   <Tool
     Name="VCLinkerTool"
     AdditionalDependencies=""
     OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
     LinkIncremental="2"
-    ModuleDefinitionFile="$(IntDir)\json-glib.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     OptimizeReferences="2"
    Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
    UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
    >
-   <File RelativePath="..\..\..\json-glib\./json-array.c" />
-   <File RelativePath="..\..\..\json-glib\./json-builder.c" />
-   <File RelativePath="..\..\..\json-glib\./json-debug.c" />
-   <File RelativePath="..\..\..\json-glib\./json-gboxed.c" />
-   <File RelativePath="..\..\..\json-glib\./json-generator.c" />
-   <File RelativePath="..\..\..\json-glib\./json-gobject.c" />
-   <File RelativePath="..\..\..\json-glib\./json-gvariant.c" />
-   <File RelativePath="..\..\..\json-glib\./json-node.c" />
-   <File RelativePath="..\..\..\json-glib\./json-object.c" />
-   <File RelativePath="..\..\..\json-glib\./json-parser.c" />
-   <File RelativePath="..\..\..\json-glib\./json-path.c" />
-   <File RelativePath="..\..\..\json-glib\./json-reader.c" />
-   <File RelativePath="..\..\..\json-glib\./json-scanner.c" />
-   <File RelativePath="..\..\..\json-glib\./json-serializable.c" />
-   <File RelativePath="..\..\..\json-glib\./json-value.c" />
+   <File RelativePath="..\..\..\json-glib\json-array.c" />
+   <File RelativePath="..\..\..\json-glib\json-builder.c" />
+   <File RelativePath="..\..\..\json-glib\json-debug.c" />
+   <File RelativePath="..\..\..\json-glib\json-gboxed.c" />
+   <File RelativePath="..\..\..\json-glib\json-generator.c" />
+   <File RelativePath="..\..\..\json-glib\json-gobject.c" />
+   <File RelativePath="..\..\..\json-glib\json-gvariant.c" />
+   <File RelativePath="..\..\..\json-glib\json-node.c" />
+   <File RelativePath="..\..\..\json-glib\json-object.c" />
+   <File RelativePath="..\..\..\json-glib\json-parser.c" />
+   <File RelativePath="..\..\..\json-glib\json-path.c" />
+   <File RelativePath="..\..\..\json-glib\json-reader.c" />
+   <File RelativePath="..\..\..\json-glib\json-scanner.c" />
+   <File RelativePath="..\..\..\json-glib\json-serializable.c" />
+   <File RelativePath="..\..\..\json-glib\json-utils.c" />
+   <File RelativePath="..\..\..\json-glib\json-value.c" />
    <File RelativePath="..\..\..\json-glib\json-enum-types.c" />
    <File RelativePath="..\..\..\json-glib\json-marshal.c" />
   </Filter>
    Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
    UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
    >
+   <File RelativePath="..\config.h.win32">
+    <FileConfiguration Name="Debug|Win32">
+     <Tool
+      Name="VCCustomBuildTool"
+      Description="Copying config.h from config.h.win32..."
+      CommandLine="$(CopyConfigH)"
+      Outputs="..\..\..\config.h"
+     />
+    </FileConfiguration>
+    <FileConfiguration Name="Release|Win32">
+     <Tool
+      Name="VCCustomBuildTool"
+      Description="Copying config.h from config.h.win32..."
+      CommandLine="$(CopyConfigH)"
+      Outputs="..\..\..\config.h"
+     />
+    </FileConfiguration>
+    <FileConfiguration Name="Debug|x64">
+     <Tool
+      Name="VCCustomBuildTool"
+      Description="Copying config.h from config.h.win32..."
+      CommandLine="$(CopyConfigH)"
+      Outputs="..\..\..\config.h"
+     />
+    </FileConfiguration>
+    <FileConfiguration Name="Release|x64">
+     <Tool
+      Name="VCCustomBuildTool"
+      Description="Copying config.h from config.h.win32..."
+      CommandLine="$(CopyConfigH)"
+      Outputs="..\..\..\config.h"
+     />
+    </FileConfiguration>
+   </File>
   </Filter>
  </Files>
  <Globals>
index 2ab1537..4f13c72 100644 (file)
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(PrepBuild)"
-                       />
-                       <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
                                AdditionalIncludeDirectories=""
                                ForcedIncludeFiles=""
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="$(IntDir)\json-glib.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
                        ConfigurationType="2"
                        CharacterSet="2"
                        >
                        <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(PrepBuild)"
-                       />
-                       <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
                                PreprocessorDefinitions="_DEBUG;$(JsonGlibDefines)"
                                DebugInformationFormat="3"
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                AdditionalDependencies=""
                                OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="$(IntDir)\json-glib.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                        <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(PrepBuild)"
-                       />
-                       <Tool
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                EnableIntrinsicFunctions="true"
                                ForcedIncludeFiles=""
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="$(IntDir)\json-glib.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-gen-srcs.vsprops"
                        ConfigurationType="2"
                        CharacterSet="2"
                        >
                        <Tool
-                               Name="VCPreBuildEventTool"
-                               CommandLine="$(PrepBuild)"
-                       />
-                       <Tool
                                Name="VCCLCompilerTool"
                                PreprocessorDefinitions="$(JsonGlibDefines)"
                                RuntimeLibrary="2"
                                DebugInformationFormat="3"
                        />
                        <Tool
-                               Name="VCPreLinkEventTool"
-                               CommandLine="$(JsonGlibGenerateDef)"
-                       />
-                       <Tool
                                Name="VCLinkerTool"
                                AdditionalDependencies=""
                                OutputFile="$(OutDir)\$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="$(IntDir)\json-glib.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
                        Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
                        UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
                        >
+                       <File RelativePath="..\config.h.win32">
+                               <FileConfiguration Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Copying config.h from config.h.win32..."
+                                               CommandLine="$(CopyConfigH)"
+                                               Outputs="..\..\..\config.h"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Copying config.h from config.h.win32..."
+                                               CommandLine="$(CopyConfigH)"
+                                               Outputs="..\..\..\config.h"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Debug|x64">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Copying config.h from config.h.win32..."
+                                               CommandLine="$(CopyConfigH)"
+                                               Outputs="..\..\..\config.h"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration Name="Release|x64">
+                                       <Tool
+                                               Name="VCCustomBuildTool"
+                                               Description="Copying config.h from config.h.win32..."
+                                               CommandLine="$(CopyConfigH)"
+                                               Outputs="..\..\..\config.h"
+                                       />
+                               </FileConfiguration>
+                       </File>
                </Filter>
        </Files>
        <Globals>
diff --git a/build/win32/vs9/json-glib.vsprops b/build/win32/vs9/json-glib.vsprops
deleted file mode 100644 (file)
index 355c682..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioPropertySheet\r
-       ProjectType="Visual C++"\r
-       Version="8.00"\r
-       Name="jsonglibprops"\r
-       OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin"\r
-       IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"\r
-       >\r
-       <Tool\r
-               Name="VCCLCompilerTool"\r
-               AdditionalIncludeDirectories="..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include"\r
-               PreprocessorDefinitions="HAVE_CONFIG_H;G_DISABLE_DEPRECATED"\r
-               ForcedIncludeFiles="msvc_recommended_pragmas.h"\r
-       />\r
-       <Tool\r
-               Name="VCLinkerTool"\r
-               AdditionalDependencies="glib-2.0.lib gobject-2.0.lib gio-2.0.lib"\r
-               AdditionalLibraryDirectories="$(GlibEtcInstallRoot)\lib"\r
-       />\r
-       <UserMacro\r
-               Name="VSVer"\r
-               Value="9"\r
-       />\r
-       <UserMacro\r
-               Name="GlibEtcInstallRoot"\r
-               Value="..\..\..\..\vs$(VSVer)\$(PlatformName)"\r
-       />\r
-       <UserMacro\r
-               Name="GlibEtcInstallRootFromBuildWin32"\r
-               Value="..\..\..\vs$(VSVer)\$(PlatformName)"\r
-       />\r
-       <UserMacro\r
-               Name="CopyDir"\r
-               Value="$(GlibEtcInstallRoot)"\r
-       />\r
-       <UserMacro\r
-               Name="DefDir"\r
-               Value="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"\r
-       />\r
-       <UserMacro\r
-               Name="PrepBuild"\r
-               Value="\r
-if exist ..\..\..\config.h goto DONE_CONFIG_H&#x0D;&#x0A;\r
-copy ..\config.h.win32 ..\..\..\config.h&#x0D;&#x0A;\r
-:DONE_CONFIG_H&#x0D;&#x0A;\r
-"\r
-       />\r
-       <UserMacro\r
-               Name="ApiVersion"\r
-               Value="1.0"\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibDoInstall"\r
-               Value="\r
-mkdir $(CopyDir)&#x0D;&#x0A;\r
-mkdir $(CopyDir)\bin&#x0D;&#x0A;\r
-mkdir $(CopyDir)\lib&#x0D;&#x0A;\r
-\r
-copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*.lib $(CopyDir)\lib&#x0D;&#x0A;\r
-\r
-copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*.dll $(CopyDir)\bin&#x0D;&#x0A;\r
-copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*.exe $(CopyDir)\bin&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\tests\stream-load.json $(CopyDir)\bin&#x0D;&#x0A;\r
-\r
-mkdir $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-\r
-copy ..\..\..\json-glib\json-enum-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-version.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-glib.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-\r
-copy ..\..\..\json-glib\json-builder.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-generator.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-gobject.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-gvariant.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-path.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-parser.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-reader.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-copy ..\..\..\json-glib\json-types.h $(CopyDir)\include\json-glib-$(ApiVersion)\json-glib&#x0D;&#x0A;\r
-"\r
-       />\r
-       <UserMacro\r
-               Name="DoGenGir"\r
-               Value="\r
-set VSVER=$(VSVer)&#x0D;&#x0A;\r
-set CONF=$(ConfigurationName)&#x0D;&#x0A;\r
-set PLAT=$(PlatformName)&#x0D;&#x0A;\r
-set BASEDIR=$(GlibEtcInstallRootFromBuildWin32)&#x0D;&#x0A;\r
-\r
-cd ..&#x0D;&#x0A;\r
-call gengir_jsonglib.bat&#x0D;&#x0A;\r
-cd vs$(VSVer)&#x0D;&#x0A;\r
-                         "\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibGenerateDef"\r
-               Value="\r
-echo EXPORTS &gt;$(DefDir)\json-glib.def&#x0D;&#x0A;\r
-cl /EP ..\..\..\json-glib\json-glib.symbols &gt;&gt;$(DefDir)\json-glib.def&#x0D;&#x0A;\r
-                     "\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibDefines"\r
-               Value="JSON_COMPILATION;G_LOG_DOMAIN=\&quot;Json\&quot;"\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibLibtoolCompatibleDllPrefix"\r
-               Value="lib"\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibLibtoolCompatibleDllSuffix"\r
-               Value="-1.0-0"\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibSeparateVSDllPrefix"\r
-               Value=""\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibSeparateVSDllSuffix"\r
-               Value="-1-vs$(VSVer)"\r
-       />\r
-       <!-- Change these two to JsonGlibLibtoolCompatibleDllPrefix and\r
-       JsonGlibLibtoolCompatibleDllSuffix if that is what you want -->\r
-       <UserMacro\r
-               Name="JsonGlibDllPrefix"\r
-               Value="$(JsonGlibSeparateVSDllPrefix)"\r
-       />\r
-       <UserMacro\r
-               Name="JsonGlibDllSuffix"\r
-               Value="$(JsonGlibSeparateVSDllSuffix)"\r
-       />\r
-</VisualStudioPropertySheet>\r
index fcbda7a..2e9b538 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="node"\r
-       ProjectGUID="{04658465-64F9-4F06-B7A7-D40F6EDF26E3}"\r
-       RootNamespace="node"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\node.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="node"
+       ProjectGUID="{04658465-64F9-4F06-B7A7-D40F6EDF26E3}"
+       RootNamespace="node"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\node.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index 51d89f0..7115902 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="object"\r
-       ProjectGUID="{83A444A0-D80E-40E0-90CF-5876E1AA97DB}"\r
-       RootNamespace="object"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\object.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="object"
+       ProjectGUID="{83A444A0-D80E-40E0-90CF-5876E1AA97DB}"
+       RootNamespace="object"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\object.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index 1a2aea8..067b29c 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="parser"\r
-       ProjectGUID="{BDF81D39-F7E1-4B34-80E5-4B979E10629F}"\r
-       RootNamespace="parser"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG;TESTS_DATA_DIR=&quot;\&quot;./\&quot;&quot;"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG;TESTS_DATA_DIR=&quot;\&quot;./\&quot;&quot;"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="TESTS_DATA_DIR=&quot;\&quot;./\&quot;&quot;"\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions="TESTS_DATA_DIR=&quot;\&quot;./\&quot;&quot;"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\parser.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="parser"
+       ProjectGUID="{BDF81D39-F7E1-4B34-80E5-4B979E10629F}"
+       RootNamespace="parser"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\parser.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index f3669c5..36e45b0 100644 (file)
@@ -21,7 +21,7 @@
        <Configurations>
                <Configuration
                        Name="Debug|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -49,7 +49,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -75,7 +75,7 @@
                </Configuration>
                <Configuration
                        Name="Release|Win32"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
index 126ed4e..5af2133 100644 (file)
-<?xml version="1.0" encoding="big5"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="reader"\r
-       ProjectGUID="{99FC597F-539A-49BB-9B9A-6C1EF802A17B}"\r
-       RootNamespace="reader"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-               <Platform\r
-                       Name="x64"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="4"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=" "\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Debug|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="2"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                               CommandLine=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               EnableIntrinsicFunctions="true"\r
-                               AdditionalIncludeDirectories=""\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               EnableFunctionLevelLinking="true"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               ForcedIncludeFiles=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies=""\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="1"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|x64"\r
-                       InheritedPropertySheets=".\json-glib.vsprops"\r
-                       ConfigurationType="1"\r
-                       CharacterSet="2"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               PreprocessorDefinitions=""\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               LinkIncremental="1"\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="1"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               TargetMachine="17"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File RelativePath="..\..\..\json-glib\tests\reader.c" />\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
+<?xml version="1.0" encoding="big5"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="reader"
+       ProjectGUID="{99FC597F-539A-49BB-9B9A-6C1EF802A17B}"
+       RootNamespace="reader"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=" "
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="_DEBUG"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       ConfigurationType="1"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                               CommandLine=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               AdditionalIncludeDirectories=""
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               ForcedIncludeFiles=""
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies=""
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions=""
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="1"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Sources"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File RelativePath="..\..\..\json-glib\tests\reader.c" />
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index 2f81ce7..76c60d6 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -51,7 +51,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -78,7 +78,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
index acedaa6..4f29fda 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -51,7 +51,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -78,7 +78,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
index 4c7f1ef..0098c8e 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -51,7 +51,7 @@
                </Configuration>
                <Configuration
                        Name="Debug|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        >
@@ -78,7 +78,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                </Configuration>
                <Configuration
                        Name="Release|x64"
-                       InheritedPropertySheets=".\json-glib.vsprops"
+                       InheritedPropertySheets=".\json-glib-build-defines.vsprops"
                        ConfigurationType="1"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
index 4537a81..ffbdb72 100644 (file)
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
@@ -85,3 +81,6 @@
 
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
+
+/* defines how to decorate public symbols while building */
+#undef _JSON_EXTERN
index a2a79b9..9028ca7 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for json-glib 0.16.0.
+# Generated by GNU Autoconf 2.69 for json-glib 1.2.0.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='json-glib'
 PACKAGE_TARNAME='json-glib'
-PACKAGE_VERSION='0.16.0'
-PACKAGE_STRING='json-glib 0.16.0'
+PACKAGE_VERSION='1.2.0'
+PACKAGE_STRING='json-glib 1.2.0'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib'
 PACKAGE_URL='http://live.gnome.org/JsonGlib'
 
@@ -667,6 +667,11 @@ INTROSPECTION_GIRDIR
 INTROSPECTION_GENERATE
 INTROSPECTION_COMPILER
 INTROSPECTION_SCANNER
+ENABLE_MAN_FALSE
+ENABLE_MAN_TRUE
+XMLCATALOG
+XML_CATALOG_FILE
+XSLTPROC
 GTK_DOC_USE_REBASE_FALSE
 GTK_DOC_USE_REBASE_TRUE
 GTK_DOC_USE_LIBTOOL_FALSE
@@ -677,11 +682,14 @@ GTK_DOC_BUILD_HTML_FALSE
 GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
+HAVE_GTK_DOC_FALSE
+HAVE_GTK_DOC_TRUE
 GTKDOC_DEPS_LIBS
 GTKDOC_DEPS_CFLAGS
 HTML_DIR
 GTKDOC_MKPDF
 GTKDOC_REBASE
+GTKDOC_CHECK_PATH
 GTKDOC_CHECK
 ENABLE_GCOV_FALSE
 ENABLE_GCOV_TRUE
@@ -690,13 +698,18 @@ JSON_GCOV_CFLAGS
 LTP_GENHTML
 LTP
 SHTOOL
+installed_testdir
+installed_test_metadir
+ENABLE_ALWAYS_BUILD_TESTS_FALSE
+ENABLE_ALWAYS_BUILD_TESTS_TRUE
+ENABLE_INSTALLED_TESTS_FALSE
+ENABLE_INSTALLED_TESTS_TRUE
 MAINTAINER_CFLAGS
 JSON_DEBUG_CFLAGS
-ENABLE_GLIB_TEST_FALSE
-ENABLE_GLIB_TEST_TRUE
 JSON_LIBS
 JSON_CFLAGS
 GLIB_PREFIX
+JSON_HIDDEN_VISIBILITY_CFLAGS
 JSON_LT_LDFLAGS
 OS_WIN32_FALSE
 OS_WIN32_TRUE
@@ -708,6 +721,7 @@ JSON_MINOR_VERSION
 JSON_MICRO_VERSION
 JSON_MAJOR_VERSION
 CPP
+LT_SYS_LIBRARY_PATH
 OTOOL64
 OTOOL
 LIPO
@@ -838,16 +852,22 @@ enable_static
 enable_shared
 with_pic
 enable_fast_install
+with_aix_soname
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
+enable_Bsymbolic
 enable_debug
 enable_maintainer_flags
+enable_installed_tests
+enable_always_build_tests
 enable_gcov
 with_html_dir
 enable_gtk_doc
 enable_gtk_doc_html
 enable_gtk_doc_pdf
+enable_man
+with_xml_catalog
 enable_introspection
 enable_nls
 enable_rpath
@@ -865,6 +885,7 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
+LT_SYS_LIBRARY_PATH
 CPP
 JSON_CFLAGS
 JSON_LIBS
@@ -1410,7 +1431,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 json-glib 0.16.0 to adapt to many kinds of systems.
+\`configure' configures json-glib 1.2.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1480,7 +1501,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of json-glib 0.16.0:";;
+     short | recursive ) echo "Configuration of json-glib 1.2.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1500,14 +1521,20 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-Bsymbolic     Avoid linking with -Bsymbolic
   --enable-debug=[no/minimum/yes]
                           turn on debugging [default=minimum]
   --enable-maintainer-flags=[no/yes]
                           Use strict compiler flags [default=no]
+  --enable-installed-tests
+                          Enable installation of some test cases
+  --enable-always-build-tests
+                          Enable always building tests during 'make all'
   --enable-gcov           Enable gcov
   --enable-gtk-doc        use gtk-doc to build documentation [[default=no]]
   --enable-gtk-doc-html   build documentation in html format [[default=yes]]
   --enable-gtk-doc-pdf    build documentation in pdf format [[default=no]]
+  --enable-man            generate man pages [default=auto]
   --enable-introspection=[no/auto/yes]
                           Enable introspection for this build
   --disable-nls           do not use Native Language Support
@@ -1518,10 +1545,15 @@ Optional Packages:
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
+  --with-aix-soname=aix|svr4|both
+                          shared library versioning (aka "SONAME") variant to
+                          provide on AIX, [default=aix].
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
+  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
+                          compiler's sysroot if not specified).
   --with-html-dir=PATH    path to installed docs
+  --with-xml-catalog=CATALOG
+                          path to xml catalog to use
   --with-gnu-ld           assume the C compiler uses GNU ld default=no
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
@@ -1541,6 +1573,8 @@ Some influential environment variables:
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  LT_SYS_LIBRARY_PATH
+              User-defined run-time library search path.
   CPP         C preprocessor
   JSON_CFLAGS C compiler flags for JSON, overriding pkg-config
   JSON_LIBS   linker flags for JSON, overriding pkg-config
@@ -1616,7 +1650,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-json-glib configure 0.16.0
+json-glib configure 1.2.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1894,7 +1928,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 json-glib $as_me 0.16.0, which was
+It was created by json-glib $as_me 1.2.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2278,7 +2312,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-am__api_version='1.13'
+am__api_version='1.15'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2450,8 +2484,8 @@ test "$program_suffix" != NONE &&
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -2470,7 +2504,7 @@ else
 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\    *)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -2764,7 +2798,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='json-glib'
- VERSION='0.16.0'
+ VERSION='1.2.0'
 
 
 # Some tools Automake needs.
@@ -2789,93 +2823,132 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -2883,6 +2956,49 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+
 # Check whether --enable-silent-rules was given.
 if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
@@ -3774,6 +3890,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -4113,13 +4288,10 @@ int
 main ()
 {
   unsigned int major, minor, micro;
-  char *tmp_version;
 
   fclose (fopen ("conf.glibtest", "w"));
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+  if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
      printf("%s, bad version string\n", "$min_glib_version");
      exit(1);
    }
@@ -4259,131 +4431,6 @@ rm -f core conftest.err conftest.$ac_objext \
 
   rm -f conf.glibtest
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-   test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-      rm -f conftest2.*
-      if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-        test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-      then
-       # cc works too.
-       :
-      else
-       # cc exists but doesn't like -o.
-       eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-
 
 
 
@@ -4395,8 +4442,8 @@ esac
 
 
 
-macro_version='2.4.2'
-macro_revision='1.3337'
+macro_version='2.4.6'
+macro_revision='2.4.6'
 
 
 
@@ -4410,7 +4457,7 @@ macro_revision='1.3337'
 
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -4530,7 +4577,7 @@ func_echo_all ()
     $ECHO ""
 }
 
-case "$ECHO" in
+case $ECHO in
   printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
 $as_echo "printf" >&6; } ;;
   print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
@@ -4853,19 +4900,19 @@ test -z "$GREP" && GREP=grep
 
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
 else
   with_gnu_ld=no
 fi
 
 ac_prog=ld
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
+    # gcc leaves a trailing carriage return, which upsets mingw
     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
   *)
     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
@@ -4879,7 +4926,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
       while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
        ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
       done
-      test -z "$LD" && LD="$ac_prog"
+      test -z "$LD" && LD=$ac_prog
       ;;
   "")
     # If it fails, then pretend we aren't using GCC.
@@ -4890,7 +4937,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     with_gnu_ld=unknown
     ;;
   esac
-elif test "$with_gnu_ld" = yes; then
+elif test yes = "$with_gnu_ld"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
@@ -4901,32 +4948,32 @@ if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
+      lt_cv_path_LD=$ac_dir/$ac_prog
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
+       test no != "$with_gnu_ld" && break
        ;;
       *)
-       test "$with_gnu_ld" != yes && break
+       test yes != "$with_gnu_ld" && break
        ;;
       esac
     fi
   done
-  IFS="$lt_save_ifs"
+  IFS=$lt_save_ifs
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
 fi
 fi
 
-LD="$lt_cv_path_LD"
+LD=$lt_cv_path_LD
 if test -n "$LD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
@@ -4969,33 +5016,38 @@ if ${lt_cv_path_NM+:} false; then :
 else
   if test -n "$NM"; then
   # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  lt_cv_path_NM=$NM
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
+  lt_nm_to_check=${ac_tool_prefix}nm
   if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
     lt_nm_to_check="$lt_nm_to_check nm"
   fi
   for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
     for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
        # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
        #   nm: unknown option "B" ignored
        # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
+       # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+       case $build_os in
+       mingw*) lt_bad_file=conftest.nm/nofile ;;
+       *) lt_bad_file=/dev/null ;;
+       esac
+       case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+       *$lt_bad_file* | *'Invalid file or object type'*)
          lt_cv_path_NM="$tmp_nm -B"
-         break
+         break 2
          ;;
        *)
          case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
          */dev/null*)
            lt_cv_path_NM="$tmp_nm -p"
-           break
+           break 2
            ;;
          *)
            lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
@@ -5006,15 +5058,15 @@ else
        esac
       fi
     done
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
   done
   : ${lt_cv_path_NM=no}
 fi
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
   if test -n "$DUMPBIN"; then :
@@ -5120,9 +5172,9 @@ esac
   fi
 fi
 
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
     *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
+      DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
     *)
       DUMPBIN=:
@@ -5130,8 +5182,8 @@ fi
     esac
   fi
 
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
   fi
 fi
 test -z "$NM" && NM=nm
@@ -5182,7 +5234,7 @@ if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
-  teststring="ABCD"
+  teststring=ABCD
 
   case $build_os in
   msdosdjgpp*)
@@ -5222,7 +5274,7 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -5272,22 +5324,23 @@ else
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
       # Make teststring a little bigger before we do anything with it.
       # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
+      for i in 1 2 3 4 5 6 7 8; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 1/2 MB should be enough
+             test 17 != "$i" # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
@@ -5305,7 +5358,7 @@ else
 
 fi
 
-if test -n $lt_cv_sys_max_cmd_len ; then
+if test -n "$lt_cv_sys_max_cmd_len"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
@@ -5323,30 +5376,6 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   lt_unset=unset
 else
@@ -5469,13 +5498,13 @@ esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       reload_cmds=false
     fi
     ;;
   darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -5603,13 +5632,13 @@ lt_cv_deplibs_check_method='unknown'
 # Need to set the preceding variable on all platforms that support
 # interlibrary dependencies.
 # 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
+# 'unknown' -- same as none, but documents that we really don't know.
 # 'pass_all' -- all dependencies passed with no checks.
 # 'test_compile' -- check by making test program.
 # 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
 
 case $host_os in
 aix[4-9]*)
@@ -5636,8 +5665,7 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+  if ( file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
@@ -5673,10 +5701,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -5715,7 +5739,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -5737,8 +5761,8 @@ newos6*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
@@ -5791,6 +5815,9 @@ sysv4 | sysv4.3*)
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 esac
 
 fi
@@ -5948,8 +5975,8 @@ else
 
 case $host_os in
 cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
   case `$DLLTOOL --help 2>&1` in
   *--identify-strict*)
     lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
@@ -5961,7 +5988,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   ;;
 *)
   # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
   ;;
 esac
 
@@ -6115,7 +6142,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
+      if test 0 -eq "$ac_status"; then
        # Ensure the archiver fails upon bogus file names.
        rm -f conftest.$ac_objext libconftest.a
        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
@@ -6123,7 +6150,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-       if test "$ac_status" -ne 0; then
+       if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
         fi
       fi
@@ -6136,7 +6163,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
 $as_echo "$lt_cv_ar_at_file" >&6; }
 
-if test "x$lt_cv_ar_at_file" = xno; then
+if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
 else
   archiver_list_spec=$lt_cv_ar_at_file
@@ -6353,7 +6380,7 @@ old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
-  openbsd*)
+  bitrig* | openbsd*)
     old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
@@ -6443,7 +6470,7 @@ cygwin* | mingw* | pw32* | cegcc*)
   symcode='[ABCDGISTW]'
   ;;
 hpux*)
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     symcode='[ABCDEGRST]'
   fi
   ;;
@@ -6476,14 +6503,44 @@ case `$NM -V 2>&1` in
   symcode='[ABCDGIRSTW]' ;;
 esac
 
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6501,21 +6558,24 @@ for ac_symprfx in "" "_"; do
 
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
@@ -6563,11 +6623,11 @@ _LT_EOF
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
    relocations are performed -- see ld's documentation on pseudo-relocs.  */
 # define LT_DLSYM_CONST
-#elif defined(__osf__)
+#elif defined __osf__
 /* This system does not cope well with relocations in const data.  */
 # define LT_DLSYM_CONST
 #else
@@ -6593,7 +6653,7 @@ lt__PROGRAM__LTX_preloaded_symbols[] =
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
          cat <<\_LT_EOF >> conftest.$ac_ext
   {0, (void *) 0}
 };
@@ -6613,13 +6673,13 @@ _LT_EOF
          mv conftest.$ac_objext conftstm.$ac_objext
          lt_globsym_save_LIBS=$LIBS
          lt_globsym_save_CFLAGS=$CFLAGS
-         LIBS="conftstm.$ac_objext"
+         LIBS=conftstm.$ac_objext
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
            pipe_works=yes
          fi
          LIBS=$lt_globsym_save_LIBS
@@ -6640,7 +6700,7 @@ _LT_EOF
   rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
+  if test yes = "$pipe_works"; then
     break
   else
     lt_cv_sys_global_symbol_pipe=
@@ -6693,6 +6753,16 @@ fi
 
 
 
+
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
 $as_echo_n "checking for sysroot... " >&6; }
 
@@ -6705,9 +6775,9 @@ fi
 
 
 lt_sysroot=
-case ${with_sysroot} in #(
+case $with_sysroot in #(
  yes)
-   if test "$GCC" = yes; then
+   if test yes = "$GCC"; then
      lt_sysroot=`$CC --print-sysroot 2>/dev/null`
    fi
    ;; #(
@@ -6717,8 +6787,8 @@ case ${with_sysroot} in #(
  no|'')
    ;; #(
  *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
    as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
    ;;
 esac
@@ -6730,18 +6800,99 @@ $as_echo "${lt_sysroot:-no}" >&6; }
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+  ac_path_lt_DD_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in dd; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+      $ac_path_lt_DD_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_lt_DD"; then
+    :
+  fi
+else
+  ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case $host in
 ia64-*-hpux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6750,24 +6901,25 @@ ia64-*-hpux*)
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
-       HPUX_IA64_MODE="32"
+       HPUX_IA64_MODE=32
        ;;
       *ELF-64*)
-       HPUX_IA64_MODE="64"
+       HPUX_IA64_MODE=64
        ;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -melf32bsmip"
@@ -6796,9 +6948,50 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+       emul="${emul}32"
+       ;;
+      *64-bit*)
+       emul="${emul}64"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+       emul="${emul}btsmip"
+       ;;
+      *LSB*)
+       emul="${emul}ltsmip"
+       ;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+       emul="${emul}n32"
+       ;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6812,9 +7005,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           LD="${LD-ld} -m elf_i386"
+           case `/usr/bin/file conftest.o` in
+             *x86-64*)
+               LD="${LD-ld} -m elf32_x86_64"
+               ;;
+             *)
+               LD="${LD-ld} -m elf_i386"
+               ;;
+           esac
+           ;;
+         powerpc64le-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -6833,7 +7036,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -6851,7 +7057,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
+  SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
@@ -6891,13 +7097,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+  if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
+    CFLAGS=$SAVE_CFLAGS
   fi
   ;;
 *-*solaris*)
-  # Find out which ABI we are using.
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
@@ -6909,7 +7116,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
       case $lt_cv_prog_gnu_ld in
       yes*)
         case $host in
-        i?86-*-solaris*)
+        i?86-*-solaris*|x86_64-*-solaris*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
         sparc*-*-solaris*)
@@ -6918,7 +7125,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
         esac
         # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
         if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
+          LD=${LD-ld}_sol2
         fi
         ;;
       *)
@@ -6934,7 +7141,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks=$enable_libtool_lock
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
@@ -7045,7 +7252,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
 
@@ -7548,7 +7755,7 @@ if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
+      if test -z "$LT_MULTI_MODULE"; then
        # By default we will add the -single_module flag. You can override
        # by either setting the environment variable LT_MULTI_MODULE
        # non-empty at configure time, or by adding -multi_module to the
@@ -7566,7 +7773,7 @@ else
          cat conftest.err >&5
        # Otherwise, if the output was created with a 0 exit code from
        # the compiler, it worked.
-       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+       elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -7605,7 +7812,7 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-       LDFLAGS="$save_LDFLAGS"
+       LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
@@ -7634,7 +7841,7 @@ _LT_EOF
       _lt_result=$?
       if test -s conftest.err && $GREP force_load conftest.err; then
        cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&5
@@ -7647,32 +7854,32 @@ fi
 $as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
     darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
        10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-       10.[012]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       10.[012][,.]*)
+         _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
        10.*)
-         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
       _lt_dar_single_mod='$single_module'
     fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
     else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
     fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7680,6 +7887,41 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
     ;;
   esac
 
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7974,14 +8216,14 @@ if test "${enable_static+set}" = set; then :
     *)
      enable_static=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_static=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8012,14 +8254,14 @@ if test "${enable_shared+set}" = set; then :
     *)
       enable_shared=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_shared=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8044,14 +8286,14 @@ if test "${with_pic+set}" = set; then :
     *)
       pic_mode=default
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for lt_pkg in $withval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$lt_pkg" = "X$lt_p"; then
          pic_mode=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8059,8 +8301,6 @@ else
 fi
 
 
-test -z "$pic_mode" && pic_mode=default
-
 
 
 
@@ -8076,14 +8316,14 @@ if test "${enable_fast_install+set}" = set; then :
     *)
       enable_fast_install=no
       # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
       for pkg in $enableval; do
-       IFS="$lt_save_ifs"
+       IFS=$lt_save_ifs
        if test "X$pkg" = "X$p"; then
          enable_fast_install=yes
        fi
       done
-      IFS="$lt_save_ifs"
+      IFS=$lt_save_ifs
       ;;
     esac
 else
@@ -8097,11 +8337,63 @@ fi
 
 
 
+  shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+  withval=$with_aix_soname; case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname
+else
+  if ${lt_cv_with_aix_soname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_with_aix_soname=aix
+fi
+
+    with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+
+
+
+
+
+
 
 
 
 # This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
+LIBTOOL_DEPS=$ltmain
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -8150,7 +8442,7 @@ test -z "$LN_S" && LN_S="ln -s"
 
 
 
-if test -n "${ZSH_VERSION+set}" ; then
+if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
@@ -8189,7 +8481,7 @@ aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
+  if test set != "${COLLECT_NAMES+set}"; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
@@ -8200,14 +8492,14 @@ esac
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+old_CC=$CC
+old_CFLAGS=$CFLAGS
 
 # Set sane defaults for various variables
 test -z "$CC" && CC=cc
@@ -8216,15 +8508,8 @@ test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
 test -z "$LD" && LD=ld
 test -z "$ac_objext" && ac_objext=o
 
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
 
 
 # Only perform the check for file, if the check method requires it
@@ -8239,22 +8524,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then :
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+    if test -f "$ac_dir/${ac_tool_prefix}file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -8277,13 +8562,13 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -8305,22 +8590,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then :
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
   ;;
 *)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
   for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
+    IFS=$lt_save_ifs
     test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+    if test -f "$ac_dir/file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"file"
       if test -n "$file_magic_test_file"; then
        case $deplibs_check_method in
        "file_magic "*)
          file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         MAGIC_CMD=$lt_cv_path_MAGIC_CMD
          if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
            $EGREP "$file_magic_regex" > /dev/null; then
            :
@@ -8343,13 +8628,13 @@ _LT_EOF
       break
     fi
   done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
   ;;
 esac
 fi
 
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
@@ -8370,7 +8655,7 @@ esac
 
 # Use C for the default configuration in the libtool script
 
-lt_save_CC="$CC"
+lt_save_CC=$CC
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8432,7 +8717,7 @@ if test -n "$compiler"; then
 
 lt_prog_compiler_no_builtin_flag=
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $cc_basename in
   nvcc*)
     lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
@@ -8448,7 +8733,7 @@ else
   lt_cv_prog_compiler_rtti_exceptions=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   lt_compiler_flag="-fno-rtti -fno-exceptions"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -8478,7 +8763,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 else
     :
@@ -8496,17 +8781,18 @@ lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
 
-  if test "$GCC" = yes; then
+  if test yes = "$GCC"; then
     lt_prog_compiler_wl='-Wl,'
     lt_prog_compiler_static='-static'
 
     case $host_os in
       aix*)
       # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        lt_prog_compiler_static='-Bstatic'
       fi
+      lt_prog_compiler_pic='-fPIC'
       ;;
 
     amigaos*)
@@ -8517,8 +8803,8 @@ lt_prog_compiler_static=
         ;;
       m68k)
             # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
             lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
         ;;
       esac
@@ -8534,6 +8820,11 @@ lt_prog_compiler_static=
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+       lt_prog_compiler_static='$wl-static'
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -8604,7 +8895,7 @@ lt_prog_compiler_static=
     case $host_os in
     aix*)
       lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # AIX 5 now supports IA64 processor
        lt_prog_compiler_static='-Bstatic'
       else
@@ -8612,10 +8903,29 @@ lt_prog_compiler_static=
       fi
       ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        lt_prog_compiler_wl='-Wl,-Wl,,'
+        lt_prog_compiler_pic='-PIC'
+        lt_prog_compiler_static='-Bstatic'
+        ;;
+      esac
+      ;;
+
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+       lt_prog_compiler_static='$wl-static'
+       ;;
+      esac
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -8631,7 +8941,7 @@ lt_prog_compiler_static=
        ;;
       esac
       # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      lt_prog_compiler_static='$wl-a ${wl}archive'
       ;;
 
     irix5* | irix6* | nonstopux*)
@@ -8640,9 +8950,9 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
+      # old Intel for x86_64, which still supported -KPIC.
       ecc*)
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-KPIC'
@@ -8667,6 +8977,12 @@ lt_prog_compiler_static=
        lt_prog_compiler_pic='-PIC'
        lt_prog_compiler_static='-Bstatic'
        ;;
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fPIC'
+       lt_prog_compiler_static='-static'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -8764,7 +9080,7 @@ lt_prog_compiler_static=
       ;;
 
     sysv4*MP*)
-      if test -d /usr/nec ;then
+      if test -d /usr/necthen
        lt_prog_compiler_pic='-Kconform_pic'
        lt_prog_compiler_static='-Bstatic'
       fi
@@ -8793,7 +9109,7 @@ lt_prog_compiler_static=
   fi
 
 case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
+  # For platforms that do not support PIC, -DPIC is meaningless:
   *djgpp*)
     lt_prog_compiler_pic=
     ;;
@@ -8825,7 +9141,7 @@ else
   lt_cv_prog_compiler_pic_works=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"  ## exclude from sc_useless_quotes_in_assignment
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
@@ -8855,7 +9171,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -8887,7 +9203,7 @@ if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -8906,13 +9222,13 @@ else
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+if test yes = "$lt_cv_prog_compiler_static_works"; then
     :
 else
     lt_prog_compiler_static=
@@ -9032,8 +9348,8 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
@@ -9045,9 +9361,9 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -9090,9 +9406,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   # included in the symbol list
   include_expsyms=
   # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
   exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
@@ -9107,7 +9423,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
-    if test "$GCC" != yes; then
+    if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
@@ -9115,7 +9431,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     # we just hope/assume this is gcc and not c89 (= MSVC++)
     with_gnu_ld=yes
     ;;
-  openbsd*)
+  openbsd* | bitrig*)
     with_gnu_ld=no
     ;;
   esac
@@ -9125,7 +9441,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   # On some targets, GNU ld is compatible enough with the native linker
   # that we're better off using the native interface for both.
   lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     case $host_os in
       aix*)
        # The AIX port of GNU ld has always aspired to compatibility
@@ -9147,24 +9463,24 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     esac
   fi
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
+  if test yes = "$lt_use_gnu_ld_interface"; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
+    wlarc='$wl'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
+    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+    export_dynamic_flag_spec='$wl--export-dynamic'
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
     else
       whole_archive_flag_spec=
     fi
     supports_anon_versioning=no
-    case `$LD -v 2>&1` in
+    case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -9177,7 +9493,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     case $host_os in
     aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
+      if test ia64 != "$host_cpu"; then
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
@@ -9196,7 +9512,7 @@ _LT_EOF
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
@@ -9212,7 +9528,7 @@ _LT_EOF
        allow_undefined_flag=unsupported
        # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
        # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9222,7 +9538,7 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      export_dynamic_flag_spec='$wl--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
@@ -9230,61 +9546,89 @@ _LT_EOF
       exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file, use it as
+       # is; otherwise, prepend EXPORTS...
+       archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[   ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([     ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
        ld_shlibs=no
       fi
       ;;
 
     haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
       link_all_deplibs=yes
       ;;
 
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
+      hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+      export_dynamic_flag_spec='$wl-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
+      if test linux-dietlibc = "$host_os"; then
        case $cc_basename in
          diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
        esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-        && test "$tmp_diet" = no
+        && test no = "$tmp_diet"
       then
        tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
        pgf77* | pgf90* | pgf95* | pgfortran*)
                                        # Portland Group f77 and f90 compilers
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -9295,42 +9639,47 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          whole_archive_flag_spec=
          tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
        xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
        nvcc*)  # Cuda Compiler Driver 2.2
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          compiler_needs_object=yes
          ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
          compiler_needs_object=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
          tmp_sharedflag='-G' ;;
        esac
-       archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
 
-        if test "x$supports_anon_versioning" = xyes; then
+        if test yes = "$supports_anon_versioning"; then
           archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-           echo "local: *; };" >> $output_objdir/$libname.ver~
-           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
         fi
 
        case $cc_basename in
+       tcc*)
+         export_dynamic_flag_spec='-rdynamic'
+         ;;
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
          archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; then
+         if test yes = "$supports_anon_versioning"; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-             echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -9344,8 +9693,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -9363,8 +9712,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9376,7 +9725,7 @@ _LT_EOF
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
 *** reliably create shared libraries on SCO systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
@@ -9391,9 +9740,9 @@ _LT_EOF
          # DT_RUNPATH tag from executables and libraries.  But doing so
          # requires that you compile everything twice, which is a pain.
          if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-           hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-           archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-           archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+           hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+           archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+           archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
          else
            ld_shlibs=no
          fi
@@ -9410,15 +9759,15 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
       ;;
     esac
 
-    if test "$ld_shlibs" = no; then
+    if test no = "$ld_shlibs"; then
       runpath_var=
       hardcode_libdir_flag_spec=
       export_dynamic_flag_spec=
@@ -9434,7 +9783,7 @@ _LT_EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
        # Neither direct hardcoding nor static linking is supported with a
        # broken collect2.
        hardcode_direct=unsupported
@@ -9442,34 +9791,57 @@ _LT_EOF
       ;;
 
     aix[4-9]*)
-      if test "$host_cpu" = ia64; then
+      if test ia64 = "$host_cpu"; then
        # On IA64, the linker does run time linking by default, so we don't
        # have to do anything special.
        aix_use_runtimelinking=no
        exp_sym_flag='-Bexport'
-       no_entry_flag=""
+       no_entry_flag=
       else
        # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
+       # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+       # Without the "-l" option, or with the "-B" option, AIX nm treats
+       # weak defined symbols like other global defined symbols, whereas
+       # GNU nm marks them as "W".
+       # While the 'weak' keyword is ignored in the Export File, we need
+       # it in the Import File for the 'aix-soname' feature, so we have
+       # to replace the "-B" option with "-P" for AIX nm.
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
        # Test if we are trying to use run time linking or normal
        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
+       # have runtime linking enabled, and use it for executables.
+       # For shared libraries, we enable/disable runtime linking
+       # depending on the kind of the shared library created -
+       # when "with_aix_soname,aix_use_runtimelinking" is:
+       # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "aix,yes"  lib.so          shared, rtl:yes, for executables
+       #            lib.a           static archive
+       # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+       #            lib.a(lib.so.V) shared, rtl:no,  for executables
+       # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a(lib.so.V) shared, rtl:no
+       # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+       #            lib.a           static archive
        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
          for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+         if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
            aix_use_runtimelinking=yes
            break
          fi
          done
+         if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+           # With aix-soname=svr4, we create the lib.so.V shared archives only,
+           # so we don't have lib.a shared libs to link our executables.
+           # We have to force runtime linking in this case.
+           aix_use_runtimelinking=yes
+           LDFLAGS="$LDFLAGS -Wl,-brtl"
+         fi
          ;;
        esac
 
@@ -9488,13 +9860,21 @@ _LT_EOF
       hardcode_direct_absolute=yes
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
+      file_list_spec='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+       # The Import File defines what to hardcode.
+       hardcode_direct=no
+       hardcode_direct_absolute=no
+       ;;
+      esac
 
-      if test "$GCC" = yes; then
+      if test yes = "$GCC"; then
        case $host_os in aix4.[012]|aix4.[012].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
+         collect2name=`$CC -print-prog-name=collect2`
          if test -f "$collect2name" &&
           strings "$collect2name" | $GREP resolve_lib_name >/dev/null
          then
@@ -9513,35 +9893,42 @@ _LT_EOF
          ;;
        esac
        shared_flag='-shared'
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
+       if test yes = "$aix_use_runtimelinking"; then
+         shared_flag="$shared_flag "'$wl-G'
        fi
+       # Need to ensure runtime linking is disabled for the traditional
+       # shared library, or the linker may eventually find shared libraries
+       # /with/ Import File - we do not want to mix them.
+       shared_flag_aix='-shared'
+       shared_flag_svr4='-shared $wl-G'
       else
        # not using gcc
-       if test "$host_cpu" = ia64; then
+       if test ia64 = "$host_cpu"; then
        # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
        # chokes on -Wl,-G. The following line is correct:
          shared_flag='-G'
        else
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
+         if test yes = "$aix_use_runtimelinking"; then
+           shared_flag='$wl-G'
          else
-           shared_flag='${wl}-bM:SRE'
+           shared_flag='$wl-bM:SRE'
          fi
+         shared_flag_aix='$wl-bM:SRE'
+         shared_flag_svr4='$wl-G'
        fi
       fi
 
-      export_dynamic_flag_spec='${wl}-bexpall'
+      export_dynamic_flag_spec='$wl-bexpall'
       # It seems that -bexpall does not export symbols beginning with
       # underscore (_), so it is better to generate a list of symbols to export.
       always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
        # Warning - without using the other runtime loading flags (-brtl),
        # -berok will link without error, but may produce a broken library.
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
+        if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -9576,7 +9963,7 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
@@ -9584,17 +9971,17 @@ fi
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+       if test ia64 = "$host_cpu"; then
+         hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
          allow_undefined_flag="-z nodefs"
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
+        if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
   if ${lt_cv_aix_libpath_+:} false; then :
@@ -9629,7 +10016,7 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+    lt_cv_aix_libpath_=/usr/lib:/lib
   fi
 
 fi
   aix_libpath=$lt_cv_aix_libpath_
 fi
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
-         no_undefined_flag=' ${wl}-bernotok'
-         allow_undefined_flag=' ${wl}-berok'
-         if test "$with_gnu_ld" = yes; then
+         no_undefined_flag=' $wl-bernotok'
+         allow_undefined_flag=' $wl-berok'
+         if test yes = "$with_gnu_ld"; then
            # We only use this code for GNU lds that support --whole-archive.
-           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
          else
            # Exported symbols can be pulled into shared objects from archives
            whole_archive_flag_spec='$convenience'
          fi
          archive_cmds_need_lc=yes
-         # This is similar to how AIX traditionally builds its shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+         archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+         # -brtl affects multiple linker settings, -berok does not and is overridden later
+         compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+         if test svr4 != "$with_aix_soname"; then
+           # This is similar to how AIX traditionally builds its shared libraries.
+           archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+         fi
+         if test aix != "$with_aix_soname"; then
+           archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+         else
+           # used by -dlpreopen to get the symbols
+           archive_expsym_cmds="$archive_expsym_cmds"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+         fi
+         archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
        fi
       fi
       ;;
@@ -9660,7 +10059,7 @@ fi
       case $host_cpu in
       powerpc)
             # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
             archive_expsym_cmds=''
         ;;
       m68k)
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
-       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-         else
-           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-         fi~
-         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-         linknames='
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+       archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[   ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([     ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
        # The linker will not automatically build a static lib if we build a DLL.
        # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
        enable_shared_with_static_runtimes=yes
        # Don't use ranlib
        old_postinstall_cmds='chmod 644 $oldlib'
        postlink_cmds='lt_outputfile="@OUTPUT@"~
-         lt_tool_outputfile="@TOOL_OUTPUT@"~
-         case $lt_outputfile in
-           *.exe|*.EXE) ;;
-           *)
-             lt_outputfile="$lt_outputfile.exe"
-             lt_tool_outputfile="$lt_tool_outputfile.exe"
-             ;;
-         esac~
-         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-           $RM "$lt_outputfile.manifest";
-         fi'
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
        ;;
       *)
        # Assume MSVC wrapper
@@ -9728,7 +10128,7 @@ fi
        # Tell ltmain to make .lib files, not .a files.
        libext=lib
        # Tell ltmain to make .dll files, not .so files.
-       shrext_cmds=".dll"
+       shrext_cmds=.dll
        # FIXME: Setting linknames here is a bad hack.
        archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
        # The linker will automatically build a .lib file if we build a DLL.
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
 
   else
     whole_archive_flag_spec=''
   fi
   link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
+  allow_undefined_flag=$_lt_dar_allow_undefined
   case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
-  if test "$_lt_dar_can_shared" = "yes"; then
+  if test yes = "$_lt_dar_can_shared"; then
     output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
 
   else
   ld_shlibs=no
       ;;
 
     hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      if test yes = "$GCC"; then
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       else
-       archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
       fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl+b $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_direct=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
+      export_dynamic_flag_spec='$wl-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+       archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
-      if test "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       hardcode_libdir_flag_spec='$wl+b $wl$libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
-       export_dynamic_flag_spec='${wl}-E'
+       export_dynamic_flag_spec='$wl-E'
        # hardcode_minus_L: Not really in the search PATH,
        # but as the default location of the library.
        hardcode_minus_L=yes
       ;;
 
     hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+      if test yes,no = "$GCC,$with_gnu_ld"; then
        case $host_cpu in
        hppa*64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
        case $host_cpu in
        hppa*64*)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
 
@@ -9870,7 +10270,7 @@ if ${lt_cv_prog_compiler__b+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
+   save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS -b"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
@@ -9889,14 +10289,14 @@ else
      fi
    fi
    $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+   LDFLAGS=$save_LDFLAGS
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
 $as_echo "$lt_cv_prog_compiler__b" >&6; }
 
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+if test yes = "$lt_cv_prog_compiler__b"; then
+    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 else
     archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
 fi
@@ -9904,8 +10304,8 @@ fi
          ;;
        esac
       fi
-      if test "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      if test no = "$with_gnu_ld"; then
+       hardcode_libdir_flag_spec='$wl+b $wl$libdir'
        hardcode_libdir_separator=:
 
        case $host_cpu in
@@ -9916,7 +10316,7 @@ fi
        *)
          hardcode_direct=yes
          hardcode_direct_absolute=yes
-         export_dynamic_flag_spec='${wl}-E'
+         export_dynamic_flag_spec='$wl-E'
 
          # hardcode_minus_L: Not really in the search PATH,
          # but as the default location of the library.
@@ -9927,8 +10327,8 @@ fi
       ;;
 
     irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_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 -o $lib'
+      if test yes = "$GCC"; then
+       archive_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 -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
@@ -9938,8 +10338,8 @@ $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >
 if ${lt_cv_irix_exported_symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  save_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+  save_LDFLAGS=$LDFLAGS
+          LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int foo (void) { return 0; }
@@ -9951,24 +10351,34 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
+           LDFLAGS=$save_LDFLAGS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
-       if test "$lt_cv_irix_exported_symbol" = yes; 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'
+       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
       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'
+       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'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       inherit_rpath=yes
       link_all_deplibs=yes
       ;;
 
+    linux*)
+      case $cc_basename in
+      tcc*)
+       # Fabrice Bellard et al's Tiny C Compiler
+       ld_shlibs=yes
+       archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+       ;;
+      esac
+      ;;
+
     netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -9983,7 +10393,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
     newsos6)
       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       hardcode_shlibpath_var=no
       ;;
@@ -9991,27 +10401,19 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
     *nto* | *qnx*)
       ;;
 
-    openbsd*)
+    openbsd* | bitrig*)
       if test -f /usr/libexec/ld.so; then
        hardcode_direct=yes
        hardcode_shlibpath_var=no
        hardcode_direct_absolute=yes
-       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
          archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-         archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-         hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-         export_dynamic_flag_spec='${wl}-E'
+         archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+         hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+         export_dynamic_flag_spec='$wl-E'
        else
-         case $host_os in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-         esac
+         archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         hardcode_libdir_flag_spec='$wl-rpath,$libdir'
        fi
       else
        ld_shlibs=no
@@ -10022,33 +10424,53 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+       $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+       $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+       $ECHO EXPORTS >> $output_objdir/$libname.def~
+       prefix_cmds="$SED"~
+       if test EXPORTS = "`$SED 1q $export_symbols`"; then
+         prefix_cmds="$prefix_cmds -e 1d";
+       fi~
+       prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+       cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+       $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+       emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
       ;;
 
     osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_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 -o $lib'
+      if test yes = "$GCC"; then
+       allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+       archive_cmds='$CC -shared$allow_undefined_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 -o $lib'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       hardcode_libdir_separator=:
       ;;
 
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      if test yes = "$GCC"; then
+       allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+       archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+       hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
        archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
@@ -10059,24 +10481,24 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
 
     solaris*)
       no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-       wlarc='${wl}'
-       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       wlarc='$wl'
+       archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
          wlarc=''
-         archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
          archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
          ;;
        *)
-         wlarc='${wl}'
-         archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         wlarc='$wl'
+         archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
          archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
          ;;
        esac
       fi
@@ -10086,11 +10508,11 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
        # The compiler driver will combine and reorder linker options,
-       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but understands '-z linker_flag'.  GCC discards it without '$wl',
        # but is careful enough not to reorder.
        # Supported since Solaris 2.6 (maybe 2.5.1?)
-       if test "$GCC" = yes; then
-         whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       if test yes = "$GCC"; then
+         whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
        else
          whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
        fi
@@ -10100,10 +10522,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
 
     sunos4*)
-      if test "x$host_vendor" = xsequent; then
+      if test sequent = "$host_vendor"; then
        # Use $CC to link under sequent, because it throws in some extra .o
        # files that make .init and .fini sections work.
-       archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -10152,43 +10574,43 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
 
     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
+      no_undefined_flag='$wl-z,text'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
+      # Note: We CANNOT use -z defs as we might desire, because we do not
       # link with -lc, and that would cause any symbols used from libc to
       # always be unresolved, which means just about no library would
       # ever link correctly.  If we're not using GNU ld we use -z text
       # though, which does catch some bad symbols but isn't as heavy-handed
       # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
+      no_undefined_flag='$wl-z,text'
+      allow_undefined_flag='$wl-z,nodefs'
       archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_flag_spec='$wl-R,$libdir'
       hardcode_libdir_separator=':'
       link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
+      export_dynamic_flag_spec='$wl-Bexport'
       runpath_var='LD_RUN_PATH'
 
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      if test yes = "$GCC"; then
+       archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
       ;;
 
@@ -10203,10 +10625,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       ;;
     esac
 
-    if test x$host_vendor = xsni; then
+    if test sni = "$host_vendor"; then
       case $host in
       sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-       export_dynamic_flag_spec='${wl}-Blargedynsym'
+       export_dynamic_flag_spec='$wl-Blargedynsym'
        ;;
       esac
     fi
@@ -10214,7 +10636,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
+test no = "$ld_shlibs" && can_build_shared=no
 
 with_gnu_ld=$with_gnu_ld
 
@@ -10240,7 +10662,7 @@ x|xyes)
   # Assume -lc should be added
   archive_cmds_need_lc=yes
 
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+  if test yes,yes = "$GCC,$enable_shared"; then
     case $archive_cmds in
     *'~'*)
       # FIXME: we may have to deal with multi-command sequences.
@@ -10455,14 +10877,14 @@ esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
   esac
   case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
   esac
   lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
   case $lt_search_path_spec in
@@ -10478,28 +10900,35 @@ if test "$GCC" = yes; then
     ;;
   esac
   # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
+  # and add multilib dir if necessary...
   lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
   for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
       test -d "$lt_sys_path" && \
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
   lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
         if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
+          lt_foo = "/" $lt_i lt_foo;
         } else {
           lt_count--;
         }
@@ -10513,7 +10942,7 @@ BEGIN {RS=" "; FS="/|\n";} {
   # for these hosts.
   case $host_os in
     mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+      $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
   esac
   sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
@@ -10522,7 +10951,7 @@ fi
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
-shrext_cmds=".so"
+shrext_cmds=.so
 postinstall_cmds=
 postuninstall_cmds=
 finish_cmds=
@@ -10539,14 +10968,16 @@ hardcode_into_libs=no
 # flags to be left without arguments
 need_version=unknown
 
+
+
 case $host_os in
 aix3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
+  soname_spec='$libname$release$shared_ext$major'
   ;;
 
 aix[4-9]*)
@@ -10554,41 +10985,91 @@ aix[4-9]*)
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
+  if test ia64 = "$host_cpu"; then
     # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
     shlibpath_var=LD_LIBRARY_PATH
   else
     # With GCC up to 2.95.x, collect2 would create an import file
     # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
     # development snapshots of GCC prior to 3.0.
     case $host_os in
       aix4 | aix4.[01] | aix4.[01].*)
       if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
           echo ' yes '
-          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+          echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
        :
       else
        can_build_shared=no
       fi
       ;;
     esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
     # soname into executable. Probably we can add versioning support to
     # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
       # instead of lib<name>.a to let people know that these are not
       # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
       # We preserve .a as extension for shared libraries through AIX4.2
       # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
     shlibpath_var=LIBPATH
   fi
   ;;
@@ -10598,18 +11079,18 @@ amigaos*)
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
-  library_names_spec='${libname}${shared_ext}'
+  library_names_spec='$libname$shared_ext'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
@@ -10617,8 +11098,8 @@ beos*)
 bsdi[45]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
@@ -10630,7 +11111,7 @@ bsdi[45]*)
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
-  shrext_cmds=".dll"
+  shrext_cmds=.dll
   need_version=no
   need_lib_prefix=no
 
@@ -10639,8 +11120,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
@@ -10656,17 +11137,17 @@ cygwin* | mingw* | pw32* | cegcc*)
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
 
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
@@ -10675,8 +11156,8 @@ cygwin* | mingw* | pw32* | cegcc*)
   *,cl*)
     # Native MSVC
     libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
 
     case $build_os in
     mingw*)
@@ -10703,7 +11184,7 @@ cygwin* | mingw* | pw32* | cegcc*)
       sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
       ;;
     *)
-      sys_lib_search_path_spec="$LIB"
+      sys_lib_search_path_spec=$LIB
       if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
         # It is most probably a Windows format PATH.
         sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
@@ -10716,8 +11197,8 @@ cygwin* | mingw* | pw32* | cegcc*)
     esac
 
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname'
@@ -10730,7 +11211,7 @@ cygwin* | mingw* | pw32* | cegcc*)
 
   *)
     # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
   esac
@@ -10743,8 +11224,8 @@ darwin* | rhapsody*)
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
@@ -10757,8 +11238,8 @@ dgux*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  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
   ;;
 
@@ -10776,12 +11257,13 @@ freebsd* | dragonfly*)
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
       need_version=no
       need_lib_prefix=no
       ;;
     freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
       need_version=yes
       ;;
   esac
@@ -10806,26 +11288,15 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  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
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
+  shlibpath_overrides_runpath=no
   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
@@ -10843,14 +11314,15 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
     else
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
     fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
   hppa*64*)
     shrext_cmds='.sl'
@@ -10858,8 +11330,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
@@ -10868,8 +11340,8 @@ hpux9* | hpux10* | hpux11*)
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     ;;
   esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
@@ -10882,8 +11354,8 @@ interix[3-9]*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
@@ -10894,7 +11366,7 @@ irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
+       if test yes = "$lt_cv_prog_gnu_ld"; then
                version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
@@ -10902,8 +11374,8 @@ irix5* | irix6* | nonstopux*)
   esac
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
   case $host_os in
   irix5* | nonstopux*)
     libsuff= shlibsuff=
@@ -10922,8 +11394,8 @@ irix5* | irix6* | nonstopux*)
   esac
   shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
   shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
   hardcode_into_libs=yes
   ;;
 
@@ -10932,13 +11404,33 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec='-L$libdir'
+  ;;
+
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   # Add ABI-specific directories to the system library path.
   sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
 
-  # Append ld.so.conf contents to the search path
+  # 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
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # 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="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -11006,12 +11502,12 @@ netbsd*)
   need_lib_prefix=no
   need_version=no
   if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
     finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
     dynamic_linker='NetBSD (a.out) ld.so'
   else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
@@ -11021,7 +11517,7 @@ netbsd*)
 
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
@@ -11030,58 +11526,68 @@ newsos6)
   version_type=qnx
   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'
+  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='ldqnx.so'
   ;;
 
-openbsd*)
+openbsd* | bitrig*)
   version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
+  sys_lib_dlsearch_path_spec=/usr/lib
   need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
   else
-    shlibpath_overrides_runpath=yes
+    need_version=yes
   fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
 os2*)
   libname_spec='$name'
-  shrext_cmds=".dll"
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
   need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
   dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
   ;;
 
 osf3* | osf4* | osf5*)
   version_type=osf
   need_lib_prefix=no
   need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
   ;;
 
 rdos*)
@@ -11092,8 +11598,8 @@ solaris*)
   version_type=linux # correct to gnu/linux during the next big refactor
   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'
+  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=yes
   hardcode_into_libs=yes
@@ -11103,11 +11609,11 @@ solaris*)
 
 sunos4*)
   version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
   finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     need_lib_prefix=no
   fi
   need_version=yes
@@ -11115,8 +11621,8 @@ sunos4*)
 
 sysv4 | sysv4.3*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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
   case $host_vendor in
     sni)
@@ -11137,24 +11643,24 @@ sysv4 | sysv4.3*)
   ;;
 
 sysv4*MP*)
-  if test -d /usr/nec ;then
+  if test -d /usr/necthen
     version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
+  version_type=sco
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
+  if test yes = "$with_gnu_ld"; then
     sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
   else
     sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
@@ -11172,7 +11678,7 @@ tpf*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
@@ -11180,8 +11686,8 @@ tpf*)
 
 uts4*)
   version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
+  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
   ;;
 
@@ -11191,20 +11697,35 @@ uts4*)
 esac
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
+if test yes = "$GCC"; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
 fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
 
 
 
@@ -11301,15 +11822,15 @@ $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
    test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
+   test yes = "$hardcode_automatic"; then
 
   # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
+  if test no != "$hardcode_direct" &&
      # If the only mechanism to avoid hardcoding is shlibpath_var, we
      # have to relink, otherwise we might link with an installed library
      # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+     test no != "$hardcode_minus_L"; then
     # Linking always hardcodes the temporary library directory.
     hardcode_action=relink
   else
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
+if test relink = "$hardcode_action" ||
+   test yes = "$inherit_rpath"; then
   # Fast installation is not supported
   enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
   # Fast installation is not necessary
   enable_fast_install=needless
 fi
@@ -11339,7 +11860,7 @@ fi
 
 
 
-  if test "x$enable_dlopen" != xyes; then
+  if test yes != "$enable_dlopen"; then
   enable_dlopen=unknown
   enable_dlopen_self=unknown
   enable_dlopen_self_static=unknown
@@ -11349,23 +11870,23 @@ else
 
   case $host_os in
   beos*)
-    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen=load_add_on
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
     ;;
 
   mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen=LoadLibrary
     lt_cv_dlopen_libs=
     ;;
 
   cygwin*)
-    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen=dlopen
     lt_cv_dlopen_libs=
     ;;
 
   darwin*)
-  # if libdl is installed we need to link against it
+    # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
 if ${ac_cv_lib_dl_dlopen+:} false; then :
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
 
-    lt_cv_dlopen="dyld"
+    lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
     lt_cv_dlopen_self=yes
 
 
     ;;
 
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
 if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
+  lt_cv_dlopen=shl_load
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
 if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
+  lt_cv_dlopen=dlopen
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
@@ -11499,7 +12028,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
@@ -11538,7 +12067,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
@@ -11577,7 +12106,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
 fi
 
 
     ;;
   esac
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
+  if test no = "$lt_cv_dlopen"; then
     enable_dlopen=no
+  else
+    enable_dlopen=yes
   fi
 
   case $lt_cv_dlopen in
   dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
-    save_LDFLAGS="$LDFLAGS"
+    save_LDFLAGS=$LDFLAGS
     wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
-    save_LIBS="$LIBS"
+    save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
@@ -11620,7 +12149,7 @@ $as_echo_n "checking whether a program can dlopen itself... " >&6; }
 if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-         if test "$cross_compiling" = yes; then :
+         if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -11667,9 +12196,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -11699,7 +12228,7 @@ _LT_EOF
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
+    if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
 if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-         if test "$cross_compiling" = yes; then :
+         if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self_static=cross
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -11773,9 +12302,9 @@ else
 #  endif
 #endif
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
 int fnord () __attribute__((visibility("default")));
 #endif
 
@@ -11805,7 +12334,7 @@ _LT_EOF
   (eval $ac_link) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -11826,9 +12355,9 @@ fi
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
     ;;
   esac
 
@@ -11872,7 +12401,7 @@ else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
   darwin*)
-    if test -n "$STRIP" ; then
+    if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -11900,7 +12429,7 @@ fi
 
 
 
-  # Report which library types will actually be built
+  # Report what library types will actually be built
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
@@ -11908,13 +12437,13 @@ $as_echo "$can_build_shared" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
+  test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
   # are all built from PIC.
   case $host_os in
   aix3*)
-    test "$enable_shared" = yes && enable_static=no
+    test yes = "$enable_shared" && enable_static=no
     if test -n "$RANLIB"; then
       archive_cmds="$archive_cmds~\$RANLIB \$lib"
       postinstall_cmds='$RANLIB $lib'
@@ -11922,8 +12451,12 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     ;;
 
   aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;                  # shared object as lib.so file only
+      yes,svr4,*) ;;                   # shared object as lib.so archive member only
+      yes,*) enable_static=no ;;       # shared object in lib.a archive as well
+      esac
     fi
     ;;
   esac
@@ -11933,7 +12466,7 @@ $as_echo "$enable_shared" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
+  test yes = "$enable_shared" || enable_static=yes
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
@@ -11947,7 +12480,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-CC="$lt_save_CC"
+CC=$lt_save_CC
 
 
 
@@ -11976,10 +12509,10 @@ CC="$lt_save_CC"
 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
 
 
-JSON_MAJOR_VERSION=0
-JSON_MINOR_VERSION=16
+JSON_MAJOR_VERSION=1
+JSON_MINOR_VERSION=2
 JSON_MICRO_VERSION=0
-JSON_VERSION=0.16.0
+JSON_VERSION=1.2.0
 JSON_RELEASE_STATUS=release
 
 
@@ -11987,9 +12520,9 @@ JSON_RELEASE_STATUS=release
 
 
 
-JSON_LT_CURRENT=1600
+JSON_LT_CURRENT=200
 JSON_LT_REVISION=0
-JSON_LT_AGE=1600
+JSON_LT_AGE=200
 JSON_LT_VERSION="$JSON_LT_CURRENT:$JSON_LT_REVISION:$JSON_LT_AGE"
 JSON_LT_LDFLAGS="-version-info $JSON_LT_VERSION"
 
@@ -12034,6 +12567,101 @@ else
 fi
 
 
+# Check for -Bsymbolic-functions to avoid intra-library PLT jumps
+# Check whether --enable-Bsymbolic was given.
+if test "${enable_Bsymbolic+set}" = set; then :
+  enableval=$enable_Bsymbolic;
+else
+
+                saved_LDFLAGS="${LDFLAGS}"
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Bsymbolic-functions linker flag" >&5
+$as_echo_n "checking for -Bsymbolic-functions linker flag... " >&6; }
+                LDFLAGS=-Wl,-Bsymbolic-functions
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int main (void) { return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+                              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+                              enable_Bsymbolic=yes
+
+else
+
+                              { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                              enable_Bsymbolic=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+                LDFLAGS="${saved_LDFLAGS}"
+
+fi
+
+
+if test "x$enable_Bsymbolic" = "xyes"; then :
+  JSON_LINK_FLAGS=-Wl,-Bsymbolic-functions
+fi
+JSON_LT_LDFLAGS="$JSON_LT_LDFLAGS $JSON_LINK_FLAGS"
+
+
+
+
+JSON_HIDDEN_VISIBILITY_CFLAGS=""
+case "$host" in
+  *-*-mingw*)
+
+$as_echo "#define _JSON_EXTERN __attribute__((visibility(\"default\"))) __declspec(dllexport) extern" >>confdefs.h
+
+    CFLAGS="${CFLAGS} -fvisibility=hidden"
+    ;;
+  *)
+        SAVED_CFLAGS="${CFLAGS}"
+    CFLAGS="-fvisibility=hidden"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5
+$as_echo_n "checking for -fvisibility=hidden compiler flag... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int main (void) { return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+                   enable_fvisibility_hidden=yes
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                   enable_fvisibility_hidden=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    CFLAGS="${SAVED_CFLAGS}"
+
+    if test "${enable_fvisibility_hidden}" = "yes"; then :
+
+
+$as_echo "#define _JSON_EXTERN __attribute__((visibility(\"default\"))) extern" >>confdefs.h
+
+      JSON_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+
+fi
+    ;;
+esac
 
 
 
@@ -12049,12 +12677,12 @@ if test -n "$JSON_CFLAGS"; then
     pkg_cv_JSON_CFLAGS="$JSON_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.34.0 gio-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.34.0 gio-2.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.37.6 gio-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.37.6 gio-2.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_JSON_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0 >= 2.34.0 gio-2.0" 2>/dev/null`
+  pkg_cv_JSON_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0 >= 2.37.6 gio-2.0" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12066,12 +12694,12 @@ if test -n "$JSON_LIBS"; then
     pkg_cv_JSON_LIBS="$JSON_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.34.0 gio-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.34.0 gio-2.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.37.6 gio-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.37.6 gio-2.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_JSON_LIBS=`$PKG_CONFIG --libs "gobject-2.0 >= 2.34.0 gio-2.0" 2>/dev/null`
+  pkg_cv_JSON_LIBS=`$PKG_CONFIG --libs "gobject-2.0 >= 2.37.6 gio-2.0" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12092,14 +12720,14 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               JSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gobject-2.0 >= 2.34.0 gio-2.0" 2>&1`
+               JSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gobject-2.0 >= 2.37.6 gio-2.0" 2>&1`
         else
-               JSON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gobject-2.0 >= 2.34.0 gio-2.0" 2>&1`
+               JSON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gobject-2.0 >= 2.37.6 gio-2.0" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$JSON_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (gobject-2.0 >= 2.34.0 gio-2.0) were not met:
+       as_fn_error $? "Package requirements (gobject-2.0 >= 2.37.6 gio-2.0) were not met:
 
 $JSON_PKG_ERRORS
 
@@ -12132,15 +12760,6 @@ $as_echo "yes" >&6; }
 
 fi
 
- if test "x$enable_glibtest" = "xyes"; then
-  ENABLE_GLIB_TEST_TRUE=
-  ENABLE_GLIB_TEST_FALSE='#'
-else
-  ENABLE_GLIB_TEST_TRUE='#'
-  ENABLE_GLIB_TEST_FALSE=
-fi
-
-
 
 
 
@@ -12236,7 +12855,51 @@ $as_echo "$as_me: WARNING: unsupported compiler flags: $flags_unsupported" >&2;}
 
 
 fi
-MAINTAINER_CFLAGS="${MAINTAINER_CFLAGS#*  }"
+MAINTAINER_CFLAGS="${MAINTAINER_CFLAGS#*  }"
+
+
+
+
+  # Check whether --enable-installed-tests was given.
+if test "${enable_installed_tests+set}" = set; then :
+  enableval=$enable_installed_tests; case ${enableval} in
+                  yes) ENABLE_INSTALLED_TESTS="1"  ;;
+                  no)  ENABLE_INSTALLED_TESTS="" ;;
+                  *) as_fn_error $? "bad value ${enableval} for --enable-installed-tests" "$LINENO" 5 ;;
+                 esac
+fi
+
+   if test "$ENABLE_INSTALLED_TESTS" = "1"; then
+  ENABLE_INSTALLED_TESTS_TRUE=
+  ENABLE_INSTALLED_TESTS_FALSE='#'
+else
+  ENABLE_INSTALLED_TESTS_TRUE='#'
+  ENABLE_INSTALLED_TESTS_FALSE=
+fi
+
+  # Check whether --enable-always-build-tests was given.
+if test "${enable_always_build_tests+set}" = set; then :
+  enableval=$enable_always_build_tests; case ${enableval} in
+                  yes) ENABLE_ALWAYS_BUILD_TESTS="1"  ;;
+                  no)  ENABLE_ALWAYS_BUILD_TESTS="" ;;
+                  *) as_fn_error $? "bad value ${enableval} for --enable-always-build-tests" "$LINENO" 5 ;;
+                 esac
+fi
+
+   if test "$ENABLE_ALWAYS_BUILD_TESTS" = "1"; then
+  ENABLE_ALWAYS_BUILD_TESTS_TRUE=
+  ENABLE_ALWAYS_BUILD_TESTS_FALSE='#'
+else
+  ENABLE_ALWAYS_BUILD_TESTS_TRUE='#'
+  ENABLE_ALWAYS_BUILD_TESTS_FALSE=
+fi
+
+  if test "$ENABLE_INSTALLED_TESTS" = "1"; then
+    installed_test_metadir=${datadir}/installed-tests/json-glib
+
+    installed_testdir=${libexecdir}/installed-tests/json-glib
+
+  fi
 
 
 
@@ -12302,7 +12965,7 @@ esac
           as_fn_error $? "ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1." "$LINENO" 5
         fi
 
-        ltp_version_list="1.6 1.7 1.8 1.9"
+        ltp_version_list="1.6 1.7 1.8 1.9 1.10"
         # Extract the first word of "lcov", so it can be a program name with args.
 set dummy lcov; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 
 
 
-    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+  gtk_doc_requires="gtk-doc >= 1.20"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5
+$as_echo_n "checking for gtk-doc... " >&6; }
+  if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  have_gtk_doc=yes
+else
+  have_gtk_doc=no
+fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5
+$as_echo "$have_gtk_doc" >&6; }
+
+  if test "$have_gtk_doc" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&5
+$as_echo "$as_me: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&2;}
+  fi
+
+            # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_GTKDOC_CHECK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$GTKDOC_CHECK"; then
+  ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  # Extract the first word of "gtkdoc-check", so it can be a program name with args.
 set dummy gtkdoc-check; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
+if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GTKDOC_CHECK in
+  case $GTKDOC_CHECK_PATH in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -12465,7 +13190,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -12476,10 +13201,10 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH
+if test -n "$GTKDOC_CHECK_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5
+$as_echo "$GTKDOC_CHECK_PATH" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -12592,18 +13317,19 @@ else
 fi
 
 
-  if test x$enable_gtk_doc = xyes; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.13\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.13") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  :
-else
-  as_fn_error $? "You need to have gtk-doc >= 1.13 installed to build $PACKAGE_NAME" "$LINENO" 5
-fi
-        if test "x$PACKAGE_NAME" != "xglib"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    as_fn_error $? "
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5
+  fi
+
+    if test "x$PACKAGE_NAME" != "xglib"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
@@ -12675,14 +13401,8 @@ else
 $as_echo "yes" >&6; }
 
 fi
-    fi
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
-$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
-$as_echo "$enable_gtk_doc" >&6; }
-
     # Check whether --enable-gtk-doc-html was given.
 if test "${enable_gtk_doc_html+set}" = set; then :
   enableval=$enable_gtk_doc_html;
   fi
 
 
+   if test x$have_gtk_doc = xyes; then
+  HAVE_GTK_DOC_TRUE=
+  HAVE_GTK_DOC_FALSE='#'
+else
+  HAVE_GTK_DOC_TRUE='#'
+  HAVE_GTK_DOC_FALSE=
+fi
+
    if test x$enable_gtk_doc = xyes; then
   ENABLE_GTK_DOC_TRUE=
   ENABLE_GTK_DOC_FALSE='#'
 
 
 
+# Check whether --enable-man, was given.
+if test "${enable_man+set}" = set; then :
+  enableval=$enable_man;
+fi
+
+
+if test "$enable_man" != no; then :
+
+  # Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XSLTPROC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  if test -z "$XSLTPROC"; then :
+
+    if test "$enable_man" = yes; then :
+
+      as_fn_error $? "xsltproc is required for --enable-man" "$LINENO" 5
+
+fi
+    enable_man=no
+
+fi
+
+fi
+
+
+  # check for the presence of the XML catalog
+
+# Check whether --with-xml-catalog was given.
+if test "${with_xml_catalog+set}" = set; then :
+  withval=$with_xml_catalog;
+else
+  with_xml_catalog=/etc/xml/catalog
+fi
+
+  jh_found_xmlcatalog=true
+  XML_CATALOG_FILE="$with_xml_catalog"
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML catalog ($XML_CATALOG_FILE)" >&5
+$as_echo_n "checking for XML catalog ($XML_CATALOG_FILE)... " >&6; }
+  if test -f "$XML_CATALOG_FILE"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+  else
+    jh_found_xmlcatalog=false
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+  fi
+
+  # check for the xmlcatalog program
+  # Extract the first word of "xmlcatalog", so it can be a program name with args.
+set dummy xmlcatalog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLCATALOG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XMLCATALOG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XMLCATALOG="$XMLCATALOG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_XMLCATALOG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_XMLCATALOG" && ac_cv_path_XMLCATALOG="no"
+  ;;
+esac
+fi
+XMLCATALOG=$ac_cv_path_XMLCATALOG
+if test -n "$XMLCATALOG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLCATALOG" >&5
+$as_echo "$XMLCATALOG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  if test "x$XMLCATALOG" = xno; then
+    jh_found_xmlcatalog=false
+  fi
+
+  if $jh_found_xmlcatalog; then
+    :
+  else
+    :
+  fi
+
+if  test "$enable_man" != no ; then :
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XML DTD V4.1.2 in XML catalog" >&5
+$as_echo_n "checking for DocBook XML DTD V4.1.2 in XML catalog... " >&6; }
+  if $jh_found_xmlcatalog && \
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"-//OASIS//DTD DocBook XML V4.1.2//EN\" >&2"; } >&5
+  ($XMLCATALOG --noout "$XML_CATALOG_FILE" "-//OASIS//DTD DocBook XML V4.1.2//EN" >&2) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+    have_docbook_dtd=yes
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+    have_docbook_dtd=no
+  fi
+
+  if test "$have_docbook_dtd" != yes; then :
+
+    if test "$enable_man" = yes ; then :
+
+      as_fn_error $? "DocBook DTD is required for --enable-man" "$LINENO" 5
+
+fi
+    enable_man=no
+
+fi
+
+fi
+
+if test "$enable_man" != no; then :
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XSL Stylesheets in XML catalog" >&5
+$as_echo_n "checking for DocBook XSL Stylesheets in XML catalog... " >&6; }
+  if $jh_found_xmlcatalog && \
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl\" >&2"; } >&5
+  ($XMLCATALOG --noout "$XML_CATALOG_FILE" "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" >&2) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+    have_docbook_style=yes
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+    have_docbook_style=no
+  fi
+
+  if  test "$have_docbook_dtd" != yes ; then :
+
+    if  test "$enable_man" = yes ; then :
+
+      as_fn_error $? "DocBook XSL Stylesheets are required for --enable-man" "$LINENO" 5
+
+fi
+    enable_man=no
+
+fi
+
+fi
+
+ if test "$enable_man" != no; then
+  ENABLE_MAN_TRUE=
+  ENABLE_MAN_FALSE='#'
+else
+  ENABLE_MAN_TRUE='#'
+  ENABLE_MAN_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to generate man pages" >&5
+$as_echo_n "checking whether to generate man pages... " >&6; }
+if  test "$enable_man" != no ; then :
+
+  enable_man=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
 
 
 
@@ -12801,6 +13756,7 @@ fi
 else
   found_introspection=no
 fi
+               enable_introspection=$found_introspection
      ;; #(
   *) :
                 as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
@@ -14906,7 +15862,7 @@ $as_echo "$ALL_LINGUAS" >&6; }
 
 
 
-ac_config_files="$ac_config_files Makefile build/Makefile build/autotools/Makefile build/win32/Makefile build/win32/config.h.win32 build/win32/vs9/Makefile build/win32/vs10/Makefile json-glib/Makefile json-glib/json-version.h json-glib/tests/Makefile doc/Makefile doc/reference/Makefile doc/reference/version.xml po/Makefile.in json-glib.pc"
+ac_config_files="$ac_config_files Makefile build/Makefile build/autotools/Makefile build/win32/Makefile build/win32/config.h.win32 build/win32/vs9/Makefile build/win32/vs10/Makefile json-glib/Makefile json-glib/json-glib.pc json-glib/json-version.h json-glib/tests/Makefile doc/Makefile doc/reference/Makefile doc/reference/version.xml po/Makefile.in"
 
 
 cat >confcache <<\_ACEOF
@@ -15050,14 +16006,22 @@ if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then
   as_fn_error $? "conditional \"OS_WIN32\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${ENABLE_GLIB_TEST_TRUE}" && test -z "${ENABLE_GLIB_TEST_FALSE}"; then
-  as_fn_error $? "conditional \"ENABLE_GLIB_TEST\" was never defined.
+if test -z "${ENABLE_INSTALLED_TESTS_TRUE}" && test -z "${ENABLE_INSTALLED_TESTS_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_INSTALLED_TESTS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_ALWAYS_BUILD_TESTS_TRUE}" && test -z "${ENABLE_ALWAYS_BUILD_TESTS_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_ALWAYS_BUILD_TESTS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ENABLE_GCOV_TRUE}" && test -z "${ENABLE_GCOV_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_GCOV\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -15078,6 +16042,10 @@ if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"
   as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${ENABLE_MAN_TRUE}" && test -z "${ENABLE_MAN_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_MAN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -15479,7 +16447,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 json-glib $as_me 0.16.0, which was
+This file was extended by json-glib $as_me 1.2.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15546,7 +16514,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="\\
-json-glib config.status 0.16.0
+json-glib config.status 1.2.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -15681,6 +16649,7 @@ enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
@@ -15730,10 +16699,13 @@ compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
@@ -15798,7 +16770,8 @@ finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
@@ -15849,9 +16822,12 @@ CFLAGS \
 compiler \
 lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
 nm_file_list_spec \
+lt_cv_truncate_bin \
 lt_prog_compiler_no_builtin_flag \
 lt_prog_compiler_pic \
 lt_prog_compiler_wl \
@@ -15886,7 +16862,7 @@ old_striplib \
 striplib; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -15913,10 +16889,11 @@ postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -15925,19 +16902,16 @@ sys_lib_dlsearch_path_spec; do
 done
 
 ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
 
-# See if we are running on zsh, and set the options which allow our
+# See if we are running on zsh, and set the options that allow our
 # commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
+if test -n "\${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
 
     PACKAGE='$PACKAGE'
     VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
     RM='$RM'
     ofile='$ofile'
 
     "build/win32/vs9/Makefile") CONFIG_FILES="$CONFIG_FILES build/win32/vs9/Makefile" ;;
     "build/win32/vs10/Makefile") CONFIG_FILES="$CONFIG_FILES build/win32/vs10/Makefile" ;;
     "json-glib/Makefile") CONFIG_FILES="$CONFIG_FILES json-glib/Makefile" ;;
+    "json-glib/json-glib.pc") CONFIG_FILES="$CONFIG_FILES json-glib/json-glib.pc" ;;
     "json-glib/json-version.h") CONFIG_FILES="$CONFIG_FILES json-glib/json-version.h" ;;
     "json-glib/tests/Makefile") CONFIG_FILES="$CONFIG_FILES json-glib/tests/Makefile" ;;
     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
     "doc/reference/Makefile") CONFIG_FILES="$CONFIG_FILES doc/reference/Makefile" ;;
     "doc/reference/version.xml") CONFIG_FILES="$CONFIG_FILES doc/reference/version.xml" ;;
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
-    "json-glib.pc") CONFIG_FILES="$CONFIG_FILES json-glib.pc" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
@@ -16625,7 +17599,7 @@ $as_echo X"$mf" |
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
@@ -16668,55 +17642,53 @@ $as_echo X"$file" |
  ;;
     "libtool":C)
 
-    # See if we are running on zsh, and set the options which allow our
+    # See if we are running on zsh, and set the options that allow our
     # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
+    if test -n "${ZSH_VERSION+set}"; then
       setopt NO_GLOB_SUBST
     fi
 
-    cfgfile="${ofile}T"
+    cfgfile=${ofile}T
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Generated automatically by $as_me ($PACKAGE) $VERSION
 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
 #
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
 #
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 # The names of the tagged configurations supported by this script.
-available_tags=""
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
 
 # ### BEGIN LIBTOOL CONFIG
 
@@ -16736,6 +17708,9 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
 # Shell to use when invoking shell scripts.
 SHELL=$lt_SHELL
 
@@ -16853,18 +17828,27 @@ global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 # Transform the output of nm in a proper C declaration.
 global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
 # Transform the output of nm in a C name address pair.
 global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
 # Specify filename containing input files for \$NM.
 nm_file_list_spec=$lt_nm_file_list_spec
 
-# The root where to search for dependent libraries,and in which our libraries should be installed.
+# The root where to search for dependent libraries,and where our libraries should be installed.
 lt_sysroot=$lt_sysroot
 
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
 # The name of the directory that contains temporary libtool files.
 objdir=$objdir
 
@@ -16955,8 +17939,11 @@ hardcode_into_libs=$hardcode_into_libs
 # Compile-time system search path for libraries.
 sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
 
 # Whether dlopen is supported.
 dlopen_support=$enable_dlopen
@@ -17049,13 +18036,13 @@ hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary.
 hardcode_direct=$hardcode_direct
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
 # DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
 # library is relocated.
 hardcode_direct_absolute=$hardcode_direct_absolute
 
@@ -17107,13 +18094,72 @@ hardcode_action=$hardcode_action
 
 _LT_EOF
 
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
   case $host_os in
   aix3*)
     cat <<\_LT_EOF >> "$cfgfile"
 # AIX sometimes has problems with the GCC collect2 program.  For some
 # reason, if we set the COLLECT_NAMES environment variable, the problems
 # vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
+if test set != "${COLLECT_NAMES+set}"; then
   COLLECT_NAMES=
   export COLLECT_NAMES
 fi
@@ -17122,7 +18168,7 @@ _LT_EOF
   esac
 
 
-ltmain="$ac_aux_dir/ltmain.sh"
+ltmain=$ac_aux_dir/ltmain.sh
 
 
   # We use sed instead of cat because bash on DJGPP gets confused if
@@ -17132,165 +18178,6 @@ ltmain="$ac_aux_dir/ltmain.sh"
   sed '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
    mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
@@ -17458,8 +18345,9 @@ echo " • Debug level: ${enable_debug}"
 echo " • Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
 echo ""
 echo " • API reference: ${enable_gtk_doc}"
+echo " • Manual pages: ${enable_man}"
 echo ""
-echo " • Enable test suite: ${enable_glibtest}"
+echo " • Install tests: ${ENABLE_INSTALLED_TESTS}"
 echo " • Build introspection data: ${enable_introspection}"
 echo " • Enable test coverage: ${use_gcov}"
 echo ""
index d6b57aa..86df9d9 100644 (file)
@@ -1,7 +1,7 @@
 # bump micro_version to the next even number for each point release
 # bump micro_version to the next odd number after each release
-m4_define([json_major_version], [0])
-m4_define([json_minor_version], [16])
+m4_define([json_major_version], [1])
+m4_define([json_minor_version], [2])
 m4_define([json_micro_version], [0])
 
 m4_define([json_version], [json_major_version.json_minor_version.json_micro_version])
@@ -20,7 +20,7 @@ m4_define([lt_current], [m4_eval(100 * json_minor_version + json_micro_version -
 m4_define([lt_revision], [json_interface_age])
 m4_define([lt_age], [m4_eval(json_binary_age - json_interface_age)])
 
-m4_define([glib_req_version], [2.34.0])
+m4_define([glib_req_version], [2.37.6])
 
 AC_PREREQ([2.63])
 
@@ -35,7 +35,7 @@ AC_CONFIG_SRCDIR([json-glib/json-glib.h])
 AC_CONFIG_AUX_DIR([build])
 AC_CONFIG_MACRO_DIR([build/autotools])
 
-AM_INIT_AUTOMAKE([1.11 no-define foreign -Wno-portability dist-xz no-dist-gzip tar-ustar])
+AM_INIT_AUTOMAKE([1.11 no-define foreign -Wno-portability dist-xz no-dist-gzip tar-ustar subdir-objects])
 
 AM_SILENT_RULES([yes])
 AM_PATH_GLIB_2_0
@@ -93,8 +93,63 @@ AC_MSG_RESULT([$platform_win32])
 AM_CONDITIONAL(OS_LINUX, [test "$platform_linux" = "yes"])
 AM_CONDITIONAL(OS_WIN32, [test "$platform_win32" = "yes"])
 
+# Check for -Bsymbolic-functions to avoid intra-library PLT jumps
+AC_ARG_ENABLE([Bsymbolic],
+              [AS_HELP_STRING([--disable-Bsymbolic],
+                              [Avoid linking with -Bsymbolic])],
+              [],
+              [
+                saved_LDFLAGS="${LDFLAGS}"
+                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
+                LDFLAGS=-Wl,-Bsymbolic-functions
+                AC_TRY_LINK([], [int main (void) { return 0; }],
+                            [
+                              AC_MSG_RESULT([yes])
+                              enable_Bsymbolic=yes
+                            ],
+                            [
+                              AC_MSG_RESULT([no])
+                              enable_Bsymbolic=no
+                            ])
+                LDFLAGS="${saved_LDFLAGS}"
+              ])
+
+AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_LINK_FLAGS=-Wl[,]-Bsymbolic-functions])
+JSON_LT_LDFLAGS="$JSON_LT_LDFLAGS $JSON_LINK_FLAGS"
+
 AC_SUBST(JSON_LT_LDFLAGS)
 
+dnl === Visibility ============================================================
+
+JSON_HIDDEN_VISIBILITY_CFLAGS=""
+case "$host" in
+  *-*-mingw*)
+    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
+    AC_DEFINE([_JSON_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern],
+              [defines how to decorate public symbols while building])
+    CFLAGS="${CFLAGS} -fvisibility=hidden"
+    ;;
+  *)
+    dnl on other compilers, check if we can do -fvisibility=hidden
+    SAVED_CFLAGS="${CFLAGS}"
+    CFLAGS="-fvisibility=hidden"
+    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
+    AC_TRY_COMPILE([], [int main (void) { return 0; }],
+                   AC_MSG_RESULT(yes)
+                   enable_fvisibility_hidden=yes,
+                   AC_MSG_RESULT(no)
+                   enable_fvisibility_hidden=no)
+    CFLAGS="${SAVED_CFLAGS}"
+
+    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
+      AC_DEFINE([_JSON_EXTERN], [__attribute__((visibility("default"))) extern],
+                [defines how to decorate public symbols while building])
+      JSON_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+    ])
+    ;;
+esac
+AC_SUBST(JSON_HIDDEN_VISIBILITY_CFLAGS)
+
 dnl === Dependencies ==========================================================
 
 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
@@ -102,8 +157,6 @@ AC_SUBST(GLIB_PREFIX)
 
 PKG_CHECK_MODULES(JSON, [gobject-2.0 >= glib_req_version gio-2.0])
 
-AM_CONDITIONAL(ENABLE_GLIB_TEST, [test "x$enable_glibtest" = "xyes"])
-
 dnl === Enable debug level ====================================================
 
 m4_define([debug_default], [m4_if(m4_eval(json_minor_version % 2), [1], [yes], [minimum])])
@@ -160,6 +213,10 @@ AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"],
 MAINTAINER_CFLAGS="${MAINTAINER_CFLAGS#*  }"
 AC_SUBST([MAINTAINER_CFLAGS])
 
+dnl === Test suite ============================================================
+
+GLIB_TESTS
+
 dnl === Test coverage =========================================================
 
 AC_ARG_ENABLE([gcov],
@@ -182,7 +239,7 @@ AS_IF([test "x$use_gcov" = "xyes"],
           AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
         fi
 
-        ltp_version_list="1.6 1.7 1.8 1.9"
+        ltp_version_list="1.6 1.7 1.8 1.9 1.10"
         AC_CHECK_PROG(LTP, lcov, lcov)
         AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
 
@@ -237,7 +294,56 @@ AM_CONDITIONAL(ENABLE_GCOV, test "x$use_gcov" = "xyes")
 
 dnl === Documentation =========================================================
 
-GTK_DOC_CHECK([1.13], [--flavour no-tmpl])
+GTK_DOC_CHECK([1.20], [--flavour no-tmpl])
+
+AC_ARG_ENABLE([man,],
+              [AS_HELP_STRING([--enable-man], [generate man pages @<:@default=auto@:>@])],
+              [],
+              [enable_man=maybe])
+
+AS_IF([test "$enable_man" != no], [
+  AC_PATH_PROG([XSLTPROC], [xsltproc])
+  AS_IF([test -z "$XSLTPROC"], [
+    AS_IF([test "$enable_man" = yes], [
+      AC_MSG_ERROR([xsltproc is required for --enable-man])
+    ])
+    enable_man=no
+  ])
+])
+
+AS_IF([ test "$enable_man" != no ], [
+  dnl check for DocBook DTD in the local catalog
+  JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
+     [DocBook XML DTD V4.1.2], [have_docbook_dtd=yes], [have_docbook_dtd=no])
+  AS_IF([test "$have_docbook_dtd" != yes], [
+    AS_IF([test "$enable_man" = yes ], [
+      AC_MSG_ERROR([DocBook DTD is required for --enable-man])
+    ])
+    enable_man=no
+  ])
+])
+
+AS_IF([test "$enable_man" != no], [
+  dnl check for DocBook XSL stylesheets in the local catalog
+  JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
+     [DocBook XSL Stylesheets], [have_docbook_style=yes],[have_docbook_style=no])
+  AS_IF([ test "$have_docbook_dtd" != yes ], [
+    AS_IF([ test "$enable_man" = yes ], [
+      AC_MSG_ERROR([DocBook XSL Stylesheets are required for --enable-man])
+    ])
+    enable_man=no
+  ])
+])
+
+AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
+
+AC_MSG_CHECKING([whether to generate man pages])
+AS_IF([ test "$enable_man" != no ], [
+  enable_man=yes
+  AC_MSG_RESULT([yes])
+], [
+  AC_MSG_RESULT([no])
+])
 
 dnl === Introspection =========================================================
 
@@ -271,6 +377,7 @@ AC_CONFIG_FILES([
         build/win32/vs10/Makefile
 
         json-glib/Makefile
+        json-glib/json-glib.pc
         json-glib/json-version.h
         json-glib/tests/Makefile
 
@@ -279,8 +386,6 @@ AC_CONFIG_FILES([
         doc/reference/version.xml
 
         po/Makefile.in
-
-        json-glib.pc
 ])
 
 AC_OUTPUT
@@ -296,8 +401,9 @@ echo " • Debug level: ${enable_debug}"
 echo " • Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
 echo ""
 echo " • API reference: ${enable_gtk_doc}"
+echo " • Manual pages: ${enable_man}"
 echo ""
-echo " • Enable test suite: ${enable_glibtest}"
+echo " • Install tests: ${ENABLE_INSTALLED_TESTS}"
 echo " • Build introspection data: ${enable_introspection}"
 echo " • Enable test coverage: ${use_gcov}"
 echo ""
index ee6e789..d842b36 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,16 +88,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -74,6 +113,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -133,6 +173,7 @@ am__define_uniq_tagged_files = \
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -198,6 +239,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -222,6 +264,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -243,6 +286,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -279,6 +323,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -312,6 +359,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -347,7 +396,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign doc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -379,13 +427,12 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -645,6 +692,8 @@ uninstall-am:
        mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
        uninstall-am
 
+.PRECIOUS: Makefile
+
 
 test-report:
        @true
index b5c6695..9650ce0 100644 (file)
@@ -1,50 +1,19 @@
-# This is a blank Makefile.am for using gtk-doc.
-# Copy this to your project's API docs directory and modify the variables to
-# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
-# of using the various options.
-
-# The name of the module, e.g. 'glib'.
 DOC_MODULE = json-glib
-
-# The top-level XML file. You can change this if you want to.
 DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
+DOC_SOURCE_DIR = $(top_srcdir)/json-glib $(top_builddir)/json-glib
 
-# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR = ../../json-glib
-
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS = --type-init-func="g_type_init()"
-
-# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" 
-SCAN_OPTIONS = --deprecated-guards="JSON_DISABLE_DEPRECATED"
-
-# Extra options to supply to gtkdoc-mkdb.
-# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
-MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=json
-
-# Extra options to supply to gtkdoc-mktmpl
-# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+SCANGOBJ_OPTIONS =
+SCAN_OPTIONS = --deprecated-guards="JSON_DISABLE_DEPRECATED" --rebuild-types
+MKDB_OPTIONS = --output-format=xml --name-space=json
 MKTMPL_OPTIONS =
-
-# Extra options to supply to gtkdoc-fixref. Not normally needed.
-# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
 FIXXREF_OPTIONS = \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio
 
-# Used for dependencies. The docs will be rebuilt if any of these change.
-# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
-# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
 HFILE_GLOB = $(top_srcdir)/json-glib/*.h $(top_builddir)/json-glib/*.h
 CFILE_GLOB = $(top_srcdir)/json-glib/*.c
 
-# Header files to ignore when scanning.
-# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
 IGNORE_HFILES = \
        json-scanner.h          \
        json-types-private.h    \
@@ -57,42 +26,52 @@ IGNORE_HFILES = \
 
 EXTRA_HFILES =
 
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
 HTML_IMAGES =
 
-# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
-# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files = version.xml
+content_files = \
+       json-glib-format.xml \
+       json-glib-validate.xml \
+       version.xml
 
-# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
-# These files must be listed here *and* in content_files
-# e.g. expand_content_files=running.sgml
 expand_content_files =
 
-# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
-# Only needed if you are using gtkdoc-scangobj to dynamically query widget
-# signals and properties.
-# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
-# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-
-INCLUDES = -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
 GTKDOC_LIBS = $(top_builddir)/json-glib/libjson-glib-1.0.la $(JSON_LIBS)
 
-# needed to avoid including Makefile.am.gtest which redeclares
-# EXTRA_DIST and generates a warning when the gtk-doc.make include
-# below
-test-report:
-       @true
+include $(top_srcdir)/gtk-doc.make
 
-test:
-       @true
+EXTRA_DIST += version.xml.in
 
-check-local: test
+man_MANS =
 
-# This includes the standard gtk-doc make rules, copied by gtkdocize.
-include $(top_srcdir)/gtk-doc.make
+if ENABLE_GTK_DOC
+TESTS_ENVIRONMENT = \
+       DOC_MODULE=$(DOC_MODULE) \
+       DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
+       SRCDIR=$(abs_srcdir) \
+       BUILDDIR=$(abs_builddir)
 
-# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST += version.xml.in
+TESTS = $(GTKDOC_CHECK)
+endif
+
+if ENABLE_MAN
+man_MANS += \
+       json-glib-format.1 \
+       json-glib-validate.1
+
+XSLTPROC_FLAGS = \
+       --nonet \
+       --stringparam man.output.quietly 1 \
+       --stringparam funcsynopsis.style ansi \
+       --stringparam man.th.extra1.suppress 1 \
+       --stringparam man.authors.section.enabled 0 \
+       --stringparam man.copyright.section.enabled 0
+
+.xml.1:
+       $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+endif
+
+CLEANFILES ?=
+CLEANFILES += $(man_MANS)
+EXTRA_DIST += $(man_MANS)
index 9471f5f..8d6992e 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 
-# This is a blank Makefile.am for using gtk-doc.
-# Copy this to your project's API docs directory and modify the variables to
-# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
-# of using the various options.
-
 # -*- mode: makefile -*-
 
 ####################################
 # Everything below here is generic #
 ####################################
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -60,18 +93,22 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \
-       $(srcdir)/Makefile.am $(srcdir)/version.xml.in
+@ENABLE_MAN_TRUE@am__append_1 = \
+@ENABLE_MAN_TRUE@      json-glib-format.1 \
+@ENABLE_MAN_TRUE@      json-glib-validate.1
+
 subdir = doc/reference
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -86,6 +123,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.xml
@@ -109,7 +147,215 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.xml.in \
+       $(top_srcdir)/build/test-driver $(top_srcdir)/gtk-doc.make
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -150,6 +396,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -174,6 +421,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -195,6 +443,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -231,6 +480,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -264,6 +516,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -283,50 +537,20 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-
-# The name of the module, e.g. 'glib'.
 DOC_MODULE = json-glib
-
-# The top-level XML file. You can change this if you want to.
 DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
-
-# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR = ../../json-glib
-
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS = --type-init-func="g_type_init()"
-
-# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" 
-SCAN_OPTIONS = --deprecated-guards="JSON_DISABLE_DEPRECATED"
-
-# Extra options to supply to gtkdoc-mkdb.
-# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
-MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=json
-
-# Extra options to supply to gtkdoc-mktmpl
-# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+DOC_SOURCE_DIR = $(top_srcdir)/json-glib $(top_builddir)/json-glib
+SCANGOBJ_OPTIONS = 
+SCAN_OPTIONS = --deprecated-guards="JSON_DISABLE_DEPRECATED" --rebuild-types
+MKDB_OPTIONS = --output-format=xml --name-space=json
 MKTMPL_OPTIONS = 
-
-# Extra options to supply to gtkdoc-fixref. Not normally needed.
-# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
 FIXXREF_OPTIONS = \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
        --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio
 
-
-# Used for dependencies. The docs will be rebuilt if any of these change.
-# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
-# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
 HFILE_GLOB = $(top_srcdir)/json-glib/*.h $(top_builddir)/json-glib/*.h
 CFILE_GLOB = $(top_srcdir)/json-glib/*.c
-
-# Header files to ignore when scanning.
-# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
 IGNORE_HFILES = \
        json-scanner.h          \
        json-types-private.h    \
@@ -338,26 +562,14 @@ IGNORE_HFILES = \
        json-debug.h
 
 EXTRA_HFILES = 
-
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
 HTML_IMAGES = 
+content_files = \
+       json-glib-format.xml \
+       json-glib-validate.xml \
+       version.xml
 
-# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
-# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files = version.xml
-
-# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
-# These files must be listed here *and* in content_files
-# e.g. expand_content_files=running.sgml
 expand_content_files = 
-
-# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
-# Only needed if you are using gtkdoc-scangobj to dynamically query widget
-# signals and properties.
-# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
-# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-INCLUDES = -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
 GTKDOC_LIBS = $(top_builddir)/json-glib/libjson-glib-1.0.la $(JSON_LIBS)
 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -375,16 +587,12 @@ GPATH = $(srcdir)
 TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
 SETUP_FILES = \
        $(content_files)                \
+       $(expand_content_files)         \
        $(DOC_MAIN_SGML_FILE)           \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
 
-
-# This includes the standard gtk-doc make rules, copied by gtkdocize.
-
-# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in
+EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in $(man_MANS)
 DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
        html-build.stamp pdf-build.stamp \
        sgml.stamp html.stamp pdf.stamp
@@ -401,11 +609,12 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \
+       gtkdoc-check.test $(man_MANS)
+@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
 
 #### setup ####
 GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
@@ -437,9 +646,26 @@ GTK_DOC_V_XREF_0 = @echo "  DOC   Fixing cross-references";
 GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
 GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_PDF_0 = @echo "  DOC   Building PDF";
+man_MANS = $(am__append_1)
+@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \
+@ENABLE_GTK_DOC_TRUE@  DOC_MODULE=$(DOC_MODULE) \
+@ENABLE_GTK_DOC_TRUE@  DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
+@ENABLE_GTK_DOC_TRUE@  SRCDIR=$(abs_srcdir) \
+@ENABLE_GTK_DOC_TRUE@  BUILDDIR=$(abs_builddir)
+
+@ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK)
+@ENABLE_MAN_TRUE@XSLTPROC_FLAGS = \
+@ENABLE_MAN_TRUE@      --nonet \
+@ENABLE_MAN_TRUE@      --stringparam man.output.quietly 1 \
+@ENABLE_MAN_TRUE@      --stringparam funcsynopsis.style ansi \
+@ENABLE_MAN_TRUE@      --stringparam man.th.extra1.suppress 1 \
+@ENABLE_MAN_TRUE@      --stringparam man.authors.section.enabled 0 \
+@ENABLE_MAN_TRUE@      --stringparam man.copyright.section.enabled 0
+
 all: all-am
 
 .SUFFIXES:
+.SUFFIXES: .1 .log .test .test$(EXEEXT) .trs .xml
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
@@ -452,7 +678,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__c
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/reference/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign doc/reference/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -461,7 +686,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
-$(top_srcdir)/gtk-doc.make:
+$(top_srcdir)/gtk-doc.make $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -479,6 +704,49 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
+install-man1: $(man_MANS)
+       @$(NORMAL_INSTALL)
+       @list1=''; \
+       list2='$(man_MANS)'; \
+       test -n "$(man1dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+           | sed -n '/\.1[a-z]*$$/p'; \
+       fi; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
+       done; \
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
+uninstall-man1:
+       @$(NORMAL_UNINSTALL)
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 tags TAGS:
 
 ctags CTAGS:
@@ -486,6 +754,162 @@ ctags CTAGS:
 cscope cscopelist:
 
 
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+         fi; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       elif test -n "$$redo_logs"; then \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
+           else \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+           fi; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
+           else \
+             color_start= color_end=; \
+           fi; \
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all 
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
+
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -520,10 +944,14 @@ distdir: $(DISTFILES)
          top_distdir="$(top_distdir)" distdir="$(distdir)" \
          dist-hook
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-local
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
 check: check-am
-all-am: Makefile all-local
+@ENABLE_GTK_DOC_FALSE@all-local:
+all-am: Makefile $(MANS) all-local
 installdirs:
+       for dir in "$(DESTDIR)$(man1dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -544,6 +972,9 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -575,7 +1006,7 @@ info: info-am
 
 info-am:
 
-install-data-am: install-data-local
+install-data-am: install-data-local install-man
 
 install-dvi: install-dvi-am
 
@@ -591,7 +1022,7 @@ install-info: install-info-am
 
 install-info-am:
 
-install-man:
+install-man: install-man1
 
 install-pdf: install-pdf-am
 
@@ -620,38 +1051,39 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-local
+uninstall-am: uninstall-local uninstall-man
+
+uninstall-man: uninstall-man1
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: all all-am all-local check check-am check-local clean \
+.PHONY: all all-am all-local check check-TESTS check-am clean \
        clean-generic clean-libtool clean-local cscopelist-am ctags-am \
        dist-hook distclean distclean-generic distclean-libtool \
        distclean-local distdir dvi dvi-am html html-am info info-am \
        install install-am install-data install-data-am \
        install-data-local install-dvi install-dvi-am install-exec \
        install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
+       install-info-am install-man install-man1 install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic maintainer-clean-local mostlyclean \
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags-am uninstall uninstall-am uninstall-local
+       recheck tags-am uninstall uninstall-am uninstall-local \
+       uninstall-man uninstall-man1
 
+.PRECIOUS: Makefile
 
-# needed to avoid including Makefile.am.gtest which redeclares
-# EXTRA_DIST and generates a warning when the gtk-doc.make include
-# below
-test-report:
-       @true
 
-test:
-       @true
+gtkdoc-check.test: Makefile
+       $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+               echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+               chmod +x $@
 
-check-local: test
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
 
-@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-@ENABLE_GTK_DOC_FALSE@all-local:
+@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 
@@ -659,17 +1091,19 @@ $(REPORT_FILES): sgml-build.stamp
 
 setup-build.stamp:
        -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+           files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
            if test "x$$files" != "x" ; then \
                for file in $$files ; do \
+                   destdir=`dirname $(abs_builddir)/$$file`; \
+                   test -d "$$destdir" || mkdir -p "$$destdir"; \
                    test -f $(abs_srcdir)/$$file && \
-                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+                       cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
                done; \
            fi; \
        fi
        $(AM_V_at)touch setup-build.stamp
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
        $(GTK_DOC_V_SCAN)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
@@ -678,7 +1112,7 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
        $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
            scanobj_options=""; \
            gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-           if test "$(?)" = "0"; then \
+           if test "$$?" = "0"; then \
                if test "x$(V)" = "x1"; then \
                    scanobj_options="--verbose"; \
                fi; \
@@ -706,17 +1140,17 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DO
 sgml.stamp: sgml-build.stamp
        @true
 
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
        mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkhtml_options="$$mkhtml_options --verbose"; \
          fi; \
        fi; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
        fi; \
        cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
@@ -732,11 +1166,11 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
        $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
        $(AM_V_at)touch html-build.stamp
 
-pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
        mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkpdf_options="$$mkpdf_options --verbose"; \
          fi; \
@@ -758,12 +1192,18 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 clean-local:
        @rm -f *~ *.bak
        @rm -rf .libs
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+         rm -f $(DOC_MODULE).types; \
+       fi
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
+         rm -f $(DOC_MODULE)-sections.txt; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
            $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
        @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
        fi
 
 maintainer-clean-local:
@@ -802,12 +1242,14 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
-@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
-@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
-@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
-@ENABLE_GTK_DOC_FALSE@ @false
-
-dist-hook: dist-check-gtkdoc dist-hook-local
+@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
+@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@HAVE_GTK_DOC_FALSE@   @echo "*** gtk-doc is needed to run 'make dist'.         ***"
+@HAVE_GTK_DOC_FALSE@   @echo "*** gtk-doc was not found when 'configure' ran.   ***"
+@HAVE_GTK_DOC_FALSE@   @echo "*** please install gtk-doc and rerun 'configure'. ***"
+@HAVE_GTK_DOC_FALSE@   @false
+
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
        @mkdir $(distdir)/html
        @cp ./html/* $(distdir)/html
        @-cp ./$(DOC_MODULE).pdf $(distdir)/
@@ -818,6 +1260,11 @@ dist-hook: dist-check-gtkdoc dist-hook-local
 
 .PHONY : dist-hook-local docs
 
+@ENABLE_MAN_TRUE@.xml.1:
+@ENABLE_MAN_TRUE@      $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+CLEANFILES ?=
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 406e48d..2833829 100644 (file)
@@ -2,32 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JsonBuilder</title>
+<title>JsonBuilder: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch03.html" title="Generator">
 <link rel="prev" href="JsonGenerator.html" title="JsonGenerator">
-<link rel="next" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="ch04.html" title="General Purpose API">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="JsonGenerator.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-advanced.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#JsonBuilder.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#JsonBuilder.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#JsonBuilder.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#JsonBuilder.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#JsonBuilder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#JsonBuilder.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="JsonGenerator.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch04.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="JsonBuilder"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="JsonBuilder.top_of_page"></a>JsonBuilder</span></h2>
 <p>JsonBuilder — Generates JSON trees</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="JsonBuilder.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="JsonBuilder.html#JsonBuilder-struct" title="struct JsonBuilder">JsonBuilder</a>;
-struct              <a class="link" href="JsonBuilder.html#JsonBuilderClass" title="struct JsonBuilderClass">JsonBuilderClass</a>;
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-new" title="json_builder_new ()">json_builder_new</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonBuilder.html#json-builder-get-root" title="json_builder_get_root ()">json_builder_get_root</a>               (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonBuilder.html#json-builder-reset" title="json_builder_reset ()">json_builder_reset</a>                  (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()">json_builder_begin_array</a>            (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()">json_builder_end_array</a>              (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()">json_builder_begin_object</a>           (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()">json_builder_set_member_name</a>        (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()">json_builder_end_object</a>             (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()">json_builder_add_value</a>              (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-int-value" title="json_builder_add_int_value ()">json_builder_add_int_value</a>          (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-double-value" title="json_builder_add_double_value ()">json_builder_add_double_value</a>       (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-boolean-value" title="json_builder_add_boolean_value ()">json_builder_add_boolean_value</a>      (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-string-value" title="json_builder_add_string_value ()">json_builder_add_string_value</a>       (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       <a class="link" href="JsonBuilder.html#json-builder-add-null-value" title="json_builder_add_null_value ()">json_builder_add_null_value</a>         (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);
-</pre>
+<div class="refsect1">
+<a name="JsonBuilder.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-new" title="json_builder_new ()">json_builder_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-new-immutable" title="json_builder_new_immutable ()">json_builder_new_immutable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-get-root" title="json_builder_get_root ()">json_builder_get_root</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-reset" title="json_builder_reset ()">json_builder_reset</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()">json_builder_begin_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()">json_builder_end_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()">json_builder_begin_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()">json_builder_set_member_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()">json_builder_end_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()">json_builder_add_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-int-value" title="json_builder_add_int_value ()">json_builder_add_int_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-double-value" title="json_builder_add_double_value ()">json_builder_add_double_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-boolean-value" title="json_builder_add_boolean_value ()">json_builder_add_boolean_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-string-value" title="json_builder_add_string_value ()">json_builder_add_string_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonBuilder.html#json-builder-add-null-value" title="json_builder_add_null_value ()">json_builder_add_null_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="JsonBuilder.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type"><span class="type">gboolean</span></td>
+<td class="property_name"><a class="link" href="JsonBuilder.html#JsonBuilder--immutable" title="The “immutable” property">immutable</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="JsonBuilder.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonBuilder.html#JsonBuilder-struct" title="struct JsonBuilder">JsonBuilder</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonBuilder.html#JsonBuilderClass" title="struct JsonBuilderClass">JsonBuilderClass</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="JsonBuilder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  GObject
-   +----JsonBuilder
+<pre class="screen">    GObject
+    <span class="lineart">╰──</span> JsonBuilder
 </pre>
 </div>
 <div class="refsect1">
 <a name="JsonBuilder.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> provides an object for generating a JSON tree.
-You can generate only one tree with one <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> instance.
-</p>
-<p>
-The root of the JSON tree can be either a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> or a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>.
+<p><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> provides an object for generating a JSON tree.
+You can generate only one tree with one <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> instance.</p>
+<p>The root of the JSON tree can be either a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> or a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>.
 Thus the first call must necessarily be either
-<a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()"><code class="function">json_builder_begin_object()</code></a> or <a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()"><code class="function">json_builder_begin_array()</code></a>.
-</p>
-<p>
-For convenience to language bindings, <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> returns itself from
-most of functions, making it easy to chain function calls.
-</p>
+<a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()"><code class="function">json_builder_begin_object()</code></a> or <a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()"><code class="function">json_builder_begin_array()</code></a>.</p>
+<p>For convenience to language bindings, <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> returns itself from
+most of functions, making it easy to chain function calls.</p>
 </div>
 <div class="refsect1">
-<a name="JsonBuilder.details"></a><h2>Details</h2>
+<a name="JsonBuilder.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="JsonBuilder-struct"></a><h3>struct JsonBuilder</h3>
-<pre class="programlisting">struct JsonBuilder;</pre>
-<p>
-The <span class="structname">JsonBuilder</span> structure contains only
-private data and shouls be accessed using the provided API
-</p>
-<p class="since">Since 0.12</p>
+<a name="json-builder-new"></a><h3>json_builder_new ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>. You can use this object to generate a
+JSON tree and obtain the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.2.5"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> instance</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonBuilderClass"></a><h3>struct JsonBuilderClass</h3>
-<pre class="programlisting">struct JsonBuilderClass {
-};
-</pre>
-<p>
-The <span class="structname">JsonBuilder</span> structure contains only
-private data
-</p>
-<p class="since">Since 0.12</p>
+<a name="json-builder-new-immutable"></a><h3>json_builder_new_immutable ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_new_immutable (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> instance with its <a class="link" href="JsonBuilder.html#JsonBuilder--immutable" title="The “immutable” property"><span class="type">“immutable”</span></a> property
+set to <code class="literal">TRUE</code> to create immutable output trees.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.3.5"></a><h4>Returns</h4>
+<p> a new <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-new"></a><h3>json_builder_new ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_new                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>. You can use this object to generate a
-JSON tree and obtain the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-get-root"></a><h3>json_builder_get_root ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_builder_get_root (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Returns the root of the current constructed tree, if the build is complete
+(ie: all opened objects, object members and arrays are being closed).</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> instance</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.4.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code> if the build is not complete.
+Free the returned value with <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-get-root"></a><h3>json_builder_get_root ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_builder_get_root               (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Returns the root of the current constructed tree, if the build is complete
-(ie: all opened objects, object members and arrays are being closed).
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-reset"></a><h3>json_builder_reset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_builder_reset (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Resets the state of the <em class="parameter"><code>builder</code></em>
+ back to its initial state.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code> if the build is not complete.
-Free the returned value with <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-reset"></a><h3>json_builder_reset ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_builder_reset                  (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Resets the state of the <em class="parameter"><code>builder</code></em> back to its initial state.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-begin-array"></a><h3>json_builder_begin_array ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_begin_array (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Opens a subarray inside the given <em class="parameter"><code>builder</code></em>
+. When done adding members to
+the subarray, <a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()"><code class="function">json_builder_end_array()</code></a> must be called.</p>
+<p>Can be called for first or only if the call is associated to an object member
+or an array element.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.6.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-begin-array"></a><h3>json_builder_begin_array ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_begin_array            (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Opens a subarray inside the given <em class="parameter"><code>builder</code></em>. When done adding members to
-the subarray, <a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()"><code class="function">json_builder_end_array()</code></a> must be called.
-</p>
-<p>
-Can be called for first or only if the call is associated to an object member
-or an array element.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-end-array"></a><h3>json_builder_end_array ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_end_array (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Closes the subarray inside the given <em class="parameter"><code>builder</code></em>
+ that was opened by the most
+recent call to <a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()"><code class="function">json_builder_begin_array()</code></a>.</p>
+<p>Cannot be called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.7.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-end-array"></a><h3>json_builder_end_array ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_end_array              (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Closes the subarray inside the given <em class="parameter"><code>builder</code></em> that was opened by the most
-recent call to <a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()"><code class="function">json_builder_begin_array()</code></a>.
-</p>
-<p>
-Cannot be called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-begin-object"></a><h3>json_builder_begin_object ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_begin_object (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Opens a subobject inside the given <em class="parameter"><code>builder</code></em>
+. When done adding members to
+the subobject, <a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()"><code class="function">json_builder_end_object()</code></a> must be called.</p>
+<p>Can be called for first or only if the call is associated to an object member
+or an array element.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.8.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.8.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-begin-object"></a><h3>json_builder_begin_object ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_begin_object           (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Opens a subobject inside the given <em class="parameter"><code>builder</code></em>. When done adding members to
-the subobject, <a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()"><code class="function">json_builder_end_object()</code></a> must be called.
-</p>
-<p>
-Can be called for first or only if the call is associated to an object member
-or an array element.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-set-member-name"></a><h3>json_builder_set_member_name ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_set_member_name (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                              <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Set the name of the next member in an object. The next call must add a value,
+open an object or an array.</p>
+<p>Can be called only if the call is associated to an object.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.9.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-set-member-name"></a><h3>json_builder_set_member_name ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_set_member_name        (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Set the name of the next member in an object. The next call must add a value,
-open an object or an array.
-</p>
-<p>
-Can be called only if the call is associated to an object.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-end-object"></a><h3>json_builder_end_object ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_end_object (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>Closes the subobject inside the given <em class="parameter"><code>builder</code></em>
+ that was opened by the most
+recent call to <a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()"><code class="function">json_builder_begin_object()</code></a>.</p>
+<p>Cannot be called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.10.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-end-object"></a><h3>json_builder_end_object ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_end_object             (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-Closes the subobject inside the given <em class="parameter"><code>builder</code></em> that was opened by the most
-recent call to <a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()"><code class="function">json_builder_begin_object()</code></a>.
-</p>
-<p>
-Cannot be called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-value"></a><h3>json_builder_add_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                        <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>node</code></em>
+ as member of the
+most recent opened object, otherwise <em class="parameter"><code>node</code></em>
+ is added as element of the most
+recent opened array.</p>
+<p>The builder will take ownership of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> the value of the member or element. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.11.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-value"></a><h3>json_builder_add_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_value              (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>node</code></em> as member of the
-most recent opened object, otherwise <em class="parameter"><code>node</code></em> is added as element of the most
-recent opened array.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-int-value"></a><h3>json_builder_add_int_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_int_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                            <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em>
+ as member of the
+most recent opened object, otherwise <em class="parameter"><code>value</code></em>
+ is added as element of the most
+recent opened array.</p>
+<p>See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the value of the member or element</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member or element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.12.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-int-value"></a><h3>json_builder_add_int_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_int_value          (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em> as member of the
-most recent opened object, otherwise <em class="parameter"><code>value</code></em> is added as element of the most
-recent opened array.
-</p>
-<p>
-See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-double-value"></a><h3>json_builder_add_double_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_double_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                               <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em>
+ as member of the
+most recent opened object, otherwise <em class="parameter"><code>value</code></em>
+ is added as element of the most
+recent opened array.</p>
+<p>See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.13.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member or element</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member or element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.13.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-double-value"></a><h3>json_builder_add_double_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_double_value       (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em> as member of the
-most recent opened object, otherwise <em class="parameter"><code>value</code></em> is added as element of the most
-recent opened array.
-</p>
-<p>
-See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-boolean-value"></a><h3>json_builder_add_boolean_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_boolean_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                                <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em>
+ as member of the
+most recent opened object, otherwise <em class="parameter"><code>value</code></em>
+ is added as element of the most
+recent opened array.</p>
+<p>See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member or element</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member or element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.14.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-boolean-value"></a><h3>json_builder_add_boolean_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_boolean_value      (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em> as member of the
-most recent opened object, otherwise <em class="parameter"><code>value</code></em> is added as element of the most
-recent opened array.
-</p>
-<p>
-See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-string-value"></a><h3>json_builder_add_string_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_string_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em>
+ as member of the
+most recent opened object, otherwise <em class="parameter"><code>value</code></em>
+ is added as element of the most
+recent opened array.</p>
+<p>See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.15.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member or element</td>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member or element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.15.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-string-value"></a><h3>json_builder_add_string_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_string_value       (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets <em class="parameter"><code>value</code></em> as member of the
-most recent opened object, otherwise <em class="parameter"><code>value</code></em> is added as element of the most
-recent opened array.
-</p>
-<p>
-See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-builder-add-null-value"></a><h3>json_builder_add_null_value ()</h3>
+<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *
+json_builder_add_null_value (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
+<p>If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets null as member of the
+most recent opened object, otherwise null is added as element of the most
+recent opened array.</p>
+<p>See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.16.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member or element</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>builder</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.3.8.16.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonBuilder.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonBuilder-struct"></a><h3>struct JsonBuilder</h3>
+<pre class="programlisting">struct JsonBuilder;</pre>
+<p>The <code class="literal">JsonBuilder</code> structure contains only private data and should be
+accessed using the provided API</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-builder-add-null-value"></a><h3>json_builder_add_null_value ()</h3>
-<pre class="programlisting"><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="returnvalue">JsonBuilder</span></a> *       json_builder_add_null_value         (<em class="parameter"><code><a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> *builder</code></em>);</pre>
-<p>
-If called after <a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()"><code class="function">json_builder_set_member_name()</code></a>, sets null as member of the
-most recent opened object, otherwise null is added as element of the most
-recent opened array.
-</p>
-<p>
-See also: <a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()"><code class="function">json_builder_add_value()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a>, or <code class="literal">NULL</code> if the call was inconsistent. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
+<a name="JsonBuilderClass"></a><h3>struct JsonBuilderClass</h3>
+<pre class="programlisting">struct JsonBuilderClass {
+};
+</pre>
+<p>The <code class="literal">JsonBuilderClass</code> structure contains only private data</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonBuilder.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="JsonBuilder--immutable"></a><h3>The <code class="literal">“immutable”</code> property</h3>
+<pre class="programlisting">  “immutable”                <span class="type">gboolean</span></pre>
+<p>Whether the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> tree built by the <a class="link" href="JsonBuilder.html" title="JsonBuilder"><span class="type">JsonBuilder</span></a> should be immutable
+when created. Making the output immutable on creation avoids the expense
+of traversing it to make it immutable later.</p>
+<p>Flags: Read / Write / Construct Only</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 </div>
 <div class="refsect1">
 <a name="JsonBuilder.see-also"></a><h2>See Also</h2>
-JsonGenerator
+<p>JsonGenerator</p>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index bda4f03..ebf53ea 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JsonGenerator</title>
+<title>JsonGenerator: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch03.html" title="Generator">
 <link rel="prev" href="ch03.html" title="Generator">
 <link rel="next" href="JsonBuilder.html" title="JsonBuilder">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="JsonBuilder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#JsonGenerator.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#JsonGenerator.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#JsonGenerator.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#JsonGenerator.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#JsonGenerator.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#JsonGenerator.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#JsonGenerator.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="JsonBuilder.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="JsonGenerator"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="JsonGenerator.top_of_page"></a>JsonGenerator</span></h2>
 <p>JsonGenerator — Generates JSON data streams</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="JsonGenerator.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="JsonGenerator.html#JsonGenerator-struct" title="struct JsonGenerator">JsonGenerator</a>;
-struct              <a class="link" href="JsonGenerator.html#JsonGeneratorClass" title="struct JsonGeneratorClass">JsonGeneratorClass</a>;
-<a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="returnvalue">JsonGenerator</span></a> *     <a class="link" href="JsonGenerator.html#json-generator-new" title="json_generator_new ()">json_generator_new</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()">json_generator_set_root</a>             (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a>             (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a>           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> is_pretty</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a>           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a>           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> indent_level</code></em>);
-<span class="returnvalue">guint</span>               <a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a>           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a>      (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gunichar</span> indent_char</code></em>);
-<span class="returnvalue">gunichar</span>            <a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a>      (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);
-
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonGenerator.html#json-generator-to-file" title="json_generator_to_file ()">json_generator_to_file</a>              (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">gchar</span> *             <a class="link" href="JsonGenerator.html#json-generator-to-data" title="json_generator_to_data ()">json_generator_to_data</a>              (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a>            (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">GOutputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="JsonGenerator.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  GObject
-   +----JsonGenerator
-</pre>
-</div>
-<div class="refsect1">
-<a name="JsonGenerator.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="JsonGenerator.html#JsonGenerator--indent" title='The "indent" property'>indent</a>"                   <span class="type">guint</span>                 : Read / Write
-  "<a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title='The "indent-char" property'>indent-char</a>"              <span class="type">guint</span>                 : Read / Write
-  "<a class="link" href="JsonGenerator.html#JsonGenerator--pretty" title='The "pretty" property'>pretty</a>"                   <span class="type">gboolean</span>              : Read / Write
-  "<a class="link" href="JsonGenerator.html#JsonGenerator--root" title='The "root" property'>root</a>"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write
-</pre>
-</div>
-<div class="refsect1">
-<a name="JsonGenerator.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> provides an object for generating a JSON data stream and
-put it into a buffer or a file.
-</p>
-</div>
 <div class="refsect1">
-<a name="JsonGenerator.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonGenerator-struct"></a><h3>struct JsonGenerator</h3>
-<pre class="programlisting">struct JsonGenerator;</pre>
-<p>
-JSON data streams generator. The contents of the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> structure
-are private and should only be accessed via the provided API.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="JsonGeneratorClass"></a><h3>struct JsonGeneratorClass</h3>
-<pre class="programlisting">struct JsonGeneratorClass {
-};
-</pre>
-<p>
-<a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> class
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="json-generator-new"></a><h3>json_generator_new ()</h3>
-<pre class="programlisting"><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="returnvalue">JsonGenerator</span></a> *     json_generator_new                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>. You can use this object to generate a
-JSON data stream starting from a data object model composed by
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> instance</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="json-generator-set-root"></a><h3>json_generator_set_root ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_generator_set_root             (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>node</code></em> as the root of the JSON data stream to be serialized by
-the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>The node is copied by the generator object, so it can be safely
-freed after calling this function.</div>
-<p>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonGenerator.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="functions_return">
+<col class="functions_name">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
+<td class="function_type">
+<a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="returnvalue">JsonGenerator</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-new" title="json_generator_new ()">json_generator_new</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()">json_generator_set_root</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="json-generator-get-root"></a><h3>json_generator_get_root ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_generator_get_root             (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
-<p>
-Retrieves a pointer to the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> set using
-<a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()"><code class="function">json_generator_set_root()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. The returned node
-is owned by the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> and it should not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">
+<span class="returnvalue">gunichar</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-to-file" title="json_generator_to_file ()">json_generator_to_file</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-to-data" title="json_generator_to_data ()">json_generator_to_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-generator-set-pretty"></a><h3>json_generator_set_pretty ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_generator_set_pretty           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> is_pretty</code></em>);</pre>
-<p>
-Sets whether the generated JSON should be pretty printed, using the
-indentation character specified in the <a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title='The "indent-char" property'><span class="type">"indent-char"</span></a>
-property and the spacing specified in <a class="link" href="JsonGenerator.html#JsonGenerator--indent" title='The "indent" property'><span class="type">"indent"</span></a> property.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect1">
+<a name="JsonGenerator.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="property_type"><span class="type">guint</span></td>
+<td class="property_name"><a class="link" href="JsonGenerator.html#JsonGenerator--indent" title="The “indent” property">indent</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">guint</span></td>
+<td class="property_name"><a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title="The “indent-char” property">indent-char</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">gboolean</span></td>
+<td class="property_name"><a class="link" href="JsonGenerator.html#JsonGenerator--pretty" title="The “pretty” property">pretty</a></td>
+<td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>is_pretty</code></em> :</span></p></td>
-<td>whether the generated string should be pretty printed</td>
+<td class="property_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</td>
+<td class="property_name"><a class="link" href="JsonGenerator.html#JsonGenerator--root" title="The “root” property">root</a></td>
+<td class="property_flags">Read / Write</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-generator-get-pretty"></a><h3>json_generator_get_pretty ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_generator_get_pretty           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
-<p>
-Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()"><code class="function">json_generator_set_pretty()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect1">
+<a name="JsonGenerator.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="name">
+<col class="description">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonGenerator.html#JsonGenerator-struct" title="struct JsonGenerator">JsonGenerator</a></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the generated JSON should be pretty-printed, and
-<code class="literal">FALSE</code> otherwise</td>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonGenerator.html#JsonGeneratorClass" title="struct JsonGeneratorClass">JsonGeneratorClass</a></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect1">
+<a name="JsonGenerator.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GObject
+    <span class="lineart">╰──</span> JsonGenerator
+</pre>
+</div>
+<div class="refsect1">
+<a name="JsonGenerator.description"></a><h2>Description</h2>
+<p><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> provides an object for generating a JSON data stream and
+put it into a buffer or a file.</p>
+</div>
+<div class="refsect1">
+<a name="JsonGenerator.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="json-generator-new"></a><h3>json_generator_new ()</h3>
+<pre class="programlisting"><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="returnvalue">JsonGenerator</span></a> *
+json_generator_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>. You can use this object to generate a
+JSON data stream starting from a data object model composed by
+<a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.2.5"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> instance</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-set-indent"></a><h3>json_generator_set_indent ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_generator_set_indent           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> indent_level</code></em>);</pre>
-<p>
-Sets the number of repetitions for each indentation level.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-set-root"></a><h3>json_generator_set_root ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_generator_set_root (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Sets <em class="parameter"><code>node</code></em>
+ as the root of the JSON data stream to be serialized by
+the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>.</p>
+<p>The passed <em class="parameter"><code>node</code></em>
+ is copied by the generator object, so it can be
+safely freed after calling this function.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>indent_level</code></em> :</span></p></td>
-<td>the number of repetitions of the indentation character
-that should be applied when pretty printing</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-generator-get-root"></a><h3>json_generator_get_root ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_generator_get_root (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
+<p>Retrieves a pointer to the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> set using
+<a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()"><code class="function">json_generator_set_root()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.4.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. The returned node
+is owned by the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> and it should not be freed. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-get-indent"></a><h3>json_generator_get_indent ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>               json_generator_get_indent           (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
-<p>
-Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()"><code class="function">json_generator_set_indent()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-set-pretty"></a><h3>json_generator_set_pretty ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_generator_set_pretty (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                           <em class="parameter"><code><span class="type">gboolean</span> is_pretty</code></em>);</pre>
+<p>Sets whether the generated JSON should be pretty printed, using the
+indentation character specified in the <a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title="The “indent-char” property"><span class="type">“indent-char”</span></a>
+property and the spacing specified in <a class="link" href="JsonGenerator.html#JsonGenerator--indent" title="The “indent” property"><span class="type">“indent”</span></a> property.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the number of repetitions per indentation level</td>
+<td class="parameter_name"><p>is_pretty</p></td>
+<td class="parameter_description"><p>whether the generated string should be pretty printed</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-generator-get-pretty"></a><h3>json_generator_get_pretty ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_generator_get_pretty (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
+<p>Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()"><code class="function">json_generator_set_pretty()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.6.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the generated JSON should be pretty-printed, and
+<code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-set-indent-char"></a><h3>json_generator_set_indent_char ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_generator_set_indent_char      (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gunichar</span> indent_char</code></em>);</pre>
-<p>
-Sets the character to be used when indenting
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-set-indent"></a><h3>json_generator_set_indent ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_generator_set_indent (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                           <em class="parameter"><code><span class="type">guint</span> indent_level</code></em>);</pre>
+<p>Sets the number of repetitions for each indentation level.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>indent_char</code></em> :</span></p></td>
-<td>a Unicode character to be used when indenting</td>
+<td class="parameter_name"><p>indent_level</p></td>
+<td class="parameter_description"><p>the number of repetitions of the indentation character
+that should be applied when pretty printing</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-generator-get-indent"></a><h3>json_generator_get_indent ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_generator_get_indent (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
+<p>Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()"><code class="function">json_generator_set_indent()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.8.6"></a><h4>Returns</h4>
+<p> the number of repetitions per indentation level</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-get-indent-char"></a><h3>json_generator_get_indent_char ()</h3>
-<pre class="programlisting"><span class="returnvalue">gunichar</span>            json_generator_get_indent_char      (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
-<p>
-Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()"><code class="function">json_generator_set_indent_char()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-set-indent-char"></a><h3>json_generator_set_indent_char ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_generator_set_indent_char (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                                <em class="parameter"><code><span class="type">gunichar</span> indent_char</code></em>);</pre>
+<p>Sets the character to be used when indenting</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the character to be used when indenting</td>
+<td class="parameter_name"><p>indent_char</p></td>
+<td class="parameter_description"><p>a Unicode character to be used when indenting</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-generator-get-indent-char"></a><h3>json_generator_get_indent_char ()</h3>
+<pre class="programlisting"><span class="returnvalue">gunichar</span>
+json_generator_get_indent_char (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>);</pre>
+<p>Retrieves the value set using <a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()"><code class="function">json_generator_set_indent_char()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.10.6"></a><h4>Returns</h4>
+<p> the character to be used when indenting</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-to-file"></a><h3>json_generator_to_file ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_generator_to_file              (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Creates a JSON data stream and puts it inside <em class="parameter"><code>filename</code></em>, overwriting the
-current file contents. This operation is atomic.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-to-file"></a><h3>json_generator_to_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_generator_to_file (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
+                        <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Creates a JSON data stream and puts it inside <em class="parameter"><code>filename</code></em>
+, overwriting the
+current file contents. This operation is atomic.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
-<td>path to the target file</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>path to the target file</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if saving was successful.</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.11.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if saving was successful.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-to-data"></a><h3>json_generator_to_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> *             json_generator_to_data              (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
-<p>
-Generates a JSON data stream from <em class="parameter"><code>generator</code></em> and returns it as a
-buffer.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-to-data"></a><h3>json_generator_to_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *
+json_generator_to_data (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                        <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
+<p>Generates a JSON data stream from <em class="parameter"><code>generator</code></em>
+ and returns it as a
+buffer.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>return location for the length of the returned
-buffer, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated buffer holding a JSON data stream.
-Use <code class="function">g_free()</code> to free the allocated resources.</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p> return location for the length of the returned
+buffer, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.12.6"></a><h4>Returns</h4>
+<p> a newly allocated buffer holding a JSON data stream.
+Use <code class="function">g_free()</code> to free the allocated resources.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-generator-to-stream"></a><h3>json_generator_to_stream ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_generator_to_stream            (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
-                                                         <em class="parameter"><code><span class="type">GOutputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Outputs JSON data and streams it (synchronously) to <em class="parameter"><code>stream</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-generator-to-stream"></a><h3>json_generator_to_stream ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_generator_to_stream (<em class="parameter"><code><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> *generator</code></em>,
+                          <em class="parameter"><code><span class="type">GOutputStream</span> *stream</code></em>,
+                          <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                          <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Outputs JSON data and streams it (synchronously) to <em class="parameter"><code>stream</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>generator</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
-<td>a <span class="type">GOutputStream</span>
-</td>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
-<td>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>stream</p></td>
+<td class="parameter_description"><p>a <span class="type">GOutputStream</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>cancellable</p></td>
+<td class="parameter_description"><p> a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the write operation was successful, and <code class="literal">FALSE</code>
-on failure. In case of error, the <span class="type">GError</span> will be filled accordingly</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.2.8.13.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the write operation was successful, and <code class="literal">FALSE</code>
+on failure. In case of error, the <span class="type">GError</span> will be filled accordingly</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonGenerator.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonGenerator-struct"></a><h3>struct JsonGenerator</h3>
+<pre class="programlisting">struct JsonGenerator;</pre>
+<p>JSON data streams generator. The contents of the <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> structure
+are private and should only be accessed via the provided API.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonGeneratorClass"></a><h3>struct JsonGeneratorClass</h3>
+<pre class="programlisting">struct JsonGeneratorClass {
+};
+</pre>
+<p><a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> class</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="JsonGenerator.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="JsonGenerator--indent"></a><h3>The <code class="literal">"indent"</code> property</h3>
-<pre class="programlisting">  "indent"                   <span class="type">guint</span>                 : Read / Write</pre>
-<p>
-Number of spaces to be used to indent when pretty printing.
-</p>
+<a name="JsonGenerator--indent"></a><h3>The <code class="literal">“indent”</code> property</h3>
+<pre class="programlisting">  “indent”                   <span class="type">guint</span></pre>
+<p>Number of spaces to be used to indent when pretty printing.</p>
+<p>Flags: Read / Write</p>
 <p>Default value: 2</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonGenerator--indent-char"></a><h3>The <code class="literal">"indent-char"</code> property</h3>
-<pre class="programlisting">  "indent-char"              <span class="type">guint</span>                 : Read / Write</pre>
-<p>
-The character that should be used when indenting in pretty print.
-</p>
+<a name="JsonGenerator--indent-char"></a><h3>The <code class="literal">“indent-char”</code> property</h3>
+<pre class="programlisting">  “indent-char”              <span class="type">guint</span></pre>
+<p>The character that should be used when indenting in pretty print.</p>
+<p>Flags: Read / Write</p>
 <p>Default value: ' '</p>
-<p class="since">Since 0.6</p>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-0.6">0.6</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonGenerator--pretty"></a><h3>The <code class="literal">"pretty"</code> property</h3>
-<pre class="programlisting">  "pretty"                   <span class="type">gboolean</span>              : Read / Write</pre>
-<p>
-Whether the output should be "pretty-printed", with indentation and
+<a name="JsonGenerator--pretty"></a><h3>The <code class="literal">“pretty”</code> property</h3>
+<pre class="programlisting">  “pretty”                   <span class="type">gboolean</span></pre>
+<p>Whether the output should be "pretty-printed", with indentation and
 newlines. The indentation level can be controlled by using the
-JsonGenerator:indent property
-</p>
+JsonGenerator:indent property</p>
+<p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonGenerator--root"></a><h3>The <code class="literal">"root"</code> property</h3>
-<pre class="programlisting">  "root"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write</pre>
-<p>
-The root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to be used when constructing a JSON data
-stream.
-</p>
-<p class="since">Since 0.4</p>
+<a name="JsonGenerator--root"></a><h3>The <code class="literal">“root”</code> property</h3>
+<pre class="programlisting">  “root”                     <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</pre>
+<p>The root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to be used when constructing a JSON data
+stream.</p>
+<p>Flags: Read / Write</p>
+<p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index f908106..a268e18 100644 (file)
@@ -2,34 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JsonParser</title>
+<title>JsonParser: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch02.html" title="Parser">
 <link rel="prev" href="ch02.html" title="Parser">
 <link rel="next" href="JsonReader.html" title="JsonReader">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="JsonReader.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#JsonParser.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#JsonParser.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#JsonParser.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#JsonParser.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#JsonParser.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#JsonParser.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#JsonParser.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
+                  <a href="#JsonParser.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="JsonReader.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="JsonParser"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="JsonParser.top_of_page"></a>JsonParser</span></h2>
 <p>JsonParser — Parse JSON data streams</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="JsonParser.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">enum                <a class="link" href="JsonParser.html#JsonParserError" title="enum JsonParserError">JsonParserError</a>;
-
-struct              <a class="link" href="JsonParser.html#JsonParser-struct" title="struct JsonParser">JsonParser</a>;
-struct              <a class="link" href="JsonParser.html#JsonParserClass" title="struct JsonParserClass">JsonParserClass</a>;
-<a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *        <a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a>          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a>          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a>        (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a>  (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a>                (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
-
-<span class="returnvalue">guint</span>               <a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a>        (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
-<span class="returnvalue">guint</span>               <a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a>         (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a>          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="JsonParser.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  GObject
-   +----JsonParser
-</pre>
-</div>
 <div class="refsect1">
-<a name="JsonParser.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="JsonParser.html#JsonParser-array-element" title='The "array-element" signal'>array-element</a>"                                  : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-array-end" title='The "array-end" signal'>array-end</a>"                                      : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-array-start" title='The "array-start" signal'>array-start</a>"                                    : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-error" title='The "error" signal'>error</a>"                                          : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-object-end" title='The "object-end" signal'>object-end</a>"                                     : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-object-member" title='The "object-member" signal'>object-member</a>"                                  : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-object-start" title='The "object-start" signal'>object-start</a>"                                   : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-parse-end" title='The "parse-end" signal'>parse-end</a>"                                      : <code class="literal">Run Last</code>
-  "<a class="link" href="JsonParser.html#JsonParser-parse-start" title='The "parse-start" signal'>parse-start</a>"                                    : <code class="literal">Run Last</code>
-</pre>
-</div>
-<div class="refsect1">
-<a name="JsonParser.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> provides an object for parsing a JSON data stream, either
-inside a file or inside a static buffer.
-</p>
-</div>
-<div class="refsect1">
-<a name="JsonParser.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonParserError"></a><h3>enum JsonParserError</h3>
-<pre class="programlisting">typedef enum {
-  JSON_PARSER_ERROR_PARSE,
-  JSON_PARSER_ERROR_TRAILING_COMMA,
-  JSON_PARSER_ERROR_MISSING_COMMA,
-  JSON_PARSER_ERROR_MISSING_COLON,
-  JSON_PARSER_ERROR_INVALID_BAREWORD,
-  JSON_PARSER_ERROR_EMPTY_MEMBER_NAME,
-
-  JSON_PARSER_ERROR_UNKNOWN
-} JsonParserError;
-</pre>
-<p>
-Error enumeration for <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</p>
-<p>
-This enumeration can be extended at later date
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="functions_return">
+<col class="functions_name">
 </colgroup>
 <tbody>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-PARSE:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_PARSE</code></span></p></td>
-<td>parse error
+<td class="function_type">
+<a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-new-immutable" title="json_parser_new_immutable ()">json_parser_new_immutable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_TRAILING_COMMA</code></span></p></td>
-<td>unexpected trailing comma
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-MISSING-COMMA:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_MISSING_COMMA</code></span></p></td>
-<td>expected comma
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-MISSING-COLON:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_MISSING_COLON</code></span></p></td>
-<td>expected colon
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_INVALID_BAREWORD</code></span></p></td>
-<td>invalid bareword
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_EMPTY_MEMBER_NAME</code></span></p></td>
-<td>empty member name (Since: 0.16)
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-PARSER-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_UNKNOWN</code></span></p></td>
-<td>unknown error
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="JsonParser-struct"></a><h3>struct JsonParser</h3>
-<pre class="programlisting">struct JsonParser;</pre>
-<p>
-JSON data streams parser. The contents of the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> structure are
-private and should only be accessed via the provided API.
-</p>
+<div class="refsect1">
+<a name="JsonParser.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type"><span class="type">gboolean</span></td>
+<td class="property_name"><a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property">immutable</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="JsonParserClass"></a><h3>struct JsonParserClass</h3>
-<pre class="programlisting">struct JsonParserClass {
-  void (* parse_start)   (JsonParser   *parser);
-
-  void (* object_start)  (JsonParser   *parser);
-  void (* object_member) (JsonParser   *parser,
-                          JsonObject   *object,
-                          const gchar  *member_name);
-  void (* object_end)    (JsonParser   *parser,
-                          JsonObject   *object);
-
-  void (* array_start)   (JsonParser   *parser);
-  void (* array_element) (JsonParser   *parser,
-                          JsonArray    *array,
-                          gint          index_);
-  void (* array_end)     (JsonParser   *parser,
-                          JsonArray    *array);
-
-  void (* parse_end)     (JsonParser   *parser);
-  
-  void (* error)         (JsonParser   *parser,
-                          const GError *error);
-};
-</pre>
-<p>
-<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> class.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect1">
+<a name="JsonParser.signals"></a><h2>Signals</h2>
+<div class="informaltable"><table border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.parse-start"></a>parse_start</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::parse-start signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-element" title="The “array-element” signal">array-element</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-start"></a>object_start</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::object-start signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-end" title="The “array-end” signal">array-end</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-member"></a>object_member</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::object-member signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-start" title="The “array-start” signal">array-start</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-end"></a>object_end</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::object-end signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-error" title="The “error” signal">error</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-start"></a>array_start</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::array-start signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-end" title="The “object-end” signal">object-end</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-element"></a>array_element</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::array-element signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-member" title="The “object-member” signal">object-member</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-end"></a>array_end</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::array-end signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-start" title="The “object-start” signal">object-start</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.parse-end"></a>parse_end</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::parse-end signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-parse-end" title="The “parse-end” signal">parse-end</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.error"></a>error</code></em> ()</span></p></td>
-<td>class handler for the JsonParser::error signal</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-parse-start" title="The “parse-start” signal">parse-start</a></td>
+<td class="signal_flags">Run Last</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-parser-new"></a><h3>json_parser_new ()</h3>
-<pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *        json_parser_new                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> instance. You can use the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> to
-load a JSON stream from either a file or a buffer and then walk the
-hierarchy using the data types API.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect1">
+<a name="JsonParser.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="name">
+<col class="description">
 </colgroup>
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>. Use <code class="function">g_object_unref()</code>
-to release all the memory it allocates.</td>
-</tr></tbody>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="JsonParser.html#JsonParserError" title="enum JsonParserError">JsonParserError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonParser.html#JsonParser-struct" title="struct JsonParser">JsonParser</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonParser.html#JsonParserClass" title="struct JsonParserClass">JsonParserClass</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="JsonParser.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GObject
+    <span class="lineart">╰──</span> JsonParser
+</pre>
+</div>
+<div class="refsect1">
+<a name="JsonParser.description"></a><h2>Description</h2>
+<p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> provides an object for parsing a JSON data stream, either
+inside a file or inside a static buffer.</p>
+</div>
+<div class="refsect1">
+<a name="JsonParser.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="json-parser-new"></a><h3>json_parser_new ()</h3>
+<pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
+json_parser_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> instance. You can use the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> to
+load a JSON stream from either a file or a buffer and then walk the
+hierarchy using the data types API.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.2.5"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>. Use <code class="function">g_object_unref()</code>
+to release all the memory it allocates.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-load-from-file"></a><h3>json_parser_load_from_file ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_parser_load_from_file          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Loads a JSON stream from the content of <em class="parameter"><code>filename</code></em> and parses it. See
-<a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()"><code class="function">json_parser_load_from_data()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-parser-new-immutable"></a><h3>json_parser_new_immutable ()</h3>
+<pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
+json_parser_new_immutable (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> instance with its <a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property"><span class="type">“immutable”</span></a> property
+set to <code class="literal">TRUE</code> to create immutable output trees.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.3.5"></a><h4>Returns</h4>
+<p> a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-parser-load-from-file"></a><h3>json_parser_load_from_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_parser_load_from_file (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                            <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
+                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Loads a JSON stream from the content of <em class="parameter"><code>filename</code></em>
+ and parses it. See
+<a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()"><code class="function">json_parser_load_from_data()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
-<td>the path for the file to parse</td>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>the path for the file to parse</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the file was successfully loaded and parsed.
-In case of error, <em class="parameter"><code>error</code></em> is set accordingly and <code class="literal">FALSE</code> is returned</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.4.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the file was successfully loaded and parsed.
+In case of error, <em class="parameter"><code>error</code></em>
+is set accordingly and <code class="literal">FALSE</code> is returned</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-load-from-data"></a><h3>json_parser_load_from_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_parser_load_from_data          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Loads a JSON stream from a buffer and parses it. You can call this function
+<a name="json-parser-load-from-data"></a><h3>json_parser_load_from_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_parser_load_from_data (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                            <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
+                            <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
+                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Loads a JSON stream from a buffer and parses it. You can call this function
 multiple times with the same <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> object, but the contents of the
-parser will be destroyed each time.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+parser will be destroyed each time.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the buffer to parse</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the length of the buffer, or -1</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer to parse</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the length of the buffer, or -1</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the buffer was succesfully parser. In case
-of error, <em class="parameter"><code>error</code></em> is set accordingly and <code class="literal">FALSE</code> is returned</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.5.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the buffer was succesfully parser. In case
+of error, <em class="parameter"><code>error</code></em>
+is set accordingly and <code class="literal">FALSE</code> is returned</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-load-from-stream"></a><h3>json_parser_load_from_stream ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_parser_load_from_stream        (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Loads the contents of an input stream and parses them.
-</p>
-<p>
-If <em class="parameter"><code>cancellable</code></em> is not <code class="literal">NULL</code>, then the operation can be cancelled by
-triggering the <em class="parameter"><code>cancellable</code></em> object from another thread. If the
+<a name="json-parser-load-from-stream"></a><h3>json_parser_load_from_stream ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_parser_load_from_stream (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                              <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
+                              <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                              <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Loads the contents of an input stream and parses them.</p>
+<p>If <em class="parameter"><code>cancellable</code></em>
+ is not <code class="literal">NULL</code>, then the operation can be cancelled by
+triggering the <em class="parameter"><code>cancellable</code></em>
+ object from another thread. If the
 operation was cancelled, the error <code class="literal">G_IO_ERROR_CANCELLED</code> will be set
-on the passed <em class="parameter"><code>error</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+on the passed <em class="parameter"><code>error</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
-<td>an open <span class="type">GInputStream</span>
-</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
-<td>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>stream</p></td>
+<td class="parameter_description"><p>an open <span class="type">GInputStream</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>the return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>cancellable</p></td>
+<td class="parameter_description"><p> a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the data stream was successfully read and
-parsed, and <code class="literal">FALSE</code> otherwise</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.6.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the data stream was successfully read and
+parsed, and <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-load-from-stream-async"></a><h3>json_parser_load_from_stream_async ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_parser_load_from_stream_async  (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
-                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
-<p>
-Asynchronously reads the contents of <em class="parameter"><code>stream</code></em>.
-</p>
-<p>
-For more details, see <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()"><code class="function">json_parser_load_from_stream()</code></a> which is the
-synchronous version of this call.
-</p>
-<p>
-When the operation is finished, <em class="parameter"><code>callback</code></em> will be called. You should
-then call <a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()"><code class="function">json_parser_load_from_stream_finish()</code></a> to get the result
-of the operation.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-parser-load-from-stream-async"></a><h3>json_parser_load_from_stream_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_parser_load_from_stream_async (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                                    <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
+                                    <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                    <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                    <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>Asynchronously reads the contents of <em class="parameter"><code>stream</code></em>
+.</p>
+<p>For more details, see <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()"><code class="function">json_parser_load_from_stream()</code></a> which is the
+synchronous version of this call.</p>
+<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
+ will be called. You should
+then call <a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()"><code class="function">json_parser_load_from_stream_finish()</code></a> to get the result
+of the operation.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.7.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
-<td>a <span class="type">GInputStream</span>
-</td>
+<td class="parameter_name"><p>stream</p></td>
+<td class="parameter_description"><p>a <span class="type">GInputStream</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
-<td>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>cancellable</p></td>
+<td class="parameter_description"><p> a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>a <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>the data to pass to <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the data to pass to <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-load-from-stream-finish"></a><h3>json_parser_load_from_stream_finish ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_parser_load_from_stream_finish (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Finishes an asynchronous stream loading started with
-<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()"><code class="function">json_parser_load_from_stream_async()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-parser-load-from-stream-finish"></a><h3>json_parser_load_from_stream_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_parser_load_from_stream_finish (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                                     <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                     <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Finishes an asynchronous stream loading started with
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()"><code class="function">json_parser_load_from_stream_async()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
-<td>a <span class="type">GAsyncResult</span>
-</td>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>the return location for a <span class="type">GError</span> or <code class="literal">NULL</code>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the content of the stream was successfully retrieves
-and parsed, and <code class="literal">FALSE</code> otherwise. In case of error, the <span class="type">GError</span> will be
-filled accordingly.</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the return location for a <span class="type">GError</span> or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.8.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the content of the stream was successfully retrieves
+and parsed, and <code class="literal">FALSE</code> otherwise. In case of error, the <span class="type">GError</span> will be
+filled accordingly.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-get-root"></a><h3>json_parser_get_root ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_parser_get_root                (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
-<p>
-Retrieves the top level node from the parsed JSON stream.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-parser-get-root"></a><h3>json_parser_get_root ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_parser_get_root (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
+<p>Retrieves the top level node from the parsed JSON stream.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> . The returned
-node is owned by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should never be modified
-or freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.9.6"></a><h4>Returns</h4>
+<p> the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> . The returned
+node is owned by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should never be modified
+or freed. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-get-current-line"></a><h3>json_parser_get_current_line ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>               json_parser_get_current_line        (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
-<p>
-Retrieves the line currently parsed, starting from 1.
-</p>
-<p>
-This function has defined behaviour only while parsing; calling this
+<a name="json-parser-get-current-line"></a><h3>json_parser_get_current_line ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_parser_get_current_line (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
+<p>Retrieves the line currently parsed, starting from 1.</p>
+<p>This function has defined behaviour only while parsing; calling this
 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
-yield 0.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+yield 0.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the currently parsed line, or 0.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.10.7"></a><h4>Returns</h4>
+<p> the currently parsed line, or 0.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-get-current-pos"></a><h3>json_parser_get_current_pos ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>               json_parser_get_current_pos         (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
-<p>
-Retrieves the current position inside the current line, starting
-from 0.
-</p>
-<p>
-This function has defined behaviour only while parsing; calling this
+<a name="json-parser-get-current-pos"></a><h3>json_parser_get_current_pos ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_parser_get_current_pos (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
+<p>Retrieves the current position inside the current line, starting
+from 0.</p>
+<p>This function has defined behaviour only while parsing; calling this
 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
-yield 0.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+yield 0.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the position in the current line, or 0.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.11.7"></a><h4>Returns</h4>
+<p> the position in the current line, or 0.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-parser-has-assignment"></a><h3>json_parser_has_assignment ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_parser_has_assignment          (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
-                                                         <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);</pre>
-<p>
-A JSON data stream might sometimes contain an assignment, like:
-</p>
-<p>
-</p>
+<a name="json-parser-has-assignment"></a><h3>json_parser_has_assignment ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_parser_has_assignment (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
+                            <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);</pre>
+<p>A JSON data stream might sometimes contain an assignment, like:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -613,328 +624,563 @@ A JSON data stream might sometimes contain an assignment, like:
   </table>
 </div>
 
-<p>
-</p>
-<p>
-even though it would technically constitute a violation of the RFC.
-</p>
-<p>
-<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will ignore the left hand identifier and parse the right
+<p></p>
+<p>even though it would technically constitute a violation of the RFC.</p>
+<p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will ignore the left hand identifier and parse the right
 hand value of the assignment. <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will record, though, the
 existence of the assignment in the data stream and the variable name
-used.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+used.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.12.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variable_name</p></td>
+<td class="parameter_description"><p> Return location for the variable
+name, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.2.9.12.10"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if there was an assignment, <code class="literal">FALSE</code> otherwise. If
+<em class="parameter"><code>variable_name</code></em>
+is not <code class="literal">NULL</code> it will be set to the name of the variable
+used in the assignment. The string is owned by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should
+never be modified or freed.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonParser.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonParserError"></a><h3>enum JsonParserError</h3>
+<p>Error enumeration for <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p>
+<p>This enumeration can be extended at later date</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.10.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-PARSE:CAPS"></a>JSON_PARSER_ERROR_PARSE</p></td>
+<td class="enum_member_description">
+<p>parse error</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable_name</code></em> :</span></p></td>
-<td>Return location for the variable
-name, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS"></a>JSON_PARSER_ERROR_TRAILING_COMMA</p></td>
+<td class="enum_member_description">
+<p>unexpected trailing comma</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if there was an assignment, <code class="literal">FALSE</code> otherwise. If
-<em class="parameter"><code>variable_name</code></em> is not <code class="literal">NULL</code> it will be set to the name of the variable
-used in the assignment. The string is owned by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should
-never be modified or freed.</td>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-MISSING-COMMA:CAPS"></a>JSON_PARSER_ERROR_MISSING_COMMA</p></td>
+<td class="enum_member_description">
+<p>expected comma</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-MISSING-COLON:CAPS"></a>JSON_PARSER_ERROR_MISSING_COLON</p></td>
+<td class="enum_member_description">
+<p>expected colon</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS"></a>JSON_PARSER_ERROR_INVALID_BAREWORD</p></td>
+<td class="enum_member_description">
+<p>invalid bareword</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS"></a>JSON_PARSER_ERROR_EMPTY_MEMBER_NAME</p></td>
+<td class="enum_member_description">
+<p>empty member name (Since: 0.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-INVALID-DATA:CAPS"></a>JSON_PARSER_ERROR_INVALID_DATA</p></td>
+<td class="enum_member_description">
+<p>invalid data (Since: 0.18)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-UNKNOWN:CAPS"></a>JSON_PARSER_ERROR_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>unknown error</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonParser-struct"></a><h3>struct JsonParser</h3>
+<pre class="programlisting">struct JsonParser;</pre>
+<p>JSON data streams parser. The contents of the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> structure are
+private and should only be accessed via the provided API.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonParserClass"></a><h3>struct JsonParserClass</h3>
+<pre class="programlisting">struct JsonParserClass {
+  void (* parse_start)   (JsonParser   *parser);
+
+  void (* object_start)  (JsonParser   *parser);
+  void (* object_member) (JsonParser   *parser,
+                          JsonObject   *object,
+                          const gchar  *member_name);
+  void (* object_end)    (JsonParser   *parser,
+                          JsonObject   *object);
+
+  void (* array_start)   (JsonParser   *parser);
+  void (* array_element) (JsonParser   *parser,
+                          JsonArray    *array,
+                          gint          index_);
+  void (* array_end)     (JsonParser   *parser,
+                          JsonArray    *array);
+
+  void (* parse_end)     (JsonParser   *parser);
+  
+  void (* error)         (JsonParser   *parser,
+                          const GError *error);
+};
+</pre>
+<p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> class.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.10.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.parse-start"></a>parse_start</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::parse-start signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-start"></a>object_start</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::object-start signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-member"></a>object_member</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::object-member signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-end"></a>object_end</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::object-end signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-start"></a>array_start</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::array-start signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-element"></a>array_element</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::array-element signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-end"></a>array_end</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::array-end signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.parse-end"></a>parse_end</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::parse-end signal</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.error"></a>error</code></em> ()</p></td>
+<td class="struct_member_description"><p>class handler for the JsonParser::error signal</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.4</p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonParser.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="JsonParser--immutable"></a><h3>The <code class="literal">“immutable”</code> property</h3>
+<pre class="programlisting">  “immutable”                <span class="type">gboolean</span></pre>
+<p>Whether the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> tree built by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> should be immutable
+when created. Making the output immutable on creation avoids the expense
+of traversing it to make it immutable later.</p>
+<p>Flags: Read / Write / Construct Only</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 </div>
 <div class="refsect1">
 <a name="JsonParser.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
-<a name="JsonParser-array-element"></a><h3>The <code class="literal">"array-element"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>  *array,
-                                                        <span class="type">gint</span>        index_,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::array-element signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-has successfully parsed a single element of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. The
-array and element index are passed to the signal handlers.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-array-element"></a><h3>The <code class="literal">“array-element”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>  *array,
+               <span class="type">gint</span>        index_,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::array-element signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+has successfully parsed a single element of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. The
+array and element index are passed to the signal handlers.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the newly parsed element</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the newly parsed element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-array-end"></a><h3>The <code class="literal">"array-end"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>  *array,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::array-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-has successfully parsed an entire <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-array-end"></a><h3>The <code class="literal">“array-end”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>  *array,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::array-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+has successfully parsed an entire <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>the parsed <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>the parsed <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-array-start"></a><h3>The <code class="literal">"array-start"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::array-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-starts parsing a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-array-start"></a><h3>The <code class="literal">“array-start”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::array-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+starts parsing a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-error"></a><h3>The <code class="literal">"error"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <span class="type">gpointer</span>    error,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::error signal is emitted each time a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> encounters
-an error in a JSON stream.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-error"></a><h3>The <code class="literal">“error”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <span class="type">gpointer</span>    error,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::error signal is emitted each time a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> encounters
+an error in a JSON stream.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the parser instance that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the parser instance that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>a pointer to the <span class="type">GError</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>a pointer to the <span class="type">GError</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-object-end"></a><h3>The <code class="literal">"object-end"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::object-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-has successfully parsed an entire <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-object-end"></a><h3>The <code class="literal">“object-end”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::object-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+has successfully parsed an entire <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the parsed <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>the parsed <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-object-member"></a><h3>The <code class="literal">"object-member"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object,
-                                                        <span class="type">gchar</span>      *member_name,
-                                                        <span class="type">gpointer</span>    user_data)        : <code class="literal">Run Last</code></pre>
-<p>
-The ::object-member signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-has successfully parsed a single member of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. The
-object and member are passed to the signal handlers.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-object-member"></a><h3>The <code class="literal">“object-member”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object,
+               <span class="type">gchar</span>      *member_name,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::object-member signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+has successfully parsed a single member of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. The
+object and member are passed to the signal handlers.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the newly parsed member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the newly parsed member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-object-start"></a><h3>The <code class="literal">"object-start"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::object-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
-starts parsing a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-object-start"></a><h3>The <code class="literal">“object-start”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::object-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
+starts parsing a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-parse-end"></a><h3>The <code class="literal">"parse-end"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::parse-end signal is emitted when the parser successfully
-finished parsing a JSON data stream
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-parse-end"></a><h3>The <code class="literal">“parse-end”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::parse-end signal is emitted when the parser successfully
+finished parsing a JSON data stream</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonParser-parse-start"></a><h3>The <code class="literal">"parse-start"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
-                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
-<p>
-The ::parse-start signal is emitted when the parser began parsing
-a JSON data stream.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonParser-parse-start"></a><h3>The <code class="literal">“parse-start”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
+               <span class="type">gpointer</span>    user_data)</pre>
+<p>The ::parse-start signal is emitted when the parser began parsing
+a JSON data stream.</p>
+<div class="refsect3">
+<a name="id-1.4.3.2.12.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
-<td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
+<td class="parameter_name"><p>parser</p></td>
+<td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index de1ca79..8ebd513 100644 (file)
@@ -2,32 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JsonPath</title>
+<title>JsonPath: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch02.html" title="Parser">
 <link rel="prev" href="JsonReader.html" title="JsonReader">
 <link rel="next" href="ch03.html" title="Generator">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="JsonReader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ch03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#JsonPath.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#JsonPath.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#JsonPath.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#JsonPath.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#JsonPath.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="JsonReader.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="JsonPath"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="JsonPath.top_of_page"></a>JsonPath</span></h2>
 <p>JsonPath — JSONPath implementation</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="JsonPath.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="JsonPath.html#JsonPath-struct" title="JsonPath">JsonPath</a>;
-                    <a class="link" href="JsonPath.html#JsonPathClass" title="JsonPathClass">JsonPathClass</a>;
-<a class="link" href="JsonPath.html" title="JsonPath"><span class="returnvalue">JsonPath</span></a> *          <a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a>                       (<em class="parameter"><code><span class="type">void</span></code></em>);
-#define             <a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR">JSON_PATH_ERROR</a>
-enum                <a class="link" href="JsonPath.html#JsonPathError" title="enum JsonPathError">JsonPathError</a>;
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a>                   (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a>                     (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);
-
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a>                     (<em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-</pre>
+<div class="refsect1">
+<a name="JsonPath.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonPath.html" title="JsonPath"><span class="returnvalue">JsonPath</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR">JSON_PATH_ERROR</a></td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="JsonPath.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="JsonPath.html#JsonPath-struct" title="JsonPath">JsonPath</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="JsonPath.html#JsonPathClass" title="JsonPathClass">JsonPathClass</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="JsonPath.html#JsonPathError" title="enum JsonPathError">JsonPathError</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="JsonPath.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  GObject
-   +----JsonPath
+<pre class="screen">    GObject
+    <span class="lineart">╰──</span> JsonPath
 </pre>
 </div>
 <div class="refsect1">
 <a name="JsonPath.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> is a simple class implementing the JSONPath syntax for extracting
+<p><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> is a simple class implementing the JSONPath syntax for extracting
 data out of a JSON tree. While the semantics of the JSONPath expressions are
 heavily borrowed by the XPath specification for XML, the syntax follows the
-ECMAScript origins of JSON.
-</p>
-<p>
-Once a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance has been created, it has to compile a JSONPath
-expression using <a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a> before being able to match it to a
+ECMAScript origins of JSON.</p>
+<p>Once a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance has been created, it has to compile a JSONPath
+expression using <a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a> before being able to match it to a
 JSON tree; the same <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance can be used to match multiple JSON
 trees. It it also possible to compile a new JSONPath expression using the
 same <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance; the previous expression will be discarded only if
-the compilation of the new expression is successful.
-</p>
-<p>
-The simple convenience function <a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()"><code class="function">json_path_query()</code></a> can be used for one-off
-matching.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="json-path-syntax"></a><h3>Syntax of the JSONPath expressions</h3>
+the compilation of the new expression is successful.</p>
+<p>The simple convenience function <a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()"><code class="function">json_path_query()</code></a> can be used for one-off
+matching.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.6.5"></a><h4>Syntax of the JSONPath expressions</h4>
 <p>A JSONPath expression is composed by path indices and operators.
-  Each path index can either be a member name or an element index inside
-  a JSON tree. A JSONPath expression must start with the '$' operator; each
-  path index is separated using either the dot notation or the bracket
-  notation, e.g.:</p>
+Each path index can either be a member name or an element index inside
+a JSON tree. A JSONPath expression must start with the '$' operator; each
+path index is separated using either the dot notation or the bracket
+notation, e.g.:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,382 +136,375 @@ matching.
         <td class="listing_lines" align="right"><pre>1
 2
 3
-4</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="comment">/* dot notation */</span>
+4
+5</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="comment">// dot notation</span>
 <span class="normal">$</span><span class="symbol">.</span><span class="normal">store</span><span class="symbol">.</span><span class="normal">book</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">title</span>
-<span class="comment">/* bracket notation */</span>
+
+<span class="comment">// bracket notation</span>
 <span class="normal">$</span><span class="symbol">[</span><span class="string">'store'</span><span class="symbol">][</span><span class="string">'book'</span><span class="symbol">][</span><span class="number">0</span><span class="symbol">][</span><span class="string">'title'</span><span class="symbol">]</span></pre></td>
       </tr>
     </tbody>
   </table>
 </div>
 
+<p></p>
 <p>The available operators are:</p>
-<div class="table">
-<a name="json-path-operators"></a><p class="title"><b>Table 1. Operators</b></p>
-<div class="table-contents"><table summary="Operators" border="1">
-<colgroup>
-<col>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>Operator</th>
-<th>Description</th>
-<th>Example</th>
-<th>Results</th>
-</tr></thead>
-<tbody>
-<tr>
-<td>$</td>
-<td>The root node</td>
-<td>$</td>
-<td>The whole document</td>
-</tr>
-<tr>
-<td>. or []</td>
-<td>The child member or element</td>
-<td>$.store.book</td>
-<td>The contents of the book member of the store object</td>
-</tr>
-<tr>
-<td>..</td>
-<td>Recursive descent</td>
-<td>$..author</td>
-<td>The content of the author member in every object</td>
-</tr>
-<tr>
-<td>*</td>
-<td>Wildcard</td>
-<td>$.store.book[*].author</td>
-<td>The content of the author member of any object of the
-          array contained in the book member of the store object</td>
-</tr>
-<tr>
-<td>[]</td>
-<td>Subscript</td>
-<td>$.store.book[0]</td>
-<td>The first element of the array contained in the book
-          member of the store object</td>
-</tr>
-<tr>
-<td>[,]</td>
-<td>Set</td>
-<td>$.store.book[0,1]</td>
-<td>The first two elements of the array contained in the
-          book member of the store object</td>
-</tr>
-<tr>
-<td>[start:end:step]</td>
-<td>Slice</td>
-<td>$.store.book[:2]</td>
-<td>The first two elements of the array contained in the
-          book member of the store object; the start and step are omitted
-          and implied to be 0 and 1, respectively</td>
-</tr>
-</tbody>
-</table></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Root node
+The '$' character represents the root node of the JSON tree, and
+matches the entire document.</p></li>
+<li class="listitem"><p>Child nodes can either be matched using '.' or '[]'. For instance,
+both <code class="literal">$.store.book</code> and `$'store' match the contents of
+the book member of the store object.</p></li>
+<li class="listitem"><p>Child nodes can be reached without specifying the whole tree structure
+through the recursive descent operator, or '..'. For instance,
+<code class="literal">$..author</code> matches all author member in every object.</p></li>
+<li class="listitem"><p>Child nodes can grouped through the wildcard operator, or '*'. For
+instance, <code class="literal">$.store.book[*].author</code> matches all author members of any
+object element contained in the book array of the store object.</p></li>
+<li class="listitem"><p>Element nodes can be accessed using their index (starting from zero)
+in the subscript operator '[]'. For instance, <code class="literal">$.store.book[0]</code> matches
+the first element of the book array of the store object.</p></li>
+<li class="listitem"><p>Subsets of element nodes can be accessed using the set notation
+operator '[start,end]'. For instance, <code class="literal">$.store.book[0,2]</code> matches the
+first, second, and third elements of the book array of the store
+object.</p></li>
+<li class="listitem"><p>Slices of element nodes can be accessed using the slice notation
+operation '[start:end:step]'. If start is omitted, the starting index
+of the slice is implied to be zero; if end is omitted, the ending index
+of the slice is implied to be the length of the array; if step is
+omitted, the step of the slice is implied to be 1. For instance,
+<code class="literal">$.store.book[:2]</code> matches the first two elements of the book array
+of the store object.</p></li>
+</ul></div>
+<p>More information about JSONPath is available on Stefan Gössner's
+<a class="ulink" href="http://goessner.net/articles/JsonPath/" target="_top">JSONPath website</a>.</p>
 </div>
-<br class="table-break"><p>More information about JSONPath is available on Stefan Gössner's
-  <a class="ulink" href="http://goessner.net/articles/JsonPath/" target="_top">website</a>.</p>
-</div>
-<p>
-</p>
-<p>
-</p>
-<div class="example">
-<a name="json-path-example"></a><p class="title"><b>Example 1. Example of JsonPath usage</b></p>
-<div class="example-contents">
+<div class="refsect3">
+<a name="id-1.4.3.4.6.6"></a><h4>Example of JSONPath matches</h4>
 <p>The following example shows some of the results of using <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a>
-  on a JSON tree. We use the following JSON description of a
-  bookstore:</p>
-<pre class="programlisting">
-{ "store": {
-    "book": [
-      { "category": "reference",
-        "author": "Nigel Rees",
-        "title": "Sayings of the Century",
-        "price": "8.95"
-      },
-      { "category": "fiction",
-        "author": "Evelyn Waugh",
-        "title": "Sword of Honour",
-        "price": "12.99"
-      },
-      { "category": "fiction",
-        "author": "Herman Melville",
-        "title": "Moby Dick",
-        "isbn": "0-553-21311-3",
-        "price": "8.99"
-      },
-      { "category": "fiction",
-        "author": "J. R. R. Tolkien",
-        "title": "The Lord of the Rings",
-        "isbn": "0-395-19395-8",
-        "price": "22.99"
-      }
-    ],
-    "bicycle": {
-      "color": "red",
-      "price": "19.95"
-    }
-  }
-}
-</pre>
+on a JSON tree. We use the following JSON description of a bookstore:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="cbracket">{</span><span class="normal"> </span><span class="string">"store"</span><span class="symbol">:</span><span class="normal"> </span><span class="cbracket">{</span>
+<span class="normal">    </span><span class="string">"book"</span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">[</span>
+<span class="normal">      </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"category"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"reference"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Nigel Rees"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"title"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Sayings of the Century"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"price"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"8.95"</span><span class="normal">  </span><span class="cbracket">}</span><span class="symbol">,</span>
+<span class="normal">      </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"category"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"fiction"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Evelyn Waugh"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"title"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Sword of Honour"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"price"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"12.99"</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">,</span>
+<span class="normal">      </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"category"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"fiction"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Herman Melville"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"title"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Moby Dick"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"isbn"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"0-553-21311-3"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"price"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"8.99"</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">,</span>
+<span class="normal">      </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"category"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"fiction"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"J. R. R. Tolkien"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"title"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"The Lord of the Rings"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"isbn"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"0-395-19395-8"</span><span class="symbol">,</span>
+<span class="normal">        </span><span class="string">"price"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"22.99"</span><span class="normal"> </span><span class="cbracket">}</span>
+<span class="normal">    </span><span class="symbol">],</span>
+<span class="normal">    </span><span class="string">"bicycle"</span><span class="symbol">:</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"color"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"red"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"price"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"19.95"</span><span class="normal"> </span><span class="cbracket">}</span>
+<span class="normal">  </span><span class="cbracket">}</span>
+<span class="cbracket">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>We can parse the JSON using <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>:</p>
-<pre class="programlisting">
-JsonParser *parser = json_parser_new ();
-json_parser_load_from_data (parser, json_data, -1, NULL);
-  </pre>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="usertype">JsonParser</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parser </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonParser.html#json-parser-new">json_parser_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="function"><a href="JsonParser.html#json-parser-load-from-data">json_parser_load_from_data</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parser</span><span class="symbol">,</span><span class="normal"> json_data</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>If we run the following code:</p>
-<pre class="programlisting">
-JsonNode *result;
-JsonPath *path = json_path_new ();
-json_path_compile (path, "$.store..author", NULL);
-result = json_path_match (path, json_parser_get_root (parser));
-  </pre>
-<p>The <span class="emphasis"><em>result</em></span> <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> will contain an array
-  with all values of the <span class="emphasis"><em>author</em></span> member of the objects
-  in the JSON tree. If we use a <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> to convert the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-  to a string and print it:</p>
-<pre class="programlisting">
-JsonGenerator *generator = json_generator_new ();
-char *str;
-json_generator_set_pretty (generator, TRUE);
-json_generator_set_root (generator, result);
-str = json_generator_to_data (generator, NULL);
-g_print ("Results: %s\n", str);
-  </pre>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="usertype">JsonNode</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">result</span><span class="symbol">;</span>
+<span class="usertype">JsonPath</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">path </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonPath.html#json-path-new">json_path_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="function"><a href="JsonPath.html#json-path-compile">json_path_compile</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">path</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"$.store..author"</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">);</span>
+<span class="normal">result </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonPath.html#json-path-match">json_path_match</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">path</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="JsonParser.html#json-parser-get-root">json_parser_get_root</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parser</span><span class="symbol">));</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>The result <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> will contain an array with all values of the
+author member of the objects in the JSON tree. If we use a
+<a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> to convert the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to a string and print it:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="usertype">JsonGenerator</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">generator </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonGenerator.html#json-generator-new">json_generator_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="function"><a href="JsonGenerator.html#json-generator-set-root">json_generator_set_root</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">generator</span><span class="symbol">,</span><span class="normal"> result</span><span class="symbol">);</span>
+<span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonGenerator.html#json-generator-to-data">json_generator_to_data</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">generator</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">);</span>
+<span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Results: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> str</span><span class="symbol">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>The output will be:</p>
-<pre class="programlisting">
-[
-  "Nigel Rees",
-  "Evelyn Waugh",
-  "Herman Melville",
-  "J. R. R. Tolkien"
-]
-</pre>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="symbol">[</span><span class="string">"Nigel Rees"</span><span class="symbol">,</span><span class="string">"Evelyn Waugh"</span><span class="symbol">,</span><span class="string">"Herman Melville"</span><span class="symbol">,</span><span class="string">"J. R. R. Tolkien"</span><span class="symbol">]</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
 </div>
+
+<p></p>
+<p><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> is available since JSON-GLib 0.14</p>
 </div>
-<p><br class="example-break">
-</p>
-<p>
-<a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> is available since JSON-GLib 0.14
-</p>
 </div>
 <div class="refsect1">
-<a name="JsonPath.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonPath-struct"></a><h3>JsonPath</h3>
-<pre class="programlisting">typedef struct _JsonPath JsonPath;</pre>
-<p>
-The <span class="structname">JsonPath</span> structure is an opaque object
-whose members cannot be directly accessed except through the provided
-API.
-</p>
-<p class="since">Since 0.14</p>
-</div>
-<hr>
+<a name="JsonPath.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="JsonPathClass"></a><h3>JsonPathClass</h3>
-<pre class="programlisting">typedef struct _JsonPathClass JsonPathClass;</pre>
-<p>
-The <span class="structname">JsonPathClass</span> structure is an opaque
-object class whose members cannot be directly accessed.
-</p>
-<p class="since">Since 0.14</p>
+<a name="json-path-new"></a><h3>json_path_new ()</h3>
+<pre class="programlisting"><a class="link" href="JsonPath.html" title="JsonPath"><span class="returnvalue">JsonPath</span></a> *
+json_path_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance.</p>
+<p>Once created, the <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> object should be used with <a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a>
+and <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance. Use
+<code class="function">g_object_unref()</code> to free the allocated resources when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-path-new"></a><h3>json_path_new ()</h3>
-<pre class="programlisting"><a class="link" href="JsonPath.html" title="JsonPath"><span class="returnvalue">JsonPath</span></a> *          json_path_new                       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance.
-</p>
-<p>
-Once created, the <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> object should be used with <a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a>
-and <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance. Use
-<code class="function">g_object_unref()</code> to free the allocated resources when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.14</p>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-PATH-ERROR:CAPS"></a><h3>JSON_PATH_ERROR</h3>
 <pre class="programlisting">#define JSON_PATH_ERROR         (json_path_error_quark ())
 </pre>
-<p>
-Error domain for <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> errors
-</p>
-<p class="since">Since 0.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="JsonPathError"></a><h3>enum JsonPathError</h3>
-<pre class="programlisting">typedef enum {
-  JSON_PATH_ERROR_INVALID_QUERY
-} JsonPathError;
-</pre>
-<p>
-Error code enumeration for the <a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR"><code class="literal">JSON_PATH_ERROR</code></a> domain.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody><tr>
-<td><p><a name="JSON-PATH-ERROR-INVALID-QUERY:CAPS"></a><span class="term"><code class="literal">JSON_PATH_ERROR_INVALID_QUERY</code></span></p></td>
-<td>Invalid query
-</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.14</p>
+<p>Error domain for <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> errors</p>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-path-compile"></a><h3>json_path_compile ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_path_compile                   (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Validates and decomposes <em class="parameter"><code>expression</code></em>.
-</p>
-<p>
-A JSONPath expression must be compiled before calling <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-path-compile"></a><h3>json_path_compile ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_path_compile (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
+                   <em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
+                   <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Validates and decomposes <em class="parameter"><code>expression</code></em>
+.</p>
+<p>A JSONPath expression must be compiled before calling <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>expression</code></em> :</span></p></td>
-<td>a JSONPath expression</td>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>expression</p></td>
+<td class="parameter_description"><p>a JSONPath expression</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> on success; on error, <em class="parameter"><code>error</code></em> will be set with
-the <a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR"><code class="literal">JSON_PATH_ERROR</code></a> domain and a code from the <a class="link" href="JsonPath.html#JsonPathError" title="enum JsonPathError"><span class="type">JsonPathError</span></a>
-enumeration, and <code class="literal">FALSE</code> will be returned</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.4.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> on success; on error, <em class="parameter"><code>error</code></em>
+will be set with
+the <a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR"><code class="literal">JSON_PATH_ERROR</code></a> domain and a code from the <a class="link" href="JsonPath.html#JsonPathError" title="enum JsonPathError"><span class="type">JsonPathError</span></a>
+enumeration, and <code class="literal">FALSE</code> will be returned</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-path-match"></a><h3>json_path_match ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_path_match                     (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
-<p>
-Matches the JSON tree pointed by <em class="parameter"><code>root</code></em> using the expression compiled
-into the <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a>.
-</p>
-<p>
-The matching <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s will be copied into a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> and
-returned wrapped in a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-path-match"></a><h3>json_path_match ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_path_match (<em class="parameter"><code><a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> *path</code></em>,
+                 <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
+<p>Matches the JSON tree pointed by <em class="parameter"><code>root</code></em>
+ using the expression compiled
+into the <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a>.</p>
+<p>The matching <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a> will be copied into a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> and
+returned wrapped in a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>a compiled <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>a compiled <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly-created <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type
-<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> containing an array of matching <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s.
-Use <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>root</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.5.7"></a><h4>Returns</h4>
+<p> a newly-created <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> containing an array of matching <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>.
+Use <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-path-query"></a><h3>json_path_query ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_path_query                     (<em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Queries a JSON tree using a JSONPath expression.
-</p>
-<p>
-This function is a simple wrapper around <a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()"><code class="function">json_path_new()</code></a>,
-<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a> and <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>. It implicitly
-creates a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance, compiles <em class="parameter"><code>expression</code></em> and
-matches it against the JSON tree pointed by <em class="parameter"><code>root</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-path-query"></a><h3>json_path_query ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_path_query (<em class="parameter"><code>const <span class="type">char</span> *expression</code></em>,
+                 <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *root</code></em>,
+                 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Queries a JSON tree using a JSONPath expression.</p>
+<p>This function is a simple wrapper around <a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()"><code class="function">json_path_new()</code></a>,
+<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()"><code class="function">json_path_compile()</code></a> and <a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()"><code class="function">json_path_match()</code></a>. It implicitly
+creates a <a class="link" href="JsonPath.html" title="JsonPath"><span class="type">JsonPath</span></a> instance, compiles <em class="parameter"><code>expression</code></em>
+ and
+matches it against the JSON tree pointed by <em class="parameter"><code>root</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>expression</code></em> :</span></p></td>
-<td>a JSONPath expression</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
-<td>the root of a JSON tree</td>
+<td class="parameter_name"><p>expression</p></td>
+<td class="parameter_description"><p>a JSONPath expression</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>root</p></td>
+<td class="parameter_description"><p>the root of a JSON tree</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly-created <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type
-<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> containing an array of matching <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s.
-Use <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
 </div>
+<div class="refsect3">
+<a name="id-1.4.3.4.7.6.7"></a><h4>Returns</h4>
+<p> a newly-created <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> containing an array of matching <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>.
+Use <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonPath.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonPath-struct"></a><h3>JsonPath</h3>
+<pre class="programlisting">typedef struct _JsonPath JsonPath;</pre>
+<p>The <code class="literal">JsonPath</code> structure is an opaque object whose members cannot be
+directly accessed except through the provided API.</p>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
-<div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18.1</div>
+<div class="refsect2">
+<a name="JsonPathClass"></a><h3>JsonPathClass</h3>
+<pre class="programlisting">typedef struct _JsonPathClass JsonPathClass;</pre>
+<p>The <code class="literal">JsonPathClass</code> structure is an opaque object class whose members
+cannot be directly accessed.</p>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonPathError"></a><h3>enum JsonPathError</h3>
+<p>Error code enumeration for the <a class="link" href="JsonPath.html#JSON-PATH-ERROR:CAPS" title="JSON_PATH_ERROR"><code class="literal">JSON_PATH_ERROR</code></a> domain.</p>
+<div class="refsect3">
+<a name="id-1.4.3.4.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="JSON-PATH-ERROR-INVALID-QUERY:CAPS"></a>JSON_PATH_ERROR_INVALID_QUERY</p></td>
+<td class="enum_member_description">
+<p>Invalid query</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index dc89b6a..cd63566 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JsonReader</title>
+<title>JsonReader: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch02.html" title="Parser">
 <link rel="prev" href="JsonParser.html" title="JsonParser">
 <link rel="next" href="JsonPath.html" title="JsonPath">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="JsonParser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="JsonPath.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#JsonReader.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#JsonReader.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#JsonReader.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#JsonReader.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#JsonReader.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#JsonReader.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#JsonReader.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="JsonParser.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="JsonPath.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="JsonReader"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="JsonReader.top_of_page"></a>JsonReader</span></h2>
 <p>JsonReader — A cursor-based parser</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="JsonReader.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="JsonReader.html#JsonReader-struct" title="struct JsonReader">JsonReader</a>;
-struct              <a class="link" href="JsonReader.html#JsonReaderClass" title="struct JsonReaderClass">JsonReaderClass</a>;
-<a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *        <a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);
-
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gint</span>                <a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>              (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gint</span>                <a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gchar</span> **            <a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>         (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gint64</span>              <a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gdouble</span>             <a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>       (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-
-enum                <a class="link" href="JsonReader.html#JsonReaderError" title="enum JsonReaderError">JsonReaderError</a>;
-#define             <a class="link" href="JsonReader.html#JSON-READER-ERROR:CAPS" title="JSON_READER_ERROR">JSON_READER_ERROR</a>
-const <span class="returnvalue">GError</span> *      <a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="JsonReader.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  GObject
-   +----JsonReader
-</pre>
+<a name="JsonReader.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gchar</span> **
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint64</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="JsonReader.html#JSON-READER-ERROR:CAPS" title="JSON_READER_ERROR">JSON_READER_ERROR</a></td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">GError</span> *
+</td>
+<td class="function_name">
+<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="JsonReader.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="JsonReader.html#JsonReader--root" title='The "root" property'>root</a>"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write / Construct
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</td>
+<td class="property_name"><a class="link" href="JsonReader.html#JsonReader--root" title="The “root” property">root</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="JsonReader.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonReader.html#JsonReader-struct" title="struct JsonReader">JsonReader</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="JsonReader.html#JsonReaderClass" title="struct JsonReaderClass">JsonReaderClass</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="JsonReader.html#JsonReaderError" title="enum JsonReaderError">JsonReaderError</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="JsonReader.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GObject
+    <span class="lineart">╰──</span> JsonReader
 </pre>
 </div>
 <div class="refsect1">
 <a name="JsonReader.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> provides a simple, cursor-based API for parsing a JSON DOM. It
-is similar, in spirit, to the XML Reader API.
-</p>
-<p>
-In case of error, <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be set in an error state; all subsequent
+<p><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> provides a simple, cursor-based API for parsing a JSON DOM. It
+is similar, in spirit, to the XML Reader API.</p>
+<p>In case of error, <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be set in an error state; all subsequent
 calls will simply be ignored until a function that resets the error state is
-called, e.g.:
-</p>
-<p>
-</p>
+called, e.g.:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,34 +270,25 @@ called, e.g.:
 7
 8
 9
-10
-11
-12</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="comment">/* ask for the 7th element; if the element does not exist, the</span>
-<span class="comment"> * reader will be put in an error state</span>
-<span class="comment"> */</span>
+10</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="comment">// ask for the 7th element; if the element does not exist, the</span>
+<span class="comment">// reader will be put in an error state</span>
 <span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">6</span><span class="symbol">);</span>
 
-<span class="comment">/* in case of error, this will return NULL, otherwise it will</span>
-<span class="comment"> * return the value of the element</span>
-<span class="comment"> */</span>
+<span class="comment">// in case of error, this will return NULL, otherwise it will</span>
+<span class="comment">// return the value of the element</span>
 <span class="normal">str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">);</span>
 
-<span class="comment">/* this function resets the error state if any was set */</span>
+<span class="comment">// this function resets the error state if any was set</span>
 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
       </tr>
     </tbody>
   </table>
 </div>
 
-<p>
-</p>
-<p>
-If you want to detect the error state as soon as possible, you can use
-<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()"><code class="function">json_reader_get_error()</code></a>:
-</p>
-<p>
-</p>
+<p></p>
+<p>If you want to detect the error state as soon as possible, you can use
+<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()"><code class="function">json_reader_get_error()</code></a>:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -151,11 +299,9 @@ If you want to detect the error state as soon as possible, you can use
 4
 5
 6
-7
-8</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="comment">/* like the example above, but in this case we print out the</span>
-<span class="comment"> * error immediately</span>
-<span class="comment"> */</span>
+7</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="comment">// like the example above, but in this case we print out the</span>
+<span class="comment">// error immediately</span>
 <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">6</span><span class="symbol">))</span>
 <span class="normal">  </span><span class="cbracket">{</span>
 <span class="normal">    </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-error">json_reader_get_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
@@ -166,110 +312,88 @@ If you want to detect the error state as soon as possible, you can use
   </table>
 </div>
 
-<p>
-</p>
-<p>
-<a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is available since JSON-GLib 0.12.
-</p>
+<p></p>
+<p><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is available since JSON-GLib 0.12.</p>
 </div>
 <div class="refsect1">
-<a name="JsonReader.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonReader-struct"></a><h3>struct JsonReader</h3>
-<pre class="programlisting">struct JsonReader;</pre>
-<p>
-The <span class="structname">JsonReader</span> structure contains only
-private data and should only be accessed using the provided API
-</p>
-<p class="since">Since 0.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="JsonReaderClass"></a><h3>struct JsonReaderClass</h3>
-<pre class="programlisting">struct JsonReaderClass {
-};
-</pre>
-<p>
-The <span class="structname">JsonReaderClass</span> structure contains only
-private data
-</p>
-<p class="since">Since 0.12</p>
-</div>
-<hr>
+<a name="JsonReader.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="json-reader-new"></a><h3>json_reader_new ()</h3>
-<pre class="programlisting"><a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *        json_reader_new                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. You can use this object to read the contents of
+<a name="json-reader-new"></a><h3>json_reader_new ()</h3>
+<pre class="programlisting"><a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *
+json_reader_new (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Creates a new <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. You can use this object to read the contents of
 the JSON tree starting from <em class="parameter"><code>node</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. Use <code class="function">g_object_unref()</code> to
-release the allocated resources when done</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. Use <code class="function">g_object_unref()</code> to
+release the allocated resources when done</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-set-root"></a><h3>json_reader_set_root ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_reader_set_root                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
-<p>
-Sets the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to be read by <em class="parameter"><code>reader</code></em>. The <em class="parameter"><code>reader</code></em> will take
+<a name="json-reader-set-root"></a><h3>json_reader_set_root ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_reader_set_root (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
+<p>Sets the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to be read by <em class="parameter"><code>reader</code></em>
+. The <em class="parameter"><code>reader</code></em>
+ will take
 a copy of <em class="parameter"><code>root</code></em>
 </p>
-<p>
-If another <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> is currently set as root, it will be replaced.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>If another <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> is currently set as root, it will be replaced.</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>root</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-read-element"></a><h3>json_reader_read_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_read_element            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Advances the cursor of <em class="parameter"><code>reader</code></em> to the element <em class="parameter"><code>index_</code></em> of the array
-or the object at the current position.
-</p>
-<p>
-You can use the json_reader_get_value* family of functions to retrieve
-the value of the element; for instance:
-</p>
-<p>
-</p>
+<a name="json-reader-read-element"></a><h3>json_reader_read_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_read_element (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
+                          <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Advances the cursor of <em class="parameter"><code>reader</code></em>
+ to the element <em class="parameter"><code>index_</code></em>
+ of the array
+or the object at the current position.</p>
+<p>You can use the json_reader_get_value* family of functions to retrieve
+the value of the element; for instance:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -283,14 +407,9 @@ the value of the element; for instance:
   </table>
 </div>
 
-<p>
-</p>
-<p>
-After reading the value, <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> should be called to
-reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:
-</p>
-<p>
-</p>
+<p></p>
+<p>After reading the value, <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> should be called to
+reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -314,132 +433,167 @@ reposition the cursor inside the <a class="link" href="JsonReader.html" title="J
   </table>
 </div>
 
-<p>
-</p>
-<p>
-If <em class="parameter"><code>reader</code></em> is not currently on an array or an object, or if the <em class="parameter"><code>index_</code></em> is
+<p></p>
+<p>If <em class="parameter"><code>reader</code></em>
+ is not currently on an array or an object, or if the <em class="parameter"><code>index_</code></em>
+ is
 bigger than the size of the array or the object, the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be
-put in an error state until <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> is called.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+put in an error state until <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> is called. This means
+that if used conditionally, <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> must be called on both
+code paths:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">))</span>
+<span class="normal">  </span><span class="cbracket">{</span>
+<span class="normal">    </span><span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
+<span class="normal">    </span><span class="function">g_set_error</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> …</span><span class="symbol">);</span>
+<span class="normal">    </span><span class="keyword">return</span><span class="normal"> FALSE</span><span class="symbol">;</span>
+<span class="normal">  </span><span class="cbracket">}</span>
+
+<span class="normal">str_value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
+<span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.4.14"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element</td>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.4.15"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-end-element"></a><h3>json_reader_end_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_reader_end_element             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Moves the cursor back to the previous node after being positioned
-inside an array
-</p>
-<p>
-This function resets the error state of <em class="parameter"><code>reader</code></em>, if any was set
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-end-element"></a><h3>json_reader_end_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_reader_end_element (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Moves the cursor back to the previous node after being positioned
+inside an array</p>
+<p>This function resets the error state of <em class="parameter"><code>reader</code></em>
+, if any was set</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-is-array"></a><h3>json_reader_is_array ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_array                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Checks whether the <em class="parameter"><code>reader</code></em> is currently on an array
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-is-array"></a><h3>json_reader_is_array ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_is_array (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Checks whether the <em class="parameter"><code>reader</code></em>
+ is currently on an array</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an array, and <code class="literal">FALSE</code>
-otherwise</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.6.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an array, and <code class="literal">FALSE</code>
+otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-count-elements"></a><h3>json_reader_count_elements ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint</span>                json_reader_count_elements          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Counts the elements of the current position, if <em class="parameter"><code>reader</code></em> is
-positioned on an array
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-count-elements"></a><h3>json_reader_count_elements ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>
+json_reader_count_elements (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Counts the elements of the current position, if <em class="parameter"><code>reader</code></em>
+ is
+positioned on an array</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the number of elements, or -1. In case of failure
-the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.7.6"></a><h4>Returns</h4>
+<p> the number of elements, or -1. In case of failure
+the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-read-member"></a><h3>json_reader_read_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_read_member             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Advances the cursor of <em class="parameter"><code>reader</code></em> to the <em class="parameter"><code>member_name</code></em> of the object at the
-current position.
-</p>
-<p>
-You can use the json_reader_get_value* family of functions to retrieve
-the value of the member; for instance:
-</p>
-<p>
-</p>
+<a name="json-reader-read-member"></a><h3>json_reader_read_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_read_member (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
+                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Advances the cursor of <em class="parameter"><code>reader</code></em>
+ to the <em class="parameter"><code>member_name</code></em>
+ of the object at the
+current position.</p>
+<p>You can use the json_reader_get_value* family of functions to retrieve
+the value of the member; for instance:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -453,14 +607,9 @@ the value of the member; for instance:
   </table>
 </div>
 
-<p>
-</p>
-<p>
-After reading the value, <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> should be called to
-reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:
-</p>
-<p>
-</p>
+<p></p>
+<p>After reading the value, <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> should be called to
+reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -474,488 +623,563 @@ reposition the cursor inside the <a class="link" href="JsonReader.html" title="J
 7</pre></td>
         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="JsonReader.html#json-reader-read-member">json_reader_read_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">);</span>
 <span class="normal">author </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
-<span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
+<span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
 
-<span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"title"</span><span class="symbol">);</span>
+<span class="function"><a href="JsonReader.html#json-reader-read-member">json_reader_read_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"title"</span><span class="symbol">);</span>
 <span class="normal">title </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
-<span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
+<span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
       </tr>
     </tbody>
   </table>
 </div>
 
-<p>
-</p>
-<p>
-If <em class="parameter"><code>reader</code></em> is not currently on an object, or if the <em class="parameter"><code>member_name</code></em> is not
+<p></p>
+<p>If <em class="parameter"><code>reader</code></em>
+ is not currently on an object, or if the <em class="parameter"><code>member_name</code></em>
+ is not
 defined in the object, the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be put in an error state until
-<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> is called.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> is called. This means that if used conditionally,
+<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> must be called on both code paths:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="JsonReader.html#json-reader-read-member">json_reader_read_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"title"</span><span class="symbol">))</span>
+<span class="normal">  </span><span class="cbracket">{</span>
+<span class="normal">    </span><span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
+<span class="normal">    </span><span class="function">g_set_error</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> …</span><span class="symbol">);</span>
+<span class="normal">    </span><span class="keyword">return</span><span class="normal"> FALSE</span><span class="symbol">;</span>
+<span class="normal">  </span><span class="cbracket">}</span>
+
+<span class="normal">str_value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
+<span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.8.14"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member to read</td>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member to read</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.8.15"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-end-member"></a><h3>json_reader_end_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_reader_end_member              (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Moves the cursor back to the previous node after being positioned
-inside an object
-</p>
-<p>
-This function resets the error state of <em class="parameter"><code>reader</code></em>, if any was set
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-end-member"></a><h3>json_reader_end_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_reader_end_member (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Moves the cursor back to the previous node after being positioned
+inside an object</p>
+<p>This function resets the error state of <em class="parameter"><code>reader</code></em>
+, if any was set</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-is-object"></a><h3>json_reader_is_object ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_object               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Checks whether the <em class="parameter"><code>reader</code></em> is currently on an object
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-is-object"></a><h3>json_reader_is_object ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_is_object (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Checks whether the <em class="parameter"><code>reader</code></em>
+ is currently on an object</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an object, and <code class="literal">FALSE</code>
-otherwise</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.10.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an object, and <code class="literal">FALSE</code>
+otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-count-members"></a><h3>json_reader_count_members ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint</span>                json_reader_count_members           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Counts the members of the current position, if <em class="parameter"><code>reader</code></em> is
-positioned on an object
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-count-members"></a><h3>json_reader_count_members ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>
+json_reader_count_members (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Counts the members of the current position, if <em class="parameter"><code>reader</code></em>
+ is
+positioned on an object</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the number of members, or -1. In case of failure
-the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.11.6"></a><h4>Returns</h4>
+<p> the number of members, or -1. In case of failure
+the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-list-members"></a><h3>json_reader_list_members ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> **            json_reader_list_members            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves a list of member names from the current position, if <em class="parameter"><code>reader</code></em>
-is positioned on an object.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-list-members"></a><h3>json_reader_list_members ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> **
+json_reader_list_members (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves a list of member names from the current position, if <em class="parameter"><code>reader</code></em>
+
+is positioned on an object.</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated, <code class="literal">NULL</code>-terminated
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.12.6"></a><h4>Returns</h4>
+<p> a newly allocated, <code class="literal">NULL</code>-terminated
 array of strings holding the members name. Use <code class="function">g_strfreev()</code> when
-done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-reader-get-member-name"></a><h3>json_reader_get_member_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_reader_get_member_name (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the name of the current member.</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.13.6"></a><h4>Returns</h4>
+<p> the name of the member, or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-member-name"></a><h3>json_reader_get_member_name ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_reader_get_member_name         (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the name of the current member.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-is-value"></a><h3>json_reader_is_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_is_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Checks whether the <em class="parameter"><code>reader</code></em>
+ is currently on a value</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the name of the member, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.14.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on a value, and <code class="literal">FALSE</code>
+otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-is-value"></a><h3>json_reader_is_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_value                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Checks whether the <em class="parameter"><code>reader</code></em> is currently on a value
+<a name="json-reader-get-value"></a><h3>json_reader_get_value ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_reader_get_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of the current position of <em class="parameter"><code>reader</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on a value, and <code class="literal">FALSE</code>
-otherwise</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.15.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. The returned node
+is owned by the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> and it should not be modified or freed
+directly. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-value"></a><h3>json_reader_get_value ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_reader_get_value               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of the current position of <em class="parameter"><code>reader</code></em>
+<a name="json-reader-get-int-value"></a><h3>json_reader_get_int_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>
+json_reader_get_int_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the integer value of the current position of <em class="parameter"><code>reader</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. The returned node
-is owned by the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> and it should not be modified or freed
-directly. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.16.6"></a><h4>Returns</h4>
+<p> the integer value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-int-value"></a><h3>json_reader_get_int_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint64</span>              json_reader_get_int_value           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the integer value of the current position of <em class="parameter"><code>reader</code></em>
+<a name="json-reader-get-double-value"></a><h3>json_reader_get_double_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+json_reader_get_double_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the floating point value of the current position of <em class="parameter"><code>reader</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the integer value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.17.6"></a><h4>Returns</h4>
+<p> the floating point value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-double-value"></a><h3>json_reader_get_double_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">gdouble</span>             json_reader_get_double_value        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the floating point value of the current position of <em class="parameter"><code>reader</code></em>
+<a name="json-reader-get-string-value"></a><h3>json_reader_get_string_value ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_reader_get_string_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the string value of the current position of <em class="parameter"><code>reader</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the floating point value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.18.6"></a><h4>Returns</h4>
+<p> the string value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-string-value"></a><h3>json_reader_get_string_value ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_reader_get_string_value        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the string value of the current position of <em class="parameter"><code>reader</code></em>
+<a name="json-reader-get-boolean-value"></a><h3>json_reader_get_boolean_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_get_boolean_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the boolean value of the current position of <em class="parameter"><code>reader</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.4.3.3.8.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the string value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.19.6"></a><h4>Returns</h4>
+<p> the boolean value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-boolean-value"></a><h3>json_reader_get_boolean_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_get_boolean_value       (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the boolean value of the current position of <em class="parameter"><code>reader</code></em>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-reader-get-null-value"></a><h3>json_reader_get_null_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_reader_get_null_value (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Checks whether the value of the current position of <em class="parameter"><code>reader</code></em>
+ is 'null'</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the boolean value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.20.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if 'null' is set, and <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-reader-get-null-value"></a><h3>json_reader_get_null_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_get_null_value          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Checks whether the value of the current position of <em class="parameter"><code>reader</code></em> is 'null'
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JSON-READER-ERROR:CAPS"></a><h3>JSON_READER_ERROR</h3>
+<pre class="programlisting">#define JSON_READER_ERROR               (json_reader_error_quark ())
+</pre>
+<p>Error domain for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-reader-get-error"></a><h3>json_reader_get_error ()</h3>
+<pre class="programlisting">const <span class="returnvalue">GError</span> *
+json_reader_get_error (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
+<p>Retrieves the <span class="type">GError</span> currently set on <em class="parameter"><code>reader</code></em>
+, if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
+is in error state</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if 'null' is set, and <code class="literal">FALSE</code> otherwise</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>reader</p></td>
+<td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.12</p>
+</div>
+<div class="refsect3">
+<a name="id-1.4.3.3.8.22.6"></a><h4>Returns</h4>
+<p> the pointer to the error, or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="JsonReader.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonReader-struct"></a><h3>struct JsonReader</h3>
+<pre class="programlisting">struct JsonReader;</pre>
+<p>The <code class="literal">JsonReader</code> structure contains only private data and should
+be accessed using the provided API</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonReaderError"></a><h3>enum JsonReaderError</h3>
-<pre class="programlisting">typedef enum {
-  JSON_READER_ERROR_NO_ARRAY,
-  JSON_READER_ERROR_INVALID_INDEX,
-  JSON_READER_ERROR_NO_OBJECT,
-  JSON_READER_ERROR_INVALID_MEMBER,
-  JSON_READER_ERROR_INVALID_NODE,
-  JSON_READER_ERROR_NO_VALUE,
-  JSON_READER_ERROR_INVALID_TYPE
-} JsonReaderError;
+<a name="JsonReaderClass"></a><h3>struct JsonReaderClass</h3>
+<pre class="programlisting">struct JsonReaderClass {
+};
 </pre>
-<p>
-Error codes enumeration for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>The <code class="literal">JsonReaderClass</code> structure contains only private data</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonReaderError"></a><h3>enum JsonReaderError</h3>
+<p>Error codes enumeration for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors</p>
+<div class="refsect3">
+<a name="id-1.4.3.3.9.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><a name="JSON-READER-ERROR-NO-ARRAY:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_ARRAY</code></span></p></td>
-<td>No array found at the current position
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-ARRAY:CAPS"></a>JSON_READER_ERROR_NO_ARRAY</p></td>
+<td class="enum_member_description">
+<p>No array found at the current position</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-INVALID-INDEX:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_INDEX</code></span></p></td>
-<td>Index out of bounds
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-INDEX:CAPS"></a>JSON_READER_ERROR_INVALID_INDEX</p></td>
+<td class="enum_member_description">
+<p>Index out of bounds</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-NO-OBJECT:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_OBJECT</code></span></p></td>
-<td>No object found at the current position
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-OBJECT:CAPS"></a>JSON_READER_ERROR_NO_OBJECT</p></td>
+<td class="enum_member_description">
+<p>No object found at the current position</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-INVALID-MEMBER:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_MEMBER</code></span></p></td>
-<td>Member not found
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-MEMBER:CAPS"></a>JSON_READER_ERROR_INVALID_MEMBER</p></td>
+<td class="enum_member_description">
+<p>Member not found</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-INVALID-NODE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_NODE</code></span></p></td>
-<td>No valid node found at the current position
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-NODE:CAPS"></a>JSON_READER_ERROR_INVALID_NODE</p></td>
+<td class="enum_member_description">
+<p>No valid node found at the current position</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-NO-VALUE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_VALUE</code></span></p></td>
-<td>The node at the current position does not
-  hold a value
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-VALUE:CAPS"></a>JSON_READER_ERROR_NO_VALUE</p></td>
+<td class="enum_member_description">
+<p>The node at the current position does not
+  hold a value</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="JSON-READER-ERROR-INVALID-TYPE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_TYPE</code></span></p></td>
-<td>The node at the current position does not
-  hold a value of the desired type
+<td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-TYPE:CAPS"></a>JSON_READER_ERROR_INVALID_TYPE</p></td>
+<td class="enum_member_description">
+<p>The node at the current position does not
+  hold a value of the desired type</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.12</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="JSON-READER-ERROR:CAPS"></a><h3>JSON_READER_ERROR</h3>
-<pre class="programlisting">#define JSON_READER_ERROR               (json_reader_error_quark ())
-</pre>
-<p>
-Error domain for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors
-</p>
-<p class="since">Since 0.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="json-reader-get-error"></a><h3>json_reader_get_error ()</h3>
-<pre class="programlisting">const <span class="returnvalue">GError</span> *      json_reader_get_error               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
-<p>
-Retrieves the <span class="type">GError</span> currently set on <em class="parameter"><code>reader</code></em>, if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-is in error state
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
-<td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the pointer to the error, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.12</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 </div>
 <div class="refsect1">
 <a name="JsonReader.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="JsonReader--root"></a><h3>The <code class="literal">"root"</code> property</h3>
-<pre class="programlisting">  "root"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write / Construct</pre>
-<p>
-The root of the JSON tree that the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> should read.
-</p>
-<p class="since">Since 0.12</p>
+<a name="JsonReader--root"></a><h3>The <code class="literal">“root”</code> property</h3>
+<pre class="programlisting">  “root”                     <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</pre>
+<p>The root of the JSON tree that the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> should read.</p>
+<p>Flags: Read / Write / Construct</p>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 78268c5..663d4a5 100644 (file)
@@ -2,76 +2,79 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary</title>
+<title>Annotation Glossary: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="prev" href="ix08.html" title="Index of new symbols in 0.14">
+<link rel="prev" href="ix11.html" title="Index of new symbols in 1.2">
 <link rel="next" href="license.html" title="Appendix A. License">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix08.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="license.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#glsO">O</a>
-                      | 
-                   <a class="shortcut" href="#glsA">A</a>
-                      | 
-                   <a class="shortcut" href="#glsC">C</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
-                      | 
-                   <a class="shortcut" href="#glsA">A</a>
-                      | 
-                   <a class="shortcut" href="#glsE">E</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
-                      | 
-                   <a class="shortcut" href="#glsS">S</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsC">C</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsE">E</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsS">S</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsT">T</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix11.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="license.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="glossary">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
-<a name="glsO"></a><h3 class="title">O</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
-<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt>
-<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
-<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
+<dd class="glossdef"><p>NULL is OK, both for passing and for returning.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
 <dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
-<a name="glsT"></a><h3 class="title">T</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
-<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
-<a name="glsA"></a><h3 class="title">A</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
-<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-constructor"></a>constructor</span></dt>
+<dd class="glossdef"><p>This symbol is a constructor, not a static method.</p></dd>
 <a name="glsE"></a><h3 class="title">E</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
 <dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsN"></a><h3 class="title">N</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-nullable"></a>nullable</span></dt>
+<dd class="glossdef"><p>NULL may be passed as the value in, out, in-out; or as a return value.</p></dd>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-optional"></a>optional</span></dt>
+<dd class="glossdef"><p>NULL may be passed instead of a pointer to a location.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out%20callee-allocates"></a>out callee-allocates</span></dt>
+<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt>
+<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
+<a name="glsS"></a><h3 class="title">S</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
+<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
+<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-transfer%20container"></a>transfer container</span></dt>
 <dd class="glossdef"><p>Free data container after the code is done.</p></dd>
 <dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
 <dd class="glossdef"><p>Free data after the code is done.</p></dd>
-<a name="glsS"></a><h3 class="title">S</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
-<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
+<dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index e9a5305..0d5f354 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Data Types</title>
+<title>Data Types: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-base.html" title="Part II. JSON-GLib Reference">
 <link rel="prev" href="json-base.html" title="Part II. JSON-GLib Reference">
 <link rel="next" href="json-glib-JSON-Node.html" title="JSON Node">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-base.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-JSON-Node.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-base.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-JSON-Node.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -35,7 +35,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 5a5332f..ee247db 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Parser</title>
+<title>Parser: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-streams.html" title="Part III. Reading and writing">
 <link rel="prev" href="json-streams.html" title="Part III. Reading and writing">
 <link rel="next" href="JsonParser.html" title="JsonParser">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-streams.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-streams.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="JsonParser.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-streams.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-streams.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="JsonParser.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -35,7 +35,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 493e493..bda6138 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Generator</title>
+<title>Generator: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-streams.html" title="Part III. Reading and writing">
 <link rel="prev" href="JsonPath.html" title="JsonPath">
 <link rel="next" href="JsonGenerator.html" title="JsonGenerator">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="JsonPath.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-streams.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="JsonGenerator.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-streams.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="JsonPath.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="JsonGenerator.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -32,7 +32,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 2486617..6826781 100644 (file)
@@ -2,37 +2,31 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Object Hierarchy</title>
+<title>General Purpose API: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="up" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
-<link rel="prev" href="json-glib-Versioning-information.html" title="Versioning information">
-<link rel="next" href="ix01.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="up" href="json-streams.html" title="Part III. Reading and writing">
+<link rel="prev" href="JsonBuilder.html" title="JsonBuilder">
+<link rel="next" href="json-glib-Utility-API.html" title="Utility API">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-glib-Versioning-information.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-tools.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix01.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-streams.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="JsonBuilder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-Utility-API.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.6.3"></a>Object Hierarchy</h2></div></div></div>
-<pre class="screen">
-    GObject
-        <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
-        <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
-        <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
-        <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
-        <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
-</pre>
+<a name="id-1.4.5"></a>General Purpose API</h2></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="json-glib-Utility-API.html">Utility API</a></span><span class="refpurpose"> — Various utility functions</span>
+</dt></dl></div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/ch06.html b/doc/reference/html/ch06.html
new file mode 100644 (file)
index 0000000..38e69a1
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Object Hierarchy: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
+<link rel="prev" href="json-validate-tool.html" title="json-glib-validate">
+<link rel="next" href="ix01.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-validate-tool.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix01.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id-1.6.3"></a>Object Hierarchy</h2></div></div></div>
+<pre class="screen">
+    GObject
+    <span class="lineart">├──</span> <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+    <span class="lineart">├──</span> <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+    <span class="lineart">├──</span> <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+    <span class="lineart">├──</span> <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+    <span class="lineart">╰──</span> <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+    GInterface
+    <span class="lineart">╰──</span> <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable">JsonSerializable</a>
+    GBoxed
+    <span class="lineart">├──</span> <a class="link" href="json-glib-JSON-Array.html#JsonArray">JsonArray</a>
+    <span class="lineart">├──</span> <a class="link" href="json-glib-JSON-Node.html#JsonNode">JsonNode</a>
+    <span class="lineart">╰──</span> <a class="link" href="json-glib-JSON-Object.html#JsonObject">JsonObject</a>
+</pre>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
index 1700361..9346b33 100644 (file)
Binary files a/doc/reference/html/home.png and b/doc/reference/html/home.png differ
index edeac6b..92b98f6 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JSON-GLib Reference Manual</title>
+<title>JSON-GLib Reference Manual: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="next" href="json-glib.html" title="Part I. JSON-GLib Overview">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -14,7 +14,7 @@
 <div class="titlepage">
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">JSON-GLib Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">for JSON-GLib 0.16.0
+<div><p class="releaseinfo">for JSON-GLib 1.2.0
 </p></div>
 <div><p class="copyright">Copyright © 2007, 2008 OpenedHand LTD</p></div>
 <div><p class="copyright">Copyright © 2009, 2010, 2011 Intel Corporation</p></div>
 <span class="refentrytitle"><a href="JsonBuilder.html">JsonBuilder</a></span><span class="refpurpose"> — Generates JSON trees</span>
 </dt>
 </dl></dd>
+<dt><span class="chapter"><a href="ch04.html">General Purpose API</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="json-glib-Utility-API.html">Utility API</a></span><span class="refpurpose"> — Various utility functions</span>
+</dt></dl></dd>
 </dl></dd>
 <dt><span class="part"><a href="json-advanced.html">IV. JSON-GLib Advanced API</a></span></dt>
 <dd><dl>
 <dt>
 <span class="refentrytitle"><a href="json-glib-JSON-GVariant-Integration.html">JSON GVariant Integration</a></span><span class="refpurpose"> — Serialize and deserialize GVariant types</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="json-glib-Versioning-information.html">Versioning information</a></span><span class="refpurpose"> — JSON-GLib version checking</span>
+</dt>
 </dl></dd>
 <dt><span class="part"><a href="json-tools.html">V. JSON-GLib Additional Reference</a></span></dt>
 <dd><dl>
+<dt><span class="chapter"><a href="tools.html">JSON-GLib Tools</a></span></dt>
+<dd><dl>
 <dt>
-<span class="refentrytitle"><a href="json-glib-Versioning-information.html">Versioning information</a></span><span class="refpurpose"> — JSON-GLib version checking</span>
+<span class="refentrytitle"><a href="json-format-tool.html">json-glib-format</a></span><span class="refpurpose"> — JSON-GLib formatting tool</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="json-validate-tool.html">json-glib-validate</a></span><span class="refpurpose"> — JSON-GLib validation tool</span>
 </dt>
-<dt><span class="chapter"><a href="ch04.html">Object Hierarchy</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch06.html">Object Hierarchy</a></span></dt>
 </dl></dd>
 <dt><span class="index"><a href="ix01.html">Index</a></span></dt>
 <dt><span class="index"><a href="ix02.html">Index of deprecated symbols</a></span></dt>
 <dt><span class="index"><a href="ix06.html">Index of new symbols in 0.10</a></span></dt>
 <dt><span class="index"><a href="ix07.html">Index of new symbols in 0.12</a></span></dt>
 <dt><span class="index"><a href="ix08.html">Index of new symbols in 0.14</a></span></dt>
+<dt><span class="index"><a href="ix09.html">Index of new symbols in 0.16</a></span></dt>
+<dt><span class="index"><a href="ix10.html">Index of new symbols in 1.0</a></span></dt>
+<dt><span class="index"><a href="ix11.html">Index of new symbols in 1.2</a></span></dt>
 <dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
 <dt><span class="appendix"><a href="license.html">A. License</a></span></dt>
 </dl></div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 31fb574..5c35741 100644 (file)
@@ -1,13 +1,10 @@
 <ANCHOR id="json-glib-JSON-Node" href="json-glib/json-glib-JSON-Node.html">
-<ANCHOR id="json-glib-JSON-Node.synopsis" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.synopsis">
-<ANCHOR id="json-glib-JSON-Node.description" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.description">
-<ANCHOR id="json-glib-JSON-Node.details" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.details">
-<ANCHOR id="JsonNodeType" href="json-glib/json-glib-JSON-Node.html#JsonNodeType">
-<ANCHOR id="JSON-NODE-OBJECT:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS">
-<ANCHOR id="JSON-NODE-ARRAY:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS">
-<ANCHOR id="JSON-NODE-VALUE:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS">
-<ANCHOR id="JSON-NODE-NULL:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS">
+<ANCHOR id="json-glib-JSON-Node.functions" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.functions">
 <ANCHOR id="JsonNode" href="json-glib/json-glib-JSON-Node.html#JsonNode">
+<ANCHOR id="json-glib-JSON-Node.other" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.other">
+<ANCHOR id="json-glib-JSON-Node.object-hierarchy" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.object-hierarchy">
+<ANCHOR id="json-glib-JSON-Node.description" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.description">
+<ANCHOR id="json-glib-JSON-Node.functions_details" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.functions_details">
 <ANCHOR id="JSON-NODE-TYPE:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS">
 <ANCHOR id="JSON-NODE-HOLDS:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-HOLDS:CAPS">
 <ANCHOR id="JSON-NODE-HOLDS-VALUE:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-HOLDS-VALUE:CAPS">
 <ANCHOR id="json-node-new" href="json-glib/json-glib-JSON-Node.html#json-node-new">
 <ANCHOR id="json-node-copy" href="json-glib/json-glib-JSON-Node.html#json-node-copy">
 <ANCHOR id="json-node-free" href="json-glib/json-glib-JSON-Node.html#json-node-free">
+<ANCHOR id="json-node-ref" href="json-glib/json-glib-JSON-Node.html#json-node-ref">
+<ANCHOR id="json-node-unref" href="json-glib/json-glib-JSON-Node.html#json-node-unref">
+<ANCHOR id="json-node-is-immutable" href="json-glib/json-glib-JSON-Node.html#json-node-is-immutable">
+<ANCHOR id="json-node-seal" href="json-glib/json-glib-JSON-Node.html#json-node-seal">
+<ANCHOR id="json-node-hash" href="json-glib/json-glib-JSON-Node.html#json-node-hash">
+<ANCHOR id="json-node-equal" href="json-glib/json-glib-JSON-Node.html#json-node-equal">
 <ANCHOR id="json-node-set-array" href="json-glib/json-glib-JSON-Node.html#json-node-set-array">
 <ANCHOR id="json-node-take-array" href="json-glib/json-glib-JSON-Node.html#json-node-take-array">
 <ANCHOR id="json-node-get-array" href="json-glib/json-glib-JSON-Node.html#json-node-get-array">
 <ANCHOR id="json-node-get-value-type" href="json-glib/json-glib-JSON-Node.html#json-node-get-value-type">
 <ANCHOR id="json-node-get-node-type" href="json-glib/json-glib-JSON-Node.html#json-node-get-node-type">
 <ANCHOR id="json-node-is-null" href="json-glib/json-glib-JSON-Node.html#json-node-is-null">
+<ANCHOR id="json-string-hash" href="json-glib/json-glib-JSON-Node.html#json-string-hash">
+<ANCHOR id="json-string-equal" href="json-glib/json-glib-JSON-Node.html#json-string-equal">
+<ANCHOR id="json-string-compare" href="json-glib/json-glib-JSON-Node.html#json-string-compare">
+<ANCHOR id="json-glib-JSON-Node.other_details" href="json-glib/json-glib-JSON-Node.html#json-glib-JSON-Node.other_details">
+<ANCHOR id="JsonNodeType" href="json-glib/json-glib-JSON-Node.html#JsonNodeType">
+<ANCHOR id="JSON-NODE-OBJECT:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS">
+<ANCHOR id="JSON-NODE-ARRAY:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS">
+<ANCHOR id="JSON-NODE-VALUE:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS">
+<ANCHOR id="JSON-NODE-NULL:CAPS" href="json-glib/json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS">
+<ANCHOR id="JsonNode-struct" href="json-glib/json-glib-JSON-Node.html#JsonNode-struct">
 <ANCHOR id="json-glib-JSON-Array" href="json-glib/json-glib-JSON-Array.html">
-<ANCHOR id="json-glib-JSON-Array.synopsis" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.synopsis">
-<ANCHOR id="json-glib-JSON-Array.description" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.description">
-<ANCHOR id="json-glib-JSON-Array.details" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.details">
+<ANCHOR id="json-glib-JSON-Array.functions" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.functions">
 <ANCHOR id="JsonArray" href="json-glib/json-glib-JSON-Array.html#JsonArray">
+<ANCHOR id="json-glib-JSON-Array.other" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.other">
+<ANCHOR id="json-glib-JSON-Array.object-hierarchy" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.object-hierarchy">
+<ANCHOR id="json-glib-JSON-Array.description" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.description">
+<ANCHOR id="json-glib-JSON-Array.functions_details" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.functions_details">
 <ANCHOR id="json-array-new" href="json-glib/json-glib-JSON-Array.html#json-array-new">
 <ANCHOR id="json-array-sized-new" href="json-glib/json-glib-JSON-Array.html#json-array-sized-new">
 <ANCHOR id="json-array-ref" href="json-glib/json-glib-JSON-Array.html#json-array-ref">
 <ANCHOR id="json-array-unref" href="json-glib/json-glib-JSON-Array.html#json-array-unref">
+<ANCHOR id="json-array-seal" href="json-glib/json-glib-JSON-Array.html#json-array-seal">
+<ANCHOR id="json-array-is-immutable" href="json-glib/json-glib-JSON-Array.html#json-array-is-immutable">
+<ANCHOR id="json-array-hash" href="json-glib/json-glib-JSON-Array.html#json-array-hash">
+<ANCHOR id="json-array-equal" href="json-glib/json-glib-JSON-Array.html#json-array-equal">
 <ANCHOR id="json-array-add-element" href="json-glib/json-glib-JSON-Array.html#json-array-add-element">
 <ANCHOR id="json-array-get-element" href="json-glib/json-glib-JSON-Array.html#json-array-get-element">
 <ANCHOR id="json-array-dup-element" href="json-glib/json-glib-JSON-Array.html#json-array-dup-element">
 <ANCHOR id="json-array-get-object-element" href="json-glib/json-glib-JSON-Array.html#json-array-get-object-element">
 <ANCHOR id="json-array-add-string-element" href="json-glib/json-glib-JSON-Array.html#json-array-add-string-element">
 <ANCHOR id="json-array-get-string-element" href="json-glib/json-glib-JSON-Array.html#json-array-get-string-element">
+<ANCHOR id="json-glib-JSON-Array.other_details" href="json-glib/json-glib-JSON-Array.html#json-glib-JSON-Array.other_details">
+<ANCHOR id="JsonArray-struct" href="json-glib/json-glib-JSON-Array.html#JsonArray-struct">
 <ANCHOR id="json-glib-JSON-Object" href="json-glib/json-glib-JSON-Object.html">
-<ANCHOR id="json-glib-JSON-Object.synopsis" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.synopsis">
-<ANCHOR id="json-glib-JSON-Object.description" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.description">
-<ANCHOR id="json-glib-JSON-Object.details" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.details">
+<ANCHOR id="json-glib-JSON-Object.functions" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.functions">
 <ANCHOR id="JsonObject" href="json-glib/json-glib-JSON-Object.html#JsonObject">
+<ANCHOR id="json-glib-JSON-Object.other" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.other">
+<ANCHOR id="json-glib-JSON-Object.object-hierarchy" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.object-hierarchy">
+<ANCHOR id="json-glib-JSON-Object.description" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.description">
+<ANCHOR id="json-glib-JSON-Object.functions_details" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.functions_details">
 <ANCHOR id="json-object-new" href="json-glib/json-glib-JSON-Object.html#json-object-new">
 <ANCHOR id="json-object-ref" href="json-glib/json-glib-JSON-Object.html#json-object-ref">
 <ANCHOR id="json-object-unref" href="json-glib/json-glib-JSON-Object.html#json-object-unref">
+<ANCHOR id="json-object-seal" href="json-glib/json-glib-JSON-Object.html#json-object-seal">
+<ANCHOR id="json-object-is-immutable" href="json-glib/json-glib-JSON-Object.html#json-object-is-immutable">
+<ANCHOR id="json-object-hash" href="json-glib/json-glib-JSON-Object.html#json-object-hash">
+<ANCHOR id="json-object-equal" href="json-glib/json-glib-JSON-Object.html#json-object-equal">
 <ANCHOR id="json-object-add-member" href="json-glib/json-glib-JSON-Object.html#json-object-add-member">
 <ANCHOR id="json-object-set-member" href="json-glib/json-glib-JSON-Object.html#json-object-set-member">
 <ANCHOR id="json-object-has-member" href="json-glib/json-glib-JSON-Object.html#json-object-has-member">
 <ANCHOR id="json-object-remove-member" href="json-glib/json-glib-JSON-Object.html#json-object-remove-member">
 <ANCHOR id="JsonObjectForeach" href="json-glib/json-glib-JSON-Object.html#JsonObjectForeach">
 <ANCHOR id="json-object-foreach-member" href="json-glib/json-glib-JSON-Object.html#json-object-foreach-member">
+<ANCHOR id="json-object-iter-init" href="json-glib/json-glib-JSON-Object.html#json-object-iter-init">
+<ANCHOR id="json-object-iter-next" href="json-glib/json-glib-JSON-Object.html#json-object-iter-next">
 <ANCHOR id="json-object-set-array-member" href="json-glib/json-glib-JSON-Object.html#json-object-set-array-member">
 <ANCHOR id="json-object-get-array-member" href="json-glib/json-glib-JSON-Object.html#json-object-get-array-member">
 <ANCHOR id="json-object-set-boolean-member" href="json-glib/json-glib-JSON-Object.html#json-object-set-boolean-member">
 <ANCHOR id="json-object-get-object-member" href="json-glib/json-glib-JSON-Object.html#json-object-get-object-member">
 <ANCHOR id="json-object-set-string-member" href="json-glib/json-glib-JSON-Object.html#json-object-set-string-member">
 <ANCHOR id="json-object-get-string-member" href="json-glib/json-glib-JSON-Object.html#json-object-get-string-member">
+<ANCHOR id="json-glib-JSON-Object.other_details" href="json-glib/json-glib-JSON-Object.html#json-glib-JSON-Object.other_details">
+<ANCHOR id="JsonObject-struct" href="json-glib/json-glib-JSON-Object.html#JsonObject-struct">
+<ANCHOR id="JsonObjectIter" href="json-glib/json-glib-JSON-Object.html#JsonObjectIter">
 <ANCHOR id="JsonParser" href="json-glib/JsonParser.html">
-<ANCHOR id="JsonParser.synopsis" href="json-glib/JsonParser.html#JsonParser.synopsis">
-<ANCHOR id="JsonParser.object-hierarchy" href="json-glib/JsonParser.html#JsonParser.object-hierarchy">
+<ANCHOR id="JsonParser.functions" href="json-glib/JsonParser.html#JsonParser.functions">
+<ANCHOR id="JsonParser.properties" href="json-glib/JsonParser.html#JsonParser.properties">
 <ANCHOR id="JsonParser.signals" href="json-glib/JsonParser.html#JsonParser.signals">
+<ANCHOR id="JsonParser.other" href="json-glib/JsonParser.html#JsonParser.other">
+<ANCHOR id="JsonParser.object-hierarchy" href="json-glib/JsonParser.html#JsonParser.object-hierarchy">
 <ANCHOR id="JsonParser.description" href="json-glib/JsonParser.html#JsonParser.description">
-<ANCHOR id="JsonParser.details" href="json-glib/JsonParser.html#JsonParser.details">
-<ANCHOR id="JsonParserError" href="json-glib/JsonParser.html#JsonParserError">
-<ANCHOR id="JSON-PARSER-ERROR-PARSE:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-PARSE:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-TRAILING-COMMA:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-MISSING-COMMA:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-MISSING-COMMA:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-MISSING-COLON:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-MISSING-COLON:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS">
-<ANCHOR id="JSON-PARSER-ERROR-UNKNOWN:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-UNKNOWN:CAPS">
-<ANCHOR id="JsonParser-struct" href="json-glib/JsonParser.html#JsonParser-struct">
-<ANCHOR id="JsonParserClass" href="json-glib/JsonParser.html#JsonParserClass">
+<ANCHOR id="JsonParser.functions_details" href="json-glib/JsonParser.html#JsonParser.functions_details">
 <ANCHOR id="json-parser-new" href="json-glib/JsonParser.html#json-parser-new">
+<ANCHOR id="json-parser-new-immutable" href="json-glib/JsonParser.html#json-parser-new-immutable">
 <ANCHOR id="json-parser-load-from-file" href="json-glib/JsonParser.html#json-parser-load-from-file">
 <ANCHOR id="json-parser-load-from-data" href="json-glib/JsonParser.html#json-parser-load-from-data">
 <ANCHOR id="json-parser-load-from-stream" href="json-glib/JsonParser.html#json-parser-load-from-stream">
 <ANCHOR id="json-parser-get-current-line" href="json-glib/JsonParser.html#json-parser-get-current-line">
 <ANCHOR id="json-parser-get-current-pos" href="json-glib/JsonParser.html#json-parser-get-current-pos">
 <ANCHOR id="json-parser-has-assignment" href="json-glib/JsonParser.html#json-parser-has-assignment">
+<ANCHOR id="JsonParser.other_details" href="json-glib/JsonParser.html#JsonParser.other_details">
+<ANCHOR id="JsonParserError" href="json-glib/JsonParser.html#JsonParserError">
+<ANCHOR id="JSON-PARSER-ERROR-PARSE:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-PARSE:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-TRAILING-COMMA:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-MISSING-COMMA:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-MISSING-COMMA:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-MISSING-COLON:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-MISSING-COLON:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-INVALID-DATA:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-INVALID-DATA:CAPS">
+<ANCHOR id="JSON-PARSER-ERROR-UNKNOWN:CAPS" href="json-glib/JsonParser.html#JSON-PARSER-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="JsonParser-struct" href="json-glib/JsonParser.html#JsonParser-struct">
+<ANCHOR id="JsonParserClass" href="json-glib/JsonParser.html#JsonParserClass">
+<ANCHOR id="JsonParser.property-details" href="json-glib/JsonParser.html#JsonParser.property-details">
+<ANCHOR id="JsonParser--immutable" href="json-glib/JsonParser.html#JsonParser--immutable">
 <ANCHOR id="JsonParser.signal-details" href="json-glib/JsonParser.html#JsonParser.signal-details">
 <ANCHOR id="JsonParser-array-element" href="json-glib/JsonParser.html#JsonParser-array-element">
 <ANCHOR id="JsonParser-array-end" href="json-glib/JsonParser.html#JsonParser-array-end">
 <ANCHOR id="JsonParser-parse-end" href="json-glib/JsonParser.html#JsonParser-parse-end">
 <ANCHOR id="JsonParser-parse-start" href="json-glib/JsonParser.html#JsonParser-parse-start">
 <ANCHOR id="JsonReader" href="json-glib/JsonReader.html">
-<ANCHOR id="JsonReader.synopsis" href="json-glib/JsonReader.html#JsonReader.synopsis">
-<ANCHOR id="JsonReader.object-hierarchy" href="json-glib/JsonReader.html#JsonReader.object-hierarchy">
+<ANCHOR id="JsonReader.functions" href="json-glib/JsonReader.html#JsonReader.functions">
 <ANCHOR id="JsonReader.properties" href="json-glib/JsonReader.html#JsonReader.properties">
+<ANCHOR id="JsonReader.other" href="json-glib/JsonReader.html#JsonReader.other">
+<ANCHOR id="JsonReader.object-hierarchy" href="json-glib/JsonReader.html#JsonReader.object-hierarchy">
 <ANCHOR id="JsonReader.description" href="json-glib/JsonReader.html#JsonReader.description">
-<ANCHOR id="JsonReader.details" href="json-glib/JsonReader.html#JsonReader.details">
-<ANCHOR id="JsonReader-struct" href="json-glib/JsonReader.html#JsonReader-struct">
-<ANCHOR id="JsonReaderClass" href="json-glib/JsonReader.html#JsonReaderClass">
+<ANCHOR id="JsonReader.functions_details" href="json-glib/JsonReader.html#JsonReader.functions_details">
 <ANCHOR id="json-reader-new" href="json-glib/JsonReader.html#json-reader-new">
 <ANCHOR id="json-reader-set-root" href="json-glib/JsonReader.html#json-reader-set-root">
 <ANCHOR id="json-reader-read-element" href="json-glib/JsonReader.html#json-reader-read-element">
 <ANCHOR id="json-reader-get-string-value" href="json-glib/JsonReader.html#json-reader-get-string-value">
 <ANCHOR id="json-reader-get-boolean-value" href="json-glib/JsonReader.html#json-reader-get-boolean-value">
 <ANCHOR id="json-reader-get-null-value" href="json-glib/JsonReader.html#json-reader-get-null-value">
+<ANCHOR id="JSON-READER-ERROR:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR:CAPS">
+<ANCHOR id="json-reader-get-error" href="json-glib/JsonReader.html#json-reader-get-error">
+<ANCHOR id="JsonReader.other_details" href="json-glib/JsonReader.html#JsonReader.other_details">
+<ANCHOR id="JsonReader-struct" href="json-glib/JsonReader.html#JsonReader-struct">
+<ANCHOR id="JsonReaderClass" href="json-glib/JsonReader.html#JsonReaderClass">
 <ANCHOR id="JsonReaderError" href="json-glib/JsonReader.html#JsonReaderError">
 <ANCHOR id="JSON-READER-ERROR-NO-ARRAY:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR-NO-ARRAY:CAPS">
 <ANCHOR id="JSON-READER-ERROR-INVALID-INDEX:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR-INVALID-INDEX:CAPS">
 <ANCHOR id="JSON-READER-ERROR-INVALID-NODE:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR-INVALID-NODE:CAPS">
 <ANCHOR id="JSON-READER-ERROR-NO-VALUE:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR-NO-VALUE:CAPS">
 <ANCHOR id="JSON-READER-ERROR-INVALID-TYPE:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR-INVALID-TYPE:CAPS">
-<ANCHOR id="JSON-READER-ERROR:CAPS" href="json-glib/JsonReader.html#JSON-READER-ERROR:CAPS">
-<ANCHOR id="json-reader-get-error" href="json-glib/JsonReader.html#json-reader-get-error">
 <ANCHOR id="JsonReader.property-details" href="json-glib/JsonReader.html#JsonReader.property-details">
 <ANCHOR id="JsonReader--root" href="json-glib/JsonReader.html#JsonReader--root">
 <ANCHOR id="JsonPath" href="json-glib/JsonPath.html">
-<ANCHOR id="JsonPath.synopsis" href="json-glib/JsonPath.html#JsonPath.synopsis">
+<ANCHOR id="JsonPath.functions" href="json-glib/JsonPath.html#JsonPath.functions">
+<ANCHOR id="JsonPath.other" href="json-glib/JsonPath.html#JsonPath.other">
 <ANCHOR id="JsonPath.object-hierarchy" href="json-glib/JsonPath.html#JsonPath.object-hierarchy">
 <ANCHOR id="JsonPath.description" href="json-glib/JsonPath.html#JsonPath.description">
-<ANCHOR id="json-path-syntax" href="json-glib/JsonPath.html#json-path-syntax">
-<ANCHOR id="JsonPath.details" href="json-glib/JsonPath.html#JsonPath.details">
-<ANCHOR id="JsonPath-struct" href="json-glib/JsonPath.html#JsonPath-struct">
-<ANCHOR id="JsonPathClass" href="json-glib/JsonPath.html#JsonPathClass">
+<ANCHOR id="JsonPath.functions_details" href="json-glib/JsonPath.html#JsonPath.functions_details">
 <ANCHOR id="json-path-new" href="json-glib/JsonPath.html#json-path-new">
 <ANCHOR id="JSON-PATH-ERROR:CAPS" href="json-glib/JsonPath.html#JSON-PATH-ERROR:CAPS">
-<ANCHOR id="JsonPathError" href="json-glib/JsonPath.html#JsonPathError">
-<ANCHOR id="JSON-PATH-ERROR-INVALID-QUERY:CAPS" href="json-glib/JsonPath.html#JSON-PATH-ERROR-INVALID-QUERY:CAPS">
 <ANCHOR id="json-path-compile" href="json-glib/JsonPath.html#json-path-compile">
 <ANCHOR id="json-path-match" href="json-glib/JsonPath.html#json-path-match">
 <ANCHOR id="json-path-query" href="json-glib/JsonPath.html#json-path-query">
+<ANCHOR id="JsonPath.other_details" href="json-glib/JsonPath.html#JsonPath.other_details">
+<ANCHOR id="JsonPath-struct" href="json-glib/JsonPath.html#JsonPath-struct">
+<ANCHOR id="JsonPathClass" href="json-glib/JsonPath.html#JsonPathClass">
+<ANCHOR id="JsonPathError" href="json-glib/JsonPath.html#JsonPathError">
+<ANCHOR id="JSON-PATH-ERROR-INVALID-QUERY:CAPS" href="json-glib/JsonPath.html#JSON-PATH-ERROR-INVALID-QUERY:CAPS">
 <ANCHOR id="JsonGenerator" href="json-glib/JsonGenerator.html">
-<ANCHOR id="JsonGenerator.synopsis" href="json-glib/JsonGenerator.html#JsonGenerator.synopsis">
-<ANCHOR id="JsonGenerator.object-hierarchy" href="json-glib/JsonGenerator.html#JsonGenerator.object-hierarchy">
+<ANCHOR id="JsonGenerator.functions" href="json-glib/JsonGenerator.html#JsonGenerator.functions">
 <ANCHOR id="JsonGenerator.properties" href="json-glib/JsonGenerator.html#JsonGenerator.properties">
+<ANCHOR id="JsonGenerator.other" href="json-glib/JsonGenerator.html#JsonGenerator.other">
+<ANCHOR id="JsonGenerator.object-hierarchy" href="json-glib/JsonGenerator.html#JsonGenerator.object-hierarchy">
 <ANCHOR id="JsonGenerator.description" href="json-glib/JsonGenerator.html#JsonGenerator.description">
-<ANCHOR id="JsonGenerator.details" href="json-glib/JsonGenerator.html#JsonGenerator.details">
-<ANCHOR id="JsonGenerator-struct" href="json-glib/JsonGenerator.html#JsonGenerator-struct">
-<ANCHOR id="JsonGeneratorClass" href="json-glib/JsonGenerator.html#JsonGeneratorClass">
+<ANCHOR id="JsonGenerator.functions_details" href="json-glib/JsonGenerator.html#JsonGenerator.functions_details">
 <ANCHOR id="json-generator-new" href="json-glib/JsonGenerator.html#json-generator-new">
 <ANCHOR id="json-generator-set-root" href="json-glib/JsonGenerator.html#json-generator-set-root">
 <ANCHOR id="json-generator-get-root" href="json-glib/JsonGenerator.html#json-generator-get-root">
 <ANCHOR id="json-generator-to-file" href="json-glib/JsonGenerator.html#json-generator-to-file">
 <ANCHOR id="json-generator-to-data" href="json-glib/JsonGenerator.html#json-generator-to-data">
 <ANCHOR id="json-generator-to-stream" href="json-glib/JsonGenerator.html#json-generator-to-stream">
+<ANCHOR id="JsonGenerator.other_details" href="json-glib/JsonGenerator.html#JsonGenerator.other_details">
+<ANCHOR id="JsonGenerator-struct" href="json-glib/JsonGenerator.html#JsonGenerator-struct">
+<ANCHOR id="JsonGeneratorClass" href="json-glib/JsonGenerator.html#JsonGeneratorClass">
 <ANCHOR id="JsonGenerator.property-details" href="json-glib/JsonGenerator.html#JsonGenerator.property-details">
 <ANCHOR id="JsonGenerator--indent" href="json-glib/JsonGenerator.html#JsonGenerator--indent">
 <ANCHOR id="JsonGenerator--indent-char" href="json-glib/JsonGenerator.html#JsonGenerator--indent-char">
 <ANCHOR id="JsonGenerator--pretty" href="json-glib/JsonGenerator.html#JsonGenerator--pretty">
 <ANCHOR id="JsonGenerator--root" href="json-glib/JsonGenerator.html#JsonGenerator--root">
 <ANCHOR id="JsonBuilder" href="json-glib/JsonBuilder.html">
-<ANCHOR id="JsonBuilder.synopsis" href="json-glib/JsonBuilder.html#JsonBuilder.synopsis">
+<ANCHOR id="JsonBuilder.functions" href="json-glib/JsonBuilder.html#JsonBuilder.functions">
+<ANCHOR id="JsonBuilder.properties" href="json-glib/JsonBuilder.html#JsonBuilder.properties">
+<ANCHOR id="JsonBuilder.other" href="json-glib/JsonBuilder.html#JsonBuilder.other">
 <ANCHOR id="JsonBuilder.object-hierarchy" href="json-glib/JsonBuilder.html#JsonBuilder.object-hierarchy">
 <ANCHOR id="JsonBuilder.description" href="json-glib/JsonBuilder.html#JsonBuilder.description">
-<ANCHOR id="JsonBuilder.details" href="json-glib/JsonBuilder.html#JsonBuilder.details">
-<ANCHOR id="JsonBuilder-struct" href="json-glib/JsonBuilder.html#JsonBuilder-struct">
-<ANCHOR id="JsonBuilderClass" href="json-glib/JsonBuilder.html#JsonBuilderClass">
+<ANCHOR id="JsonBuilder.functions_details" href="json-glib/JsonBuilder.html#JsonBuilder.functions_details">
 <ANCHOR id="json-builder-new" href="json-glib/JsonBuilder.html#json-builder-new">
+<ANCHOR id="json-builder-new-immutable" href="json-glib/JsonBuilder.html#json-builder-new-immutable">
 <ANCHOR id="json-builder-get-root" href="json-glib/JsonBuilder.html#json-builder-get-root">
 <ANCHOR id="json-builder-reset" href="json-glib/JsonBuilder.html#json-builder-reset">
 <ANCHOR id="json-builder-begin-array" href="json-glib/JsonBuilder.html#json-builder-begin-array">
 <ANCHOR id="json-builder-add-boolean-value" href="json-glib/JsonBuilder.html#json-builder-add-boolean-value">
 <ANCHOR id="json-builder-add-string-value" href="json-glib/JsonBuilder.html#json-builder-add-string-value">
 <ANCHOR id="json-builder-add-null-value" href="json-glib/JsonBuilder.html#json-builder-add-null-value">
+<ANCHOR id="JsonBuilder.other_details" href="json-glib/JsonBuilder.html#JsonBuilder.other_details">
+<ANCHOR id="JsonBuilder-struct" href="json-glib/JsonBuilder.html#JsonBuilder-struct">
+<ANCHOR id="JsonBuilderClass" href="json-glib/JsonBuilder.html#JsonBuilderClass">
+<ANCHOR id="JsonBuilder.property-details" href="json-glib/JsonBuilder.html#JsonBuilder.property-details">
+<ANCHOR id="JsonBuilder--immutable" href="json-glib/JsonBuilder.html#JsonBuilder--immutable">
 <ANCHOR id="JsonBuilder.see-also" href="json-glib/JsonBuilder.html#JsonBuilder.see-also">
+<ANCHOR id="json-glib-Utility-API" href="json-glib/json-glib-Utility-API.html">
+<ANCHOR id="json-glib-Utility-API.functions" href="json-glib/json-glib-Utility-API.html#json-glib-Utility-API.functions">
+<ANCHOR id="json-glib-Utility-API.description" href="json-glib/json-glib-Utility-API.html#json-glib-Utility-API.description">
+<ANCHOR id="json-glib-Utility-API.functions_details" href="json-glib/json-glib-Utility-API.html#json-glib-Utility-API.functions_details">
+<ANCHOR id="json-from-string" href="json-glib/json-glib-Utility-API.html#json-from-string">
+<ANCHOR id="json-to-string" href="json-glib/json-glib-Utility-API.html#json-to-string">
+<ANCHOR id="json-glib-Utility-API.other_details" href="json-glib/json-glib-Utility-API.html#json-glib-Utility-API.other_details">
 <ANCHOR id="json-glib-GObject-Serialization" href="json-glib/json-glib-GObject-Serialization.html">
-<ANCHOR id="json-glib-GObject-Serialization.synopsis" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.synopsis">
+<ANCHOR id="json-glib-GObject-Serialization.functions" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.functions">
 <ANCHOR id="json-glib-GObject-Serialization.description" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.description">
-<ANCHOR id="json-glib-GObject-Serialization.details" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.details">
+<ANCHOR id="json-glib-GObject-Serialization.functions_details" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.functions_details">
 <ANCHOR id="json-gobject-serialize" href="json-glib/json-glib-GObject-Serialization.html#json-gobject-serialize">
 <ANCHOR id="json-gobject-deserialize" href="json-glib/json-glib-GObject-Serialization.html#json-gobject-deserialize">
 <ANCHOR id="json-gobject-to-data" href="json-glib/json-glib-GObject-Serialization.html#json-gobject-to-data">
 <ANCHOR id="json-gobject-from-data" href="json-glib/json-glib-GObject-Serialization.html#json-gobject-from-data">
 <ANCHOR id="json-construct-gobject" href="json-glib/json-glib-GObject-Serialization.html#json-construct-gobject">
 <ANCHOR id="json-serialize-gobject" href="json-glib/json-glib-GObject-Serialization.html#json-serialize-gobject">
+<ANCHOR id="json-glib-GObject-Serialization.other_details" href="json-glib/json-glib-GObject-Serialization.html#json-glib-GObject-Serialization.other_details">
 <ANCHOR id="json-glib-Serializable-Interface" href="json-glib/json-glib-Serializable-Interface.html">
-<ANCHOR id="json-glib-Serializable-Interface.synopsis" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.synopsis">
+<ANCHOR id="json-glib-Serializable-Interface.functions" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.functions">
+<ANCHOR id="JsonSerializable" href="json-glib/json-glib-Serializable-Interface.html#JsonSerializable">
+<ANCHOR id="json-glib-Serializable-Interface.other" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.other">
+<ANCHOR id="json-glib-Serializable-Interface.object-hierarchy" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.object-hierarchy">
 <ANCHOR id="json-glib-Serializable-Interface.description" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.description">
-<ANCHOR id="json-glib-Serializable-Interface.details" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.details">
-<ANCHOR id="JsonSerializableIface" href="json-glib/json-glib-Serializable-Interface.html#JsonSerializableIface">
+<ANCHOR id="json-glib-Serializable-Interface.functions_details" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.functions_details">
 <ANCHOR id="json-serializable-serialize-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-serialize-property">
 <ANCHOR id="json-serializable-deserialize-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-deserialize-property">
 <ANCHOR id="json-serializable-find-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-find-property">
 <ANCHOR id="json-serializable-set-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-set-property">
 <ANCHOR id="json-serializable-default-serialize-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-default-serialize-property">
 <ANCHOR id="json-serializable-default-deserialize-property" href="json-glib/json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property">
+<ANCHOR id="json-glib-Serializable-Interface.other_details" href="json-glib/json-glib-Serializable-Interface.html#json-glib-Serializable-Interface.other_details">
+<ANCHOR id="JsonSerializableIface" href="json-glib/json-glib-Serializable-Interface.html#JsonSerializableIface">
 <ANCHOR id="json-glib-Boxed-Types-Serialization" href="json-glib/json-glib-Boxed-Types-Serialization.html">
-<ANCHOR id="json-glib-Boxed-Types-Serialization.synopsis" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.synopsis">
+<ANCHOR id="json-glib-Boxed-Types-Serialization.functions" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.functions">
 <ANCHOR id="json-glib-Boxed-Types-Serialization.description" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.description">
-<ANCHOR id="json-glib-Boxed-Types-Serialization.details" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.details">
+<ANCHOR id="json-glib-Boxed-Types-Serialization.functions_details" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.functions_details">
 <ANCHOR id="JsonBoxedSerializeFunc" href="json-glib/json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc">
 <ANCHOR id="JsonBoxedDeserializeFunc" href="json-glib/json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc">
 <ANCHOR id="json-boxed-register-serialize-func" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func">
 <ANCHOR id="json-boxed-can-deserialize" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize">
 <ANCHOR id="json-boxed-serialize" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-boxed-serialize">
 <ANCHOR id="json-boxed-deserialize" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize">
+<ANCHOR id="json-glib-Boxed-Types-Serialization.other_details" href="json-glib/json-glib-Boxed-Types-Serialization.html#json-glib-Boxed-Types-Serialization.other_details">
 <ANCHOR id="json-glib-JSON-GVariant-Integration" href="json-glib/json-glib-JSON-GVariant-Integration.html">
-<ANCHOR id="json-glib-JSON-GVariant-Integration.synopsis" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.synopsis">
+<ANCHOR id="json-glib-JSON-GVariant-Integration.functions" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.functions">
 <ANCHOR id="json-glib-JSON-GVariant-Integration.description" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.description">
-<ANCHOR id="json-glib-JSON-GVariant-Integration.details" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.details">
+<ANCHOR id="json-glib-JSON-GVariant-Integration.functions_details" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.functions_details">
 <ANCHOR id="json-gvariant-serialize" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize">
 <ANCHOR id="json-gvariant-serialize-data" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data">
 <ANCHOR id="json-gvariant-deserialize" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize">
 <ANCHOR id="json-gvariant-deserialize-data" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data">
+<ANCHOR id="json-glib-JSON-GVariant-Integration.other_details" href="json-glib/json-glib-JSON-GVariant-Integration.html#json-glib-JSON-GVariant-Integration.other_details">
 <ANCHOR id="json-glib-Versioning-information" href="json-glib/json-glib-Versioning-information.html">
-<ANCHOR id="json-glib-Versioning-information.synopsis" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.synopsis">
+<ANCHOR id="json-glib-Versioning-information.functions" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.functions">
+<ANCHOR id="json-glib-Versioning-information.other" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.other">
 <ANCHOR id="json-glib-Versioning-information.description" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.description">
-<ANCHOR id="json-glib-Versioning-information.details" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.details">
+<ANCHOR id="json-glib-Versioning-information.functions_details" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.functions_details">
 <ANCHOR id="JSON-MAJOR-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-MAJOR-VERSION:CAPS">
 <ANCHOR id="JSON-MINOR-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-MINOR-VERSION:CAPS">
 <ANCHOR id="JSON-MICRO-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-MICRO-VERSION:CAPS">
 <ANCHOR id="JSON-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-VERSION:CAPS">
+<ANCHOR id="JSON-CHECK-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS">
+<ANCHOR id="JSON-VERSION-MIN-REQUIRED:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-VERSION-MIN-REQUIRED:CAPS">
+<ANCHOR id="JSON-VERSION-MAX-ALLOWED:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-VERSION-MAX-ALLOWED:CAPS">
+<ANCHOR id="json-glib-Versioning-information.other_details" href="json-glib/json-glib-Versioning-information.html#json-glib-Versioning-information.other_details">
 <ANCHOR id="JSON-VERSION-S:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-VERSION-S:CAPS">
 <ANCHOR id="JSON-VERSION-HEX:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-VERSION-HEX:CAPS">
-<ANCHOR id="JSON-CHECK-VERSION:CAPS" href="json-glib/json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS">
-<ANCHOR id="annotation-glossterm-out" href="json-glib/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-out caller-allocates" href="json-glib/annotation-glossary.html#annotation-glossterm-out caller-allocates">
+<ANCHOR id="json-format-tool" href="json-glib/json-format-tool.html">
+<ANCHOR id="json-validate-tool" href="json-glib/json-validate-tool.html">
 <ANCHOR id="annotation-glossterm-allow-none" href="json-glib/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-closure" href="json-glib/annotation-glossary.html#annotation-glossterm-closure">
-<ANCHOR id="annotation-glossterm-transfer none" href="json-glib/annotation-glossary.html#annotation-glossterm-transfer none">
 <ANCHOR id="annotation-glossterm-array" href="json-glib/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-closure" href="json-glib/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-constructor" href="json-glib/annotation-glossary.html#annotation-glossterm-constructor">
 <ANCHOR id="annotation-glossterm-element-type" href="json-glib/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-nullable" href="json-glib/annotation-glossary.html#annotation-glossterm-nullable">
+<ANCHOR id="annotation-glossterm-optional" href="json-glib/annotation-glossary.html#annotation-glossterm-optional">
+<ANCHOR id="annotation-glossterm-out" href="json-glib/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-out callee-allocates" href="json-glib/annotation-glossary.html#annotation-glossterm-out callee-allocates">
+<ANCHOR id="annotation-glossterm-out caller-allocates" href="json-glib/annotation-glossary.html#annotation-glossterm-out caller-allocates">
+<ANCHOR id="annotation-glossterm-scope call" href="json-glib/annotation-glossary.html#annotation-glossterm-scope call">
+<ANCHOR id="annotation-glossterm-skip" href="json-glib/annotation-glossary.html#annotation-glossterm-skip">
 <ANCHOR id="annotation-glossterm-transfer container" href="json-glib/annotation-glossary.html#annotation-glossterm-transfer container">
 <ANCHOR id="annotation-glossterm-transfer full" href="json-glib/annotation-glossary.html#annotation-glossterm-transfer full">
-<ANCHOR id="annotation-glossterm-scope call" href="json-glib/annotation-glossary.html#annotation-glossterm-scope call">
+<ANCHOR id="annotation-glossterm-transfer none" href="json-glib/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-type" href="json-glib/annotation-glossary.html#annotation-glossterm-type">
index 45ab3a2..290c151 100644 (file)
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index</title>
+<title>Index: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="prev" href="ch04.html" title="Object Hierarchy">
+<link rel="prev" href="ch06.html" title="Object Hierarchy">
 <link rel="next" href="ix02.html" title="Index of deprecated symbols">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch04.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxA">A</a>
-                      | 
-                   <a class="shortcut" href="#idxB">B</a>
-                      | 
-                   <a class="shortcut" href="#idxC">C</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxM">M</a>
-                      | 
-                   <a class="shortcut" href="#idxN">N</a>
-                      | 
-                   <a class="shortcut" href="#idxO">O</a>
-                      | 
-                   <a class="shortcut" href="#idxP">P</a>
-                      | 
-                   <a class="shortcut" href="#idxR">R</a>
-                      | 
-                   <a class="shortcut" href="#idxS">S</a>
-                      | 
-                   <a class="shortcut" href="#idxV">V</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxB">B</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxC">C</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxF">F</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxM">M</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxR">R</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxT">T</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxV">V</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ch06.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.7"></a>Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray">JsonArray</a>, struct in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#JsonArray-struct" title="JsonArray">JsonArray</a>, struct in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">JsonArrayForeach</a>, user_function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">JsonArrayForeach</a>, user_function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()">json_array_add_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()">json_array_add_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-equal" title="json_array_equal ()">json_array_equal</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()">json_array_get_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()">json_array_get_elements</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()">json_array_get_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()">json_array_get_elements</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()">json_array_get_length</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()">json_array_get_length</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-new" title="json_array_new ()">json_array_new</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()">json_array_ref</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-hash" title="json_array_hash ()">json_array_hash</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-remove-element" title="json_array_remove_element ()">json_array_remove_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-is-immutable" title="json_array_is_immutable ()">json_array_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-sized-new" title="json_array_sized_new ()">json_array_sized_new</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-new" title="json_array_new ()">json_array_new</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()">json_array_unref</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()">json_array_ref</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-remove-element" title="json_array_remove_element ()">json_array_remove_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-seal" title="json_array_seal ()">json_array_seal</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-sized-new" title="json_array_sized_new ()">json_array_sized_new</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()">json_array_unref</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <a name="idxB"></a><h3 class="title">B</h3>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">JsonBoxedDeserializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">JsonBoxedDeserializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">JsonBoxedSerializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">JsonBoxedSerializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="JsonBuilder.html#JsonBuilder--immutable" title="The “immutable” property">JsonBuilder:immutable</a>, object property in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="JsonBuilder.html#JsonBuilderClass" title="struct JsonBuilderClass">JsonBuilderClass</a>, struct in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-boolean-value" title="json_builder_add_boolean_value ()">json_builder_add_boolean_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-add-boolean-value" title="json_builder_add_boolean_value ()">json_builder_add_boolean_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="JsonBuilder.html#json-builder-add-double-value" title="json_builder_add_double_value ()">json_builder_add_double_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-double-value" title="json_builder_add_double_value ()">json_builder_add_double_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-add-int-value" title="json_builder_add_int_value ()">json_builder_add_int_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-int-value" title="json_builder_add_int_value ()">json_builder_add_int_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-add-null-value" title="json_builder_add_null_value ()">json_builder_add_null_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-null-value" title="json_builder_add_null_value ()">json_builder_add_null_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-add-string-value" title="json_builder_add_string_value ()">json_builder_add_string_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-string-value" title="json_builder_add_string_value ()">json_builder_add_string_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()">json_builder_add_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-add-value" title="json_builder_add_value ()">json_builder_add_value</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()">json_builder_begin_array</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-begin-array" title="json_builder_begin_array ()">json_builder_begin_array</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()">json_builder_begin_object</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-begin-object" title="json_builder_begin_object ()">json_builder_begin_object</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()">json_builder_end_array</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-end-array" title="json_builder_end_array ()">json_builder_end_array</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()">json_builder_end_object</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-end-object" title="json_builder_end_object ()">json_builder_end_object</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-get-root" title="json_builder_get_root ()">json_builder_get_root</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-get-root" title="json_builder_get_root ()">json_builder_get_root</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-new" title="json_builder_new ()">json_builder_new</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-new" title="json_builder_new ()">json_builder_new</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-new-immutable" title="json_builder_new_immutable ()">json_builder_new_immutable</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-reset" title="json_builder_reset ()">json_builder_reset</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-reset" title="json_builder_reset ()">json_builder_reset</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()">json_builder_set_member_name</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+<a class="link" href="JsonBuilder.html#json-builder-set-member-name" title="json_builder_set_member_name ()">json_builder_set_member_name</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
 </dt>
 <dd></dd>
 <a name="idxC"></a><h3 class="title">C</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+<a class="link" href="json-glib-Utility-API.html#json-from-string" title="json_from_string ()">json_from_string</a>, function in <a class="link" href="json-glib-Utility-API.html" title="Utility API">Utility API</a>
 </dt>
 <dd></dd>
 <a name="idxG"></a><h3 class="title">G</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--indent" title='The "indent" property'>JsonGenerator:indent</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--indent" title="The “indent” property">JsonGenerator:indent</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title='The "indent-char" property'>JsonGenerator:indent-char</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title="The “indent-char” property">JsonGenerator:indent-char</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--pretty" title='The "pretty" property'>JsonGenerator:pretty</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--pretty" title="The “pretty” property">JsonGenerator:pretty</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--root" title='The "root" property'>JsonGenerator:root</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--root" title="The “root” property">JsonGenerator:root</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-new" title="json_generator_new ()">json_generator_new</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-new" title="json_generator_new ()">json_generator_new</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()">json_generator_set_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-root" title="json_generator_set_root ()">json_generator_set_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-to-data" title="json_generator_to_data ()">json_generator_to_data</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-to-data" title="json_generator_to_data ()">json_generator_to_data</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-to-file" title="json_generator_to_file ()">json_generator_to_file</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-to-file" title="json_generator_to_file ()">json_generator_to_file</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <a name="idxM"></a><h3 class="title">M</h3>
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode">JsonNode</a>, struct in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#JsonNode-struct" title="JsonNode">JsonNode</a>, struct in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()">json_node_alloc</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()">json_node_alloc</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-copy" title="json_node_copy ()">json_node_copy</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-copy" title="json_node_copy ()">json_node_copy</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-dup-array" title="json_node_dup_array ()">json_node_dup_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-array" title="json_node_dup_array ()">json_node_dup_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-dup-object" title="json_node_dup_object ()">json_node_dup_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-object" title="json_node_dup_object ()">json_node_dup_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-dup-string" title="json_node_dup_string ()">json_node_dup_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-string" title="json_node_dup_string ()">json_node_dup_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()">json_node_free</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-equal" title="json_node_equal ()">json_node_equal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()">json_node_get_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()">json_node_free</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()">json_node_get_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()">json_node_get_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()">json_node_get_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()">json_node_get_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()">json_node_get_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()">json_node_get_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()">json_node_get_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()">json_node_get_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-parent" title="json_node_get_parent ()">json_node_get_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()">json_node_get_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()">json_node_get_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-parent" title="json_node_get_parent ()">json_node_get_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()">json_node_get_value</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()">json_node_get_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()">json_node_get_value</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-hash" title="json_node_hash ()">json_node_hash</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()">json_node_init</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()">json_node_init</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-array" title="json_node_init_array ()">json_node_init_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-array" title="json_node_init_array ()">json_node_init_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-boolean" title="json_node_init_boolean ()">json_node_init_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-boolean" title="json_node_init_boolean ()">json_node_init_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-double" title="json_node_init_double ()">json_node_init_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-double" title="json_node_init_double ()">json_node_init_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-int" title="json_node_init_int ()">json_node_init_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-int" title="json_node_init_int ()">json_node_init_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-null" title="json_node_init_null ()">json_node_init_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-null" title="json_node_init_null ()">json_node_init_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-object" title="json_node_init_object ()">json_node_init_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-object" title="json_node_init_object ()">json_node_init_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-init-string" title="json_node_init_string ()">json_node_init_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-string" title="json_node_init_string ()">json_node_init_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-immutable" title="json_node_is_immutable ()">json_node_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-new" title="json_node_new ()">json_node_new</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-array" title="json_node_set_array ()">json_node_set_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-new" title="json_node_new ()">json_node_new</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()">json_node_set_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-ref" title="json_node_ref ()">json_node_ref</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()">json_node_set_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-seal" title="json_node_seal ()">json_node_seal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()">json_node_set_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-array" title="json_node_set_array ()">json_node_set_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-object" title="json_node_set_object ()">json_node_set_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()">json_node_set_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()">json_node_set_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()">json_node_set_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()">json_node_set_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-value" title="json_node_set_value ()">json_node_set_value</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-object" title="json_node_set_object ()">json_node_set_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()">json_node_take_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()">json_node_take_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()">json_node_set_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-value" title="json_node_set_value ()">json_node_set_value</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()">json_node_take_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()">json_node_take_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-type-name" title="json_node_type_name ()">json_node_type_name</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-type-name" title="json_node_type_name ()">json_node_type_name</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()">json_node_unref</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <a name="idxO"></a><h3 class="title">O</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject">JsonObject</a>, struct in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#JsonObject-struct" title="JsonObject">JsonObject</a>, struct in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">JsonObjectForeach</a>, user_function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">JsonObjectForeach</a>, user_function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter">JsonObjectIter</a>, struct in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-equal" title="json_object_equal ()">json_object_equal</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()">json_object_get_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()">json_object_get_members</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()">json_object_get_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()">json_object_get_members</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()">json_object_get_size</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()">json_object_get_size</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-values" title="json_object_get_values ()">json_object_get_values</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-has-member" title="json_object_has_member ()">json_object_has_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-values" title="json_object_get_values ()">json_object_get_values</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-new" title="json_object_new ()">json_object_new</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-hash" title="json_object_hash ()">json_object_hash</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()">json_object_ref</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-has-member" title="json_object_has_member ()">json_object_has_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-remove-member" title="json_object_remove_member ()">json_object_remove_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-is-immutable" title="json_object_is_immutable ()">json_object_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-init" title="json_object_iter_init ()">json_object_iter_init</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-next" title="json_object_iter_next ()">json_object_iter_next</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-new" title="json_object_new ()">json_object_new</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()">json_object_ref</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-remove-member" title="json_object_remove_member ()">json_object_remove_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-seal" title="json_object_seal ()">json_object_seal</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()">json_object_unref</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()">json_object_unref</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-array-element" title='The "array-element" signal'>JsonParser::array-element</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-array-element" title="The “array-element” signal">JsonParser::array-element</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="JsonParser.html#JsonParser-array-end" title="The “array-end” signal">JsonParser::array-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-array-end" title='The "array-end" signal'>JsonParser::array-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-array-start" title="The “array-start” signal">JsonParser::array-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-array-start" title='The "array-start" signal'>JsonParser::array-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-error" title="The “error” signal">JsonParser::error</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-error" title='The "error" signal'>JsonParser::error</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-object-end" title="The “object-end” signal">JsonParser::object-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-object-end" title='The "object-end" signal'>JsonParser::object-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-object-member" title="The “object-member” signal">JsonParser::object-member</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-object-member" title='The "object-member" signal'>JsonParser::object-member</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-object-start" title="The “object-start” signal">JsonParser::object-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-object-start" title='The "object-start" signal'>JsonParser::object-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-parse-end" title="The “parse-end” signal">JsonParser::parse-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-parse-end" title='The "parse-end" signal'>JsonParser::parse-end</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser-parse-start" title="The “parse-start” signal">JsonParser::parse-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#JsonParser-parse-start" title='The "parse-start" signal'>JsonParser::parse-start</a>, object signal in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property">JsonParser:immutable</a>, object property in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="JsonParser.html#json-parser-new-immutable" title="json_parser_new_immutable ()">json_parser_new_immutable</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <a name="idxR"></a><h3 class="title">R</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#JsonReader--root" title='The "root" property'>JsonReader:root</a>, object property in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#JsonReader--root" title="The “root” property">JsonReader:root</a>, object property in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-deserialize-property" title="json_serializable_deserialize_property ()">json_serializable_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-deserialize-property" title="json_serializable_deserialize_property ()">json_serializable_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-get-property" title="json_serializable_get_property ()">json_serializable_get_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-get-property" title="json_serializable_get_property ()">json_serializable_get_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-serialize-property" title="json_serializable_serialize_property ()">json_serializable_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-serialize-property" title="json_serializable_serialize_property ()">json_serializable_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-set-property" title="json_serializable_set_property ()">json_serializable_set_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-set-property" title="json_serializable_set_property ()">json_serializable_set_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-JSON-Node.html#json-string-compare" title="json_string_compare ()">json_string_compare</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-string-equal" title="json_string_equal ()">json_string_equal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-string-hash" title="json_string_hash ()">json_string_hash</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="json-glib-Utility-API.html#json-to-string" title="json_to_string ()">json_to_string</a>, function in <a class="link" href="json-glib-Utility-API.html" title="Utility API">Utility API</a>
 </dt>
 <dd></dd>
 <a name="idxV"></a><h3 class="title">V</h3>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MAX-ALLOWED:CAPS" title="JSON_VERSION_MAX_ALLOWED">JSON_VERSION_MAX_ALLOWED</a>, macro in <a class="link" href="json-glib-Versioning-information.html" title="Versioning information">Versioning information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MIN-REQUIRED:CAPS" title="JSON_VERSION_MIN_REQUIRED">JSON_VERSION_MIN_REQUIRED</a>, macro in <a class="link" href="json-glib-Versioning-information.html" title="Versioning information">Versioning information</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-S:CAPS" title="JSON_VERSION_S">JSON_VERSION_S</a>, macro in <a class="link" href="json-glib-Versioning-information.html" title="Versioning information">Versioning information</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index b13d3ff..2956c53 100644 (file)
@@ -2,53 +2,47 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated symbols</title>
+<title>Index of deprecated symbols: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix01.html" title="Index">
 <link rel="next" href="ix03.html" title="Index of new symbols in 0.4">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxC">C</a>
-                      | 
-                   <a class="shortcut" href="#idxO">O</a>
-                      | 
-                   <a class="shortcut" href="#idxS">S</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.8"></a>Index of deprecated symbols</h1></div></div></div>
 <a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <a name="idxO"></a><h3 class="title">O</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 59aed54..c48642d 100644 (file)
@@ -2,60 +2,54 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.4</title>
+<title>Index of new symbols in 0.4: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix02.html" title="Index of deprecated symbols">
 <link rel="next" href="ix04.html" title="Index of new symbols in 0.6">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix04.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxC">C</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxN">N</a>
-                      | 
-                   <a class="shortcut" href="#idxP">P</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix04.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.9"></a>Index of new symbols in 0.4</h1></div></div></div>
 <a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <a name="idxG"></a><h3 class="title">G</h3>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--root" title='The "root" property'>JsonGenerator:root</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--root" title="The “root” property">JsonGenerator:root</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 44915d0..af3a0dd 100644 (file)
@@ -2,53 +2,47 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.6</title>
+<title>Index of new symbols in 0.6: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix03.html" title="Index of new symbols in 0.4">
 <link rel="next" href="ix05.html" title="Index of new symbols in 0.8">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix05.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxA">A</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxO">O</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxO">O</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix05.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.10"></a>Index of new symbols in 0.6</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <a name="idxG"></a><h3 class="title">G</h3>
 <dt>
-<a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title='The "indent-char" property'>JsonGenerator:indent-char</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#JsonGenerator--indent-char" title="The “indent-char” property">JsonGenerator:indent-char</a>, object property in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <a name="idxO"></a><h3 class="title">O</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index b785e52..9aa076d 100644 (file)
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.8</title>
+<title>Index of new symbols in 0.8: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix04.html" title="Index of new symbols in 0.6">
 <link rel="next" href="ix06.html" title="Index of new symbols in 0.10">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix04.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix06.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxA">A</a>
-                      | 
-                   <a class="shortcut" href="#idxN">N</a>
-                      | 
-                   <a class="shortcut" href="#idxO">O</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxO">O</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix04.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix06.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.11"></a>Index of new symbols in 0.8</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">JsonArrayForeach</a>, user_function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">JsonArrayForeach</a>, user_function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
 </dt>
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
 </dt>
 <dd></dd>
 <a name="idxO"></a><h3 class="title">O</h3>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">JsonObjectForeach</a>, user_function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">JsonObjectForeach</a>, user_function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 750fe84..9fc641f 100644 (file)
@@ -2,85 +2,80 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.10</title>
+<title>Index of new symbols in 0.10: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix05.html" title="Index of new symbols in 0.8">
 <link rel="next" href="ix07.html" title="Index of new symbols in 0.12">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix05.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix07.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxB">B</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxN">N</a>
-                      | 
-                   <a class="shortcut" href="#idxS">S</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix05.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix07.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.12"></a>Index of new symbols in 0.10</h1></div></div></div>
 <a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">JsonBoxedDeserializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">JsonBoxedDeserializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">JsonBoxedSerializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">JsonBoxedSerializeFunc</a>, user_function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a>, function in <a class="link" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">Boxed Types Serialization</a>
 </dt>
 <dd></dd>
 <a name="idxG"></a><h3 class="title">G</h3>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a>, function in <a class="link" href="json-glib-GObject-Serialization.html" title="GObject Serialization">GObject Serialization</a>
 </dt>
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index aa55a06..6d2de66 100644 (file)
@@ -2,34 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.12</title>
+<title>Index of new symbols in 0.12: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix06.html" title="Index of new symbols in 0.10">
 <link rel="next" href="ix08.html" title="Index of new symbols in 0.14">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix06.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ix08.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxB">B</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxP">P</a>
-                      | 
-                   <a class="shortcut" href="#idxR">R</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxR">R</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix06.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix08.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.13"></a>Index of new symbols in 0.12</h1></div></div></div>
 <dd></dd>
 <a name="idxG"></a><h3 class="title">G</h3>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-to-stream" title="json_generator_to_stream ()">json_generator_to_stream</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+<a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
 </dt>
 <dd></dd>
 <a name="idxR"></a><h3 class="title">R</h3>
@@ -66,7 +61,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#JsonReader--root" title='The "root" property'>JsonReader:root</a>, object property in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#JsonReader--root" title="The “root” property">JsonReader:root</a>, object property in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 34f3871..9b14d6b 100644 (file)
@@ -2,80 +2,75 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.14</title>
+<title>Index of new symbols in 0.14: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="ix07.html" title="Index of new symbols in 0.12">
-<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="ix09.html" title="Index of new symbols in 0.16">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ix07.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxP">P</a>
-                      | 
-                   <a class="shortcut" href="#idxR">R</a>
-                      | 
-                   <a class="shortcut" href="#idxS">S</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxR">R</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix07.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix09.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="id-1.14"></a>Index of new symbols in 0.14</h1></div></div></div>
 <a name="idx"></a><a name="idxG"></a><h3 class="title">G</h3>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-indent" title="json_generator_get_indent ()">json_generator_get_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-indent-char" title="json_generator_get_indent_char ()">json_generator_get_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-pretty" title="json_generator_get_pretty ()">json_generator_get_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-get-root" title="json_generator_get_root ()">json_generator_get_root</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-indent" title="json_generator_set_indent ()">json_generator_set_indent</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-indent-char" title="json_generator_set_indent_char ()">json_generator_set_indent_char</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
+<a class="link" href="JsonGenerator.html#json-generator-set-pretty" title="json_generator_set_pretty ()">json_generator_set_pretty</a>, function in <a class="link" href="JsonGenerator.html" title="JsonGenerator">JsonGenerator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a>, function in <a class="link" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">JSON GVariant Integration</a>
 </dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
@@ -92,7 +87,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-compile" title="json_path_compile ()">json_path_compile</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-match" title="json_path_match ()">json_path_match</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-new" title="json_path_new ()">json_path_new</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
+<a class="link" href="JsonPath.html#json-path-query" title="json_path_query ()">json_path_query</a>, function in <a class="link" href="JsonPath.html" title="JsonPath">JsonPath</a>
 </dt>
 <dd></dd>
 <a name="idxR"></a><h3 class="title">R</h3>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
+<a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>, function in <a class="link" href="JsonReader.html" title="JsonReader">JsonReader</a>
 </dt>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-get-property" title="json_serializable_get_property ()">json_serializable_get_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-set-property" title="json_serializable_set_property ()">json_serializable_set_property</a>, function in <a class="link" href="json-glib-Serializable-Interface.html" title="Serializable Interface">Serializable Interface</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/ix09.html b/doc/reference/html/ix09.html
new file mode 100644 (file)
index 0000000..6143e9e
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 0.16: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="prev" href="ix08.html" title="Index of new symbols in 0.14">
+<link rel="next" href="ix10.html" title="Index of new symbols in 1.0">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxN">N</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix08.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix10.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.15"></a>Index of new symbols in 0.16</h1></div></div></div>
+<a name="idx"></a><a name="idxN"></a><h3 class="title">N</h3>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()">json_node_alloc</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()">json_node_init</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-array" title="json_node_init_array ()">json_node_init_array</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-boolean" title="json_node_init_boolean ()">json_node_init_boolean</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-double" title="json_node_init_double ()">json_node_init_double</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-int" title="json_node_init_int ()">json_node_init_int</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-null" title="json_node_init_null ()">json_node_init_null</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-object" title="json_node_init_object ()">json_node_init_object</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-string" title="json_node_init_string ()">json_node_init_string</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/ix10.html b/doc/reference/html/ix10.html
new file mode 100644 (file)
index 0000000..a9a12d9
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.0: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="prev" href="ix09.html" title="Index of new symbols in 0.16">
+<link rel="next" href="ix11.html" title="Index of new symbols in 1.2">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxV">V</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix09.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix11.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.16"></a>Index of new symbols in 1.0</h1></div></div></div>
+<a name="idx"></a><a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+<a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MAX-ALLOWED:CAPS" title="JSON_VERSION_MAX_ALLOWED">JSON_VERSION_MAX_ALLOWED</a>, macro in <a class="link" href="json-glib-Versioning-information.html" title="Versioning information">Versioning information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MIN-REQUIRED:CAPS" title="JSON_VERSION_MIN_REQUIRED">JSON_VERSION_MIN_REQUIRED</a>, macro in <a class="link" href="json-glib-Versioning-information.html" title="Versioning information">Versioning information</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/ix11.html b/doc/reference/html/ix11.html
new file mode 100644 (file)
index 0000000..aca9e1d
--- /dev/null
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.2: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="prev" href="ix10.html" title="Index of new symbols in 1.0">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxB">B</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxF">F</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxT">T</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="ix10.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.17"></a>Index of new symbols in 1.2</h1></div></div></div>
+<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-equal" title="json_array_equal ()">json_array_equal</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-hash" title="json_array_hash ()">json_array_hash</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-is-immutable" title="json_array_is_immutable ()">json_array_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Array.html#json-array-seal" title="json_array_seal ()">json_array_seal</a>, function in <a class="link" href="json-glib-JSON-Array.html" title="JSON Array">JSON Array</a>
+</dt>
+<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+<a class="link" href="JsonBuilder.html#JsonBuilder--immutable" title="The “immutable” property">JsonBuilder:immutable</a>, object property in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="JsonBuilder.html#json-builder-new-immutable" title="json_builder_new_immutable ()">json_builder_new_immutable</a>, function in <a class="link" href="JsonBuilder.html" title="JsonBuilder">JsonBuilder</a>
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+<a class="link" href="json-glib-Utility-API.html#json-from-string" title="json_from_string ()">json_from_string</a>, function in <a class="link" href="json-glib-Utility-API.html" title="Utility API">Utility API</a>
+</dt>
+<dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-equal" title="json_node_equal ()">json_node_equal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-hash" title="json_node_hash ()">json_node_hash</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-immutable" title="json_node_is_immutable ()">json_node_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-ref" title="json_node_ref ()">json_node_ref</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-seal" title="json_node_seal ()">json_node_seal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()">json_node_unref</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<a name="idxO"></a><h3 class="title">O</h3>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter">JsonObjectIter</a>, struct in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-equal" title="json_object_equal ()">json_object_equal</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-hash" title="json_object_hash ()">json_object_hash</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-is-immutable" title="json_object_is_immutable ()">json_object_is_immutable</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-init" title="json_object_iter_init ()">json_object_iter_init</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-next" title="json_object_iter_next ()">json_object_iter_next</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Object.html#json-object-seal" title="json_object_seal ()">json_object_seal</a>, function in <a class="link" href="json-glib-JSON-Object.html" title="JSON Object">JSON Object</a>
+</dt>
+<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
+<dt>
+<a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property">JsonParser:immutable</a>, object property in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="JsonParser.html#json-parser-new-immutable" title="json_parser_new_immutable ()">json_parser_new_immutable</a>, function in <a class="link" href="JsonParser.html" title="JsonParser">JsonParser</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-string-compare" title="json_string_compare ()">json_string_compare</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-string-equal" title="json_string_equal ()">json_string_equal</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="json-glib-JSON-Node.html#json-string-hash" title="json_string_hash ()">json_string_hash</a>, function in <a class="link" href="json-glib-JSON-Node.html" title="JSON Node">JSON Node</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="json-glib-Utility-API.html#json-to-string" title="json_to_string ()">json_to_string</a>, function in <a class="link" href="json-glib-Utility-API.html" title="Utility API">Utility API</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
index 5c5eeb5..0dbdb7c 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part IV. JSON-GLib Advanced API</title>
+<title>Part IV. JSON-GLib Advanced API: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="prev" href="JsonBuilder.html" title="JsonBuilder">
+<link rel="prev" href="json-glib-Utility-API.html" title="Utility API">
 <link rel="next" href="json-glib-GObject-Serialization.html" title="GObject Serialization">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="JsonBuilder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-GObject-Serialization.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="json-glib-Utility-API.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-GObject-Serialization.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <dt>
 <span class="refentrytitle"><a href="json-glib-JSON-GVariant-Integration.html">JSON GVariant Integration</a></span><span class="refpurpose"> — Serialize and deserialize GVariant types</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="json-glib-Versioning-information.html">Versioning information</a></span><span class="refpurpose"> — JSON-GLib version checking</span>
+</dt>
 </dl>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index a6d9d12..fe2c5dd 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part II. JSON-GLib Reference</title>
+<title>Part II. JSON-GLib Reference: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="json-glib.html" title="Part I. JSON-GLib Overview">
 <link rel="next" href="ch01.html" title="Data Types">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-glib.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ch01.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="json-glib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch01.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
@@ -55,7 +55,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/json-format-tool.html b/doc/reference/html/json-format-tool.html
new file mode 100644 (file)
index 0000000..2cf61cd
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>json-glib-format: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="tools.html" title="JSON-GLib Tools">
+<link rel="prev" href="tools.html" title="JSON-GLib Tools">
+<link rel="next" href="json-validate-tool.html" title="json-glib-validate">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="tools.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-validate-tool.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div lang="en" class="refentry">
+<a name="json-format-tool"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">json-glib-format</span></h2>
+<p>json-glib-format — JSON-GLib formatting tool</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="cmdsynopsis"><p><code class="command">json-glib-format</code>  [<code class="option">-h</code>, <code class="option">--help</code>] [<code class="option">--prettify</code>] [<code class="option">--indent-spaces</code> <em class="replaceable"><code>SPACES</code></em>]  URI  [
+       URI... 
+    ]</p></div>
+</div>
+<div class="refsect1">
+<a name="id-1.6.2.2.5"></a><h2>Description</h2>
+<p><span class="command"><strong>json-glib-format</strong></span> offers a simple command line
+interface to format JSON data. It reads a list or URIs, applies the
+spacified formatting rules on the JSON data, and outputs the formatted
+JSON to the standard output.</p>
+<p>
+The resources to operate on are specified by the <em class="replaceable"><code>URI</code></em>
+argument.
+</p>
+</div>
+<div class="refsect1">
+<a name="id-1.6.2.2.6"></a><h2>Commands</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="option">-h</code>, <code class="option">--help</code></span></p></td>
+<td><p>
+Prints help and exits.
+</p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="option">-p</code>, <code class="option">--prettify</code></span></p></td>
+<td><p>
+Prettifies the output, by adding spaces and indentation. This argument is
+useful to improve the readability of JSON data, at the expense of its size.
+</p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="option">--indent-spaces</code> <em class="replaceable"><code>SPACES</code></em></span></p></td>
+<td><p>
+Changes the number of spaces using to indent the JSON data from the default of 2.
+This argument is only considered if <code class="option">--prettify</code> is used.
+</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
index 6e0e286..1cc2f9f 100644 (file)
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Boxed Types Serialization</title>
+<title>Boxed Types Serialization: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
 <link rel="prev" href="json-glib-Serializable-Interface.html" title="Serializable Interface">
 <link rel="next" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-glib-Serializable-Interface.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-JSON-GVariant-Integration.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-Boxed-Types-Serialization.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-Boxed-Types-Serialization.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-Boxed-Types-Serialization.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-Serializable-Interface.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-JSON-GVariant-Integration.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-Boxed-Types-Serialization"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-Boxed-Types-Serialization.top_of_page"></a>Boxed Types Serialization</span></h2>
 <p>Boxed Types Serialization — Serialize and deserialize GBoxed types</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-Boxed-Types-Serialization.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          (<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">*JsonBoxedSerializeFunc</a>)           (<em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);
-<span class="returnvalue">gpointer</span>            (<a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">*JsonBoxedDeserializeFunc</a>)         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a>  (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()"><span class="type">JsonBoxedSerializeFunc</span></a> serialize_func</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a>
-                                                        (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()"><span class="type">JsonBoxedDeserializeFunc</span></a> deserialize_func</code></em>);
-
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a>            (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> *node_type</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a>          (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a>                (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);
-<span class="returnvalue">gpointer</span>            <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a>              (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-</pre>
+<div class="refsect1">
+<a name="json-glib-Boxed-Types-Serialization.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()">*JsonBoxedSerializeFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gpointer</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()">*JsonBoxedDeserializeFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" title="json_boxed_register_serialize_func ()">json_boxed_register_serialize_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" title="json_boxed_register_deserialize_func ()">json_boxed_register_deserialize_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" title="json_boxed_can_serialize ()">json_boxed_can_serialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" title="json_boxed_can_deserialize ()">json_boxed_can_deserialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()">json_boxed_serialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gpointer</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()">json_boxed_deserialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="json-glib-Boxed-Types-Serialization.description"></a><h2>Description</h2>
-<p>
-GLib's <span class="type">GBoxed</span> type is a generic wrapper for arbitrary C structures.
-</p>
-<p>
-JSON-GLib allows serialization and deserialization of a <span class="type">GBoxed</span> type
+<p>GLib's <span class="type">GBoxed</span> type is a generic wrapper for arbitrary C structures.</p>
+<p>JSON-GLib allows serialization and deserialization of a <span class="type">GBoxed</span> type
 by registering functions mapping a <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> to a specific
-<span class="type">GType</span>.
-</p>
-<p>
-When registering a <span class="type">GBoxed</span> type you should also register the
-corresponding transformation functions, e.g.:
-</p>
-<p>
-</p>
+<span class="type">GType</span>.</p>
+<p>When registering a <span class="type">GBoxed</span> type you should also register the
+corresponding transformation functions, e.g.:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,285 +163,326 @@ corresponding transformation functions, e.g.:
   </table>
 </div>
 
-<p>
-</p>
-<p>
-The serialization function will be invoked by <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()"><code class="function">json_boxed_serialize()</code></a>:
+<p></p>
+<p>The serialization function will be invoked by <a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" title="json_boxed_serialize ()"><code class="function">json_boxed_serialize()</code></a>:
 it will be passed a pointer to the C structure and it must return a
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. The deserialization function will be invoked by
-<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()"><code class="function">json_boxed_deserialize()</code></a>: it will be passed a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> for the
-declared type and it must return a newly allocated C structure.
-</p>
-<p>
-It is possible to check whether a <span class="type">GBoxed</span> type can be deserialized
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. The deserialization function will be invoked by
+<a class="link" href="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" title="json_boxed_deserialize ()"><code class="function">json_boxed_deserialize()</code></a>: it will be passed a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> for the
+declared type and it must return a newly allocated C structure.</p>
+<p>It is possible to check whether a <span class="type">GBoxed</span> type can be deserialized
 from a specific <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a>, and whether a <span class="type">GBoxed</span> can be serialized
-and to which specific <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a>.
-</p>
+and to which specific <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a>.</p>
 </div>
 <div class="refsect1">
-<a name="json-glib-Boxed-Types-Serialization.details"></a><h2>Details</h2>
+<a name="json-glib-Boxed-Types-Serialization.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="JsonBoxedSerializeFunc"></a><h3>JsonBoxedSerializeFunc ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          (*JsonBoxedSerializeFunc)           (<em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);</pre>
-<p>
-Serializes the passed <span class="type">GBoxed</span> and stores it inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonBoxedSerializeFunc"></a><h3>JsonBoxedSerializeFunc ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+<span class="c_punctuation">(</span>*JsonBoxedSerializeFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);</pre>
+<p>Serializes the passed <span class="type">GBoxed</span> and stores it inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.5.4.5.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>boxed</code></em> :</span></p></td>
-<td>a <span class="type">GBoxed</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>boxed</p></td>
+<td class="parameter_description"><p>a <span class="type">GBoxed</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="JsonBoxedDeserializeFunc"></a><h3>JsonBoxedDeserializeFunc ()</h3>
-<pre class="programlisting"><span class="returnvalue">gpointer</span>            (*JsonBoxedDeserializeFunc)         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Deserializes the contents of the passed <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> into a <span class="type">GBoxed</span>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonBoxedDeserializeFunc"></a><h3>JsonBoxedDeserializeFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">gpointer</span>
+<span class="c_punctuation">(</span>*JsonBoxedDeserializeFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Deserializes the contents of the passed <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> into a <span class="type">GBoxed</span></p>
+<div class="refsect3">
+<a name="id-1.5.4.5.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created boxed type</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.3.6"></a><h4>Returns</h4>
+<p> the newly created boxed type</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-register-serialize-func"></a><h3>json_boxed_register_serialize_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_boxed_register_serialize_func  (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()"><span class="type">JsonBoxedSerializeFunc</span></a> serialize_func</code></em>);</pre>
-<p>
-Registers a serialization function for a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
-to a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
+<a name="json-boxed-register-serialize-func"></a><h3>json_boxed_register_serialize_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_boxed_register_serialize_func (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                                    <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
+                                    <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" title="JsonBoxedSerializeFunc ()"><span class="type">JsonBoxedSerializeFunc</span></a> serialize_func</code></em>);</pre>
+<p>Registers a serialization function for a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
+
+to a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.5.4.5.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node_type</code></em> :</span></p></td>
-<td>a node type</td>
+<td class="parameter_name"><p>node_type</p></td>
+<td class="parameter_description"><p>a node type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serialize_func</code></em> :</span></p></td>
-<td>serialization function for <em class="parameter"><code>boxed_type</code></em> into
-a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
-</td>
+<td class="parameter_name"><p>serialize_func</p></td>
+<td class="parameter_description"><p>serialization function for <em class="parameter"><code>boxed_type</code></em>
+into
+a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-register-deserialize-func"></a><h3>json_boxed_register_deserialize_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_boxed_register_deserialize_func
-                                                        (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()"><span class="type">JsonBoxedDeserializeFunc</span></a> deserialize_func</code></em>);</pre>
-<p>
-Registers a deserialization function for a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
-from a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
+<a name="json-boxed-register-deserialize-func"></a><h3>json_boxed_register_deserialize_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_boxed_register_deserialize_func (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>,
+                                      <em class="parameter"><code><a class="link" href="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" title="JsonBoxedDeserializeFunc ()"><span class="type">JsonBoxedDeserializeFunc</span></a> deserialize_func</code></em>);</pre>
+<p>Registers a deserialization function for a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
+
+from a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.5.4.5.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node_type</code></em> :</span></p></td>
-<td>a node type</td>
+<td class="parameter_name"><p>node_type</p></td>
+<td class="parameter_description"><p>a node type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>deserialize_func</code></em> :</span></p></td>
-<td>deserialization function for <em class="parameter"><code>boxed_type</code></em> from
-a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
-</td>
+<td class="parameter_name"><p>deserialize_func</p></td>
+<td class="parameter_description"><p>deserialization function for <em class="parameter"><code>boxed_type</code></em>
+from
+a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-can-serialize"></a><h3>json_boxed_can_serialize ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_boxed_can_serialize            (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> *node_type</code></em>);</pre>
-<p>
-Checks whether it is possible to serialize a <span class="type">GBoxed</span> of
-type <em class="parameter"><code>gboxed_type</code></em> into a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. The type of the
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> is placed inside <em class="parameter"><code>node_type</code></em> if the function
-returns <code class="literal">TRUE</code> and it's undefined otherwise.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-boxed-can-serialize"></a><h3>json_boxed_can_serialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_boxed_can_serialize (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                          <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> *node_type</code></em>);</pre>
+<p>Checks whether it is possible to serialize a <span class="type">GBoxed</span> of
+type <em class="parameter"><code>gboxed_type</code></em>
+ into a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. The type of the
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> is placed inside <em class="parameter"><code>node_type</code></em>
+ if the function
+returns <code class="literal">TRUE</code> and it's undefined otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.4.5.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node_type</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> type to which the boxed type can be
-serialized into. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the type can be serialized,
-and <code class="literal">FALSE</code> otherwise.</td>
+<td class="parameter_name"><p>node_type</p></td>
+<td class="parameter_description"><p> the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> type to which the boxed type can be
+serialized into. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.6.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the type can be serialized,
+and <code class="literal">FALSE</code> otherwise.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-can-deserialize"></a><h3>json_boxed_can_deserialize ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_boxed_can_deserialize          (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>);</pre>
-<p>
-Checks whether it is possible to deserialize a <span class="type">GBoxed</span> of
-type <em class="parameter"><code>gboxed_type</code></em> from a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
+<a name="json-boxed-can-deserialize"></a><h3>json_boxed_can_deserialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_boxed_can_deserialize (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                            <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> node_type</code></em>);</pre>
+<p>Checks whether it is possible to deserialize a <span class="type">GBoxed</span> of
+type <em class="parameter"><code>gboxed_type</code></em>
+ from a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <em class="parameter"><code>node_type</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.5.4.5.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node_type</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> type</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the type can be deserialized, <code class="literal">FALSE</code> otherwise</td>
+<td class="parameter_name"><p>node_type</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.7.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the type can be deserialized, <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-serialize"></a><h3>json_boxed_serialize ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_boxed_serialize                (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);</pre>
-<p>
-Serializes <em class="parameter"><code>boxed</code></em>, a pointer to a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>,
-into a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-boxed-serialize"></a><h3>json_boxed_serialize ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_boxed_serialize (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                      <em class="parameter"><code><span class="type">gconstpointer</span> boxed</code></em>);</pre>
+<p>Serializes <em class="parameter"><code>boxed</code></em>
+, a pointer to a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
+,
+into a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.5.4.5.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>boxed</code></em> :</span></p></td>
-<td>a pointer to a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
-</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> with the serialization of the
-boxed type, or <code class="literal">NULL</code> if serialization either failed or was not possible. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>boxed</p></td>
+<td class="parameter_description"><p>a pointer to a <span class="type">GBoxed</span> of type <em class="parameter"><code>gboxed_type</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.8.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> with the serialization of the
+boxed type, or <code class="literal">NULL</code> if serialization either failed or was not possible. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-boxed-deserialize"></a><h3>json_boxed_deserialize ()</h3>
-<pre class="programlisting"><span class="returnvalue">gpointer</span>            json_boxed_deserialize              (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Deserializes <em class="parameter"><code>node</code></em> into a <span class="type">GBoxed</span> of <em class="parameter"><code>gboxed_type</code></em>
+<a name="json-boxed-deserialize"></a><h3>json_boxed_deserialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">gpointer</span>
+json_boxed_deserialize (<em class="parameter"><code><span class="type">GType</span> gboxed_type</code></em>,
+                        <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Deserializes <em class="parameter"><code>node</code></em>
+ into a <span class="type">GBoxed</span> of <em class="parameter"><code>gboxed_type</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.5.4.5.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gboxed_type</code></em> :</span></p></td>
-<td>a boxed type</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>gboxed_type</p></td>
+<td class="parameter_description"><p>a boxed type</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly allocated <span class="type">GBoxed</span>. Use
-<code class="function">g_boxed_free()</code> to release the resources allocated by this
-function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.5.9.6"></a><h4>Returns</h4>
+<p> the newly allocated <span class="type">GBoxed</span>. Use
+<code class="function">g_boxed_free()</code> to release the resources allocated by this
+function. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 </div>
+<div class="refsect1">
+<a name="json-glib-Boxed-Types-Serialization.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index a4d0f68..9dc7303 100644 (file)
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GObject Serialization</title>
+<title>GObject Serialization: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
 <link rel="prev" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
 <link rel="next" href="json-glib-Serializable-Interface.html" title="Serializable Interface">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-advanced.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-Serializable-Interface.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-GObject-Serialization.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-GObject-Serialization.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-GObject-Serialization.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-advanced.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-Serializable-Interface.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-GObject-Serialization"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-GObject-Serialization.top_of_page"></a>GObject Serialization</span></h2>
 <p>GObject Serialization — Serialize and deserialize GObjects</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-GObject-Serialization.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a>              (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>);
-<span class="returnvalue">GObject</span> *           <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a>            (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">gchar</span> *             <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a>                (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);
-<span class="returnvalue">GObject</span> *           <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a>              (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-
-<span class="returnvalue">GObject</span> *           <a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a>              (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">gchar</span> *             <a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a>              (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);
-</pre>
+<div class="refsect1">
+<a name="json-glib-GObject-Serialization.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-serialize" title="json_gobject_serialize ()">json_gobject_serialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GObject</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-deserialize" title="json_gobject_deserialize ()">json_gobject_deserialize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()">json_gobject_to_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GObject</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()">json_gobject_from_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GObject</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()">json_construct_gobject</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()">json_serialize_gobject</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="json-glib-GObject-Serialization.description"></a><h2>Description</h2>
-<p>
-JSON-GLib provides API for serializing and deserializing <span class="type">GObject</span>s
-to and from JSON data streams.
-</p>
-<p>
-Simple <span class="type">GObject</span> classes can be (de)serialized into JSON objects, if the
+<p>JSON-GLib provides API for serializing and deserializing <span class="type">GObject</span>
+instances to and from JSON data streams.</p>
+<p>Simple <span class="type">GObject</span> classes can be (de)serialized into JSON objects, if the
 properties have compatible types with the native JSON types (integers,
 booleans, strings, string vectors). If the class to be (de)serialized has
 complex data types for properties (like boxed types or other objects)
-then the class should implement the provided <span class="type">JsonSerializable</span> interface
-and its virtual functions.
-</p>
+then the class should implement the provided <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> interface
+and its virtual functions.</p>
 </div>
 <div class="refsect1">
-<a name="json-glib-GObject-Serialization.details"></a><h2>Details</h2>
+<a name="json-glib-GObject-Serialization.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="json-gobject-serialize"></a><h3>json_gobject_serialize ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_gobject_serialize              (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>);</pre>
-<p>
-Creates a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> representing the passed <span class="type">GObject</span>
+<a name="json-gobject-serialize"></a><h3>json_gobject_serialize ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_gobject_serialize (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>);</pre>
+<p>Creates a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> representing the passed <span class="type">GObject</span>
 instance. Each member of the returned JSON object will
-map to a property of the <span class="type">GObject</span>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+map to a property of the <span class="type">GObject</span></p>
+<div class="refsect3">
+<a name="id-1.5.2.5.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>gobject</code></em> :</span></p></td>
-<td>a <span class="type">GObject</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> to free
-the resources allocated by this function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>gobject</p></td>
+<td class="parameter_description"><p>a <span class="type">GObject</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.2.5.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>
+of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> to free
+the resources allocated by this function. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gobject-deserialize"></a><h3>json_gobject_deserialize ()</h3>
-<pre class="programlisting"><span class="returnvalue">GObject</span> *           json_gobject_deserialize            (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Creates a new <span class="type">GObject</span> of type <em class="parameter"><code>gtype</code></em>, and constructs it
-using the members of the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-gobject-deserialize"></a><h3>json_gobject_deserialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">GObject</span> *
+json_gobject_deserialize (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
+                          <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Creates a new <span class="type">GObject</span> of type <em class="parameter"><code>gtype</code></em>
+, and constructs it
+using the members of the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p>
+<div class="refsect3">
+<a name="id-1.5.2.5.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gtype</code></em> :</span></p></td>
-<td>the type of the <span class="type">GObject</span> to create</td>
+<td class="parameter_name"><p>gtype</p></td>
+<td class="parameter_description"><p>the type of the <span class="type">GObject</span> to create</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a> describing the
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a> describing the
 instance of type <em class="parameter"><code>gtype</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The newly created <span class="type">GObject</span>
-instance. Use <code class="function">g_object_unref()</code> to free the resources
-allocated by this function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.2.5.3.6"></a><h4>Returns</h4>
+<p> The newly created <span class="type">GObject</span>
+instance. Use <code class="function">g_object_unref()</code> to free the resources
+allocated by this function. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gobject-to-data"></a><h3>json_gobject_to_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> *             json_gobject_to_data                (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
-<p>
-Serializes a <span class="type">GObject</span> into a JSON data stream, iterating recursively
-over each property.
-</p>
-<p>
-If <em class="parameter"><code>gobject</code></em> implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a> interface, it will
+<a name="json-gobject-to-data"></a><h3>json_gobject_to_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *
+json_gobject_to_data (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
+                      <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
+<p>Serializes a <span class="type">GObject</span> into a JSON data stream, iterating recursively
+over each property.</p>
+<p>If <em class="parameter"><code>gobject</code></em>
+ implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a> interface, it will
 be asked to serialize all its properties; otherwise, the default
 implementation will be use to translate the compatible types into
-JSON native types.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+JSON native types.</p>
+<div class="refsect3">
+<a name="id-1.5.2.5.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gobject</code></em> :</span></p></td>
-<td>a <span class="type">GObject</span>
-</td>
+<td class="parameter_name"><p>gobject</p></td>
+<td class="parameter_description"><p>a <span class="type">GObject</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>return value for the length of the buffer, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a JSON data stream representing the passed <span class="type">GObject</span>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p> return value for the length of the buffer, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.2.5.4.7"></a><h4>Returns</h4>
+<p> a JSON data stream representing the passed <span class="type">GObject</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gobject-from-data"></a><h3>json_gobject_from_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">GObject</span> *           json_gobject_from_data              (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Deserializes a JSON data stream and creates the corresponding
-<span class="type">GObject</span> class. If <em class="parameter"><code>gtype</code></em> implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a>
+<a name="json-gobject-from-data"></a><h3>json_gobject_from_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">GObject</span> *
+json_gobject_from_data (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
+                        <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
+                        <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Deserializes a JSON data stream and creates the corresponding
+<span class="type">GObject</span> class. If <em class="parameter"><code>gtype</code></em>
+ implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a>
 interface, it will be asked to deserialize all the JSON members
 into the respective properties; otherwise, the default implementation
-will be used to translate the compatible JSON native types.
-</p>
-<p>
-Note: the JSON data stream must be an object declaration.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+will be used to translate the compatible JSON native types.</p>
+<p>Note: the JSON data stream must be an object declaration.</p>
+<div class="refsect3">
+<a name="id-1.5.2.5.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gtype</code></em> :</span></p></td>
-<td>the <span class="type">GType</span> of object to construct</td>
+<td class="parameter_name"><p>gtype</p></td>
+<td class="parameter_description"><p>the <span class="type">GType</span> of object to construct</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a JSON data stream</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a JSON data stream</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>length of the data stream, or -1 if it is NUL-terminated</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>length of the data stream, or -1 if it is NUL-terminated</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GObject</span> or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.2.5.5.7"></a><h4>Returns</h4>
+<p> a <span class="type">GObject</span> or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-construct-gobject"></a><h3>json_construct_gobject ()</h3>
-<pre class="programlisting"><span class="returnvalue">GObject</span> *           json_construct_gobject              (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> length</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>
-<p><code class="literal">json_construct_gobject</code> has been deprecated since version 0.10 and should not be used in newly-written code. Use <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()"><code class="function">json_gobject_from_data()</code></a> instead</p>
+<a name="json-construct-gobject"></a><h3>json_construct_gobject ()</h3>
+<pre class="programlisting"><span class="returnvalue">GObject</span> *
+json_construct_gobject (<em class="parameter"><code><span class="type">GType</span> gtype</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
+                        <em class="parameter"><code><span class="type">gsize</span> length</code></em>,
+                        <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">json_construct_gobject</code> has been deprecated since version 0.10 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-from-data" title="json_gobject_from_data ()"><code class="function">json_gobject_from_data()</code></a> instead</p>
 </div>
-<p>
-Deserializes a JSON data stream and creates the corresponding
-<span class="type">GObject</span> class. If <em class="parameter"><code>gtype</code></em> implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a>
+<p>Deserializes a JSON data stream and creates the corresponding
+<span class="type">GObject</span> class. If <em class="parameter"><code>gtype</code></em>
+ implements the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a>
 interface, it will be asked to deserialize all the JSON members
 into the respective properties; otherwise, the default implementation
-will be used to translate the compatible JSON native types.
-</p>
-<p>
-Note: the JSON data stream must be an object declaration.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+will be used to translate the compatible JSON native types.</p>
+<p>Note: the JSON data stream must be an object declaration.</p>
+<div class="refsect3">
+<a name="id-1.5.2.5.6.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gtype</code></em> :</span></p></td>
-<td>the <span class="type">GType</span> of object to construct</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a JSON data stream</td>
+<td class="parameter_name"><p>gtype</p></td>
+<td class="parameter_description"><p>the <span class="type">GType</span> of object to construct</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>length of the data stream</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a JSON data stream</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>length of the data stream</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GObject</span> or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.4</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.2.5.6.9"></a><h4>Returns</h4>
+<p> a <span class="type">GObject</span> or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-serialize-gobject"></a><h3>json_serialize_gobject ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> *             json_serialize_gobject              (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>
-<p><code class="literal">json_serialize_gobject</code> has been deprecated since version 0.10 and should not be used in newly-written code. Use <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()"><code class="function">json_gobject_to_data()</code></a> instead</p>
+<a name="json-serialize-gobject"></a><h3>json_serialize_gobject ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *
+json_serialize_gobject (<em class="parameter"><code><span class="type">GObject</span> *gobject</code></em>,
+                        <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">json_serialize_gobject</code> has been deprecated since version 0.10 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="json-glib-GObject-Serialization.html#json-gobject-to-data" title="json_gobject_to_data ()"><code class="function">json_gobject_to_data()</code></a> instead</p>
 </div>
-<p>
-Serializes a <span class="type">GObject</span> into a JSON data stream. If <em class="parameter"><code>gobject</code></em> implements
+<p>Serializes a <span class="type">GObject</span> into a JSON data stream. If <em class="parameter"><code>gobject</code></em>
+ implements
 the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface"><span class="type">JsonSerializableIface</span></a> interface, it will be asked to serizalize all
 its properties; otherwise, the default implementation will be use to
-translate the compatible types into JSON native types.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+translate the compatible types into JSON native types.</p>
+<div class="refsect3">
+<a name="id-1.5.2.5.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>gobject</code></em> :</span></p></td>
-<td>a <span class="type">GObject</span>
-</td>
+<td class="parameter_name"><p>gobject</p></td>
+<td class="parameter_description"><p>a <span class="type">GObject</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>return value for the length of the buffer, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a JSON data stream representing the passed <span class="type">GObject</span>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p> return value for the length of the buffer, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.5.2.5.7.7"></a><h4>Returns</h4>
+<p> a JSON data stream representing the passed <span class="type">GObject</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-GObject-Serialization.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 672d0ee..aa43f22 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JSON Array</title>
+<title>JSON Array: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch01.html" title="Data Types">
 <link rel="prev" href="json-glib-JSON-Node.html" title="JSON Node">
 <link rel="next" href="json-glib-JSON-Object.html" title="JSON Object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-glib-JSON-Node.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-JSON-Object.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-JSON-Array.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-JSON-Array.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Array.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Array.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-JSON-Node.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-JSON-Object.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-JSON-Array"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-JSON-Array.top_of_page"></a>JSON Array</span></h2>
 <p>JSON Array — a JSON array representation</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-JSON-Array.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray">JsonArray</a>;
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Array.html#json-array-new" title="json_array_new ()">json_array_new</a>                      (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Array.html#json-array-sized-new" title="json_array_sized_new ()">json_array_sized_new</a>                (<em class="parameter"><code><span class="type">guint</span> n_elements</code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()">json_array_ref</a>                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()">json_array_unref</a>                    (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()">json_array_add_element</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()">json_array_get_element</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">GList</span> *             <a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()">json_array_get_elements</a>             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<span class="returnvalue">guint</span>               <a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()">json_array_get_length</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-remove-element" title="json_array_remove_element ()">json_array_remove_element</a>           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">*JsonArrayForeach</a>)                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *element_node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()"><span class="type">JsonArrayForeach</span></a> func</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a>        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a>        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a>      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a>      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);
-<span class="returnvalue">gdouble</span>             <a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<span class="returnvalue">gint64</span>              <a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a>         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a>         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
+<div class="refsect1">
+<a name="json-glib-JSON-Array.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-new" title="json_array_new ()">json_array_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-sized-new" title="json_array_sized_new ()">json_array_sized_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()">json_array_ref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()">json_array_unref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-seal" title="json_array_seal ()">json_array_seal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-is-immutable" title="json_array_is_immutable ()">json_array_is_immutable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-hash" title="json_array_hash ()">json_array_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-equal" title="json_array_equal ()">json_array_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()">json_array_add_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()">json_array_get_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-dup-element" title="json_array_dup_element ()">json_array_dup_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GList</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()">json_array_get_elements</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()">json_array_get_length</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-remove-element" title="json_array_remove_element ()">json_array_remove_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()">*JsonArrayForeach</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()">json_array_foreach_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-array-element" title="json_array_add_array_element ()">json_array_add_array_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-array-element" title="json_array_get_array_element ()">json_array_get_array_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-boolean-element" title="json_array_add_boolean_element ()">json_array_add_boolean_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-boolean-element" title="json_array_get_boolean_element ()">json_array_get_boolean_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-double-element" title="json_array_add_double_element ()">json_array_add_double_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-double-element" title="json_array_get_double_element ()">json_array_get_double_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-int-element" title="json_array_add_int_element ()">json_array_add_int_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint64</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-int-element" title="json_array_get_int_element ()">json_array_get_int_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-null-element" title="json_array_add_null_element ()">json_array_add_null_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-null-element" title="json_array_get_null_element ()">json_array_get_null_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-object-element" title="json_array_add_object_element ()">json_array_add_object_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-object-element" title="json_array_get_object_element ()">json_array_get_object_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-add-string-element" title="json_array_add_string_element ()">json_array_add_string_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Array.html#json-array-get-string-element" title="json_array_get_string_element ()">json_array_get_string_element</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="JsonArray"></a><div class="refsect1">
+<a name="json-glib-JSON-Array.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="json-glib-JSON-Array.html#JsonArray-struct" title="JsonArray">JsonArray</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Array.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GBoxed
+    <span class="lineart">╰──</span> JsonArray
 </pre>
 </div>
 <div class="refsect1">
 <a name="json-glib-JSON-Array.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> is the representation of the array type inside JSON. It contains
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s, which may contain fundamental types, other arrays or
-objects.
-</p>
-<p>
-Since arrays can be expensive, they are reference counted. You can control
-the lifetime of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> using <a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()"><code class="function">json_array_ref()</code></a> and <a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()"><code class="function">json_array_unref()</code></a>.
-</p>
-<p>
-To append an element, use <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>.
-To extract an element at a given index, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>.
-To retrieve the entire array in list form, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()"><code class="function">json_array_get_elements()</code></a>.
-To retrieve the length of the array, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()"><code class="function">json_array_get_length()</code></a>.
-</p>
+<p><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> is the representation of the array type inside JSON. It contains
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> elements, which may contain fundamental types, other arrays or
+objects.</p>
+<p>Since arrays can be expensive, they are reference counted. You can control
+the lifetime of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> using <a class="link" href="json-glib-JSON-Array.html#json-array-ref" title="json_array_ref ()"><code class="function">json_array_ref()</code></a> and <a class="link" href="json-glib-JSON-Array.html#json-array-unref" title="json_array_unref ()"><code class="function">json_array_unref()</code></a>.</p>
+<p>To append an element, use <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>.
+To extract an element at a given index, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>.
+To retrieve the entire array in list form, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-elements" title="json_array_get_elements ()"><code class="function">json_array_get_elements()</code></a>.
+To retrieve the length of the array, use <a class="link" href="json-glib-JSON-Array.html#json-array-get-length" title="json_array_get_length ()"><code class="function">json_array_get_length()</code></a>.</p>
 </div>
 <div class="refsect1">
-<a name="json-glib-JSON-Array.details"></a><h2>Details</h2>
+<a name="json-glib-JSON-Array.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="JsonArray"></a><h3>JsonArray</h3>
-<pre class="programlisting">typedef struct _JsonArray JsonArray;</pre>
-<p>
-A JSON array type. The contents of the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> structure are private
-and should only be accessed by the provided API
-</p>
+<a name="json-array-new"></a><h3>json_array_new ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_array_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>.</p>
+<p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-new"></a><h3>json_array_new ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_array_new                      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-sized-new"></a><h3>json_array_sized_new ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_array_sized_new (<em class="parameter"><code><span class="type">guint</span> n_elements</code></em>);</pre>
+<p>Creates a new <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> with <em class="parameter"><code>n_elements</code></em>
+ slots already allocated.</p>
+<p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>n_elements</p></td>
+<td class="parameter_description"><p>number of slots to pre-allocate</p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.3.7"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-sized-new"></a><h3>json_array_sized_new ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_array_sized_new                (<em class="parameter"><code><span class="type">guint</span> n_elements</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> with <em class="parameter"><code>n_elements</code></em> slots already allocated.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-ref"></a><h3>json_array_ref ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_array_ref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Increase by one the reference count of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_elements</code></em> :</span></p></td>
-<td>number of slots to pre-allocate</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.4.6"></a><h4>Returns</h4>
+<p> the passed <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>, with the reference count
+increased by one. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-ref"></a><h3>json_array_ref ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_array_ref                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Increase by one the reference count of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-unref"></a><h3>json_array_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_unref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Decreases by one the reference count of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. If the
+reference count reaches zero, the array is destroyed and all
+its allocated resources are freed.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the passed <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>, with the reference count
-increased by one.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-unref"></a><h3>json_array_unref ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_unref                    (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Decreases by one the reference count of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. If the
-reference count reaches zero, the array is destroyed and all
-its allocated resources are freed.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-seal"></a><h3>json_array_seal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_seal (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Seals the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>, making it immutable to further changes. This will
+recursively seal all elements in the array too.</p>
+<p>If the <em class="parameter"><code>array</code></em>
+ is already immutable, this is a no-op.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-element"></a><h3>json_array_add_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_element              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Appends <em class="parameter"><code>node</code></em> inside <em class="parameter"><code>array</code></em>. The array will take ownership of the
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-is-immutable"></a><h3>json_array_is_immutable ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_array_is_immutable (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Check whether the given <em class="parameter"><code>array</code></em>
+ has been marked as immutable by calling
+<a class="link" href="json-glib-JSON-Array.html#json-array-seal" title="json_array_seal ()"><code class="function">json_array_seal()</code></a> on it.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.7.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>array</code></em>
+is immutable</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-element"></a><h3>json_array_get_element ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_array_get_element              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the value of the element at <em class="parameter"><code>index_</code></em>
-inside a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>.
+<a name="json-array-hash"></a><h3>json_array_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_array_hash (<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
+<p>Calculate a hash value for the given <em class="parameter"><code>key</code></em>
+ (a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>).</p>
+<p>The hash is calculated over the array and all its elements, recursively. If
+the array is immutable, this is a fast operation; otherwise, it scales
+proportionally with the length of the array.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.8.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> a JSON array to hash. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonArray]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.8.7"></a><h4>Returns</h4>
+<p> hash value for <em class="parameter"><code>key</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-array-equal"></a><h3>json_array_equal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_array_equal (<em class="parameter"><code><span class="type">gconstpointer</span> a</code></em>,
+                  <em class="parameter"><code><span class="type">gconstpointer</span> b</code></em>);</pre>
+<p>Check whether <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ are equal <a href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArrays</span></a>, meaning they have the same
+number of elements, and the values of elements in corresponding positions
+are equal.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p> a JSON array. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonArray]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> at the requested index. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p> another JSON array. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonArray]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.9.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if <em class="parameter"><code>a</code></em>
+and <em class="parameter"><code>b</code></em>
+are equal; <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-dup-element"></a><h3>json_array_dup_element ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_array_dup_element              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Retrieves a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the value of the
-element at <em class="parameter"><code>index_</code></em> inside a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-add-element"></a><h3>json_array_add_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                        <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Appends <em class="parameter"><code>node</code></em>
+ inside <em class="parameter"><code>array</code></em>
+. The array will take ownership of the
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> at the requested
-index. Use <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.6</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-elements"></a><h3>json_array_get_elements ()</h3>
-<pre class="programlisting"><span class="returnvalue">GList</span> *             json_array_get_elements             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Gets the elements of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> as a list of <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-get-element"></a><h3>json_array_get_element ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_array_get_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                        <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the value of the element at <em class="parameter"><code>index_</code></em>
+
+inside a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GList</span>
-containing the elements of the array. The contents of the list are
-owned by the array and should never be modified or freed. Use
-<code class="function">g_list_free()</code> on the returned list when done using it. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> JsonNode][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.11.6"></a><h4>Returns</h4>
+<p> a pointer to the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> at the requested index. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-length"></a><h3>json_array_get_length ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>               json_array_get_length               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Retrieves the length of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-dup-element"></a><h3>json_array_dup_element ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_array_dup_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                        <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Retrieves a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the value of the
+element at <em class="parameter"><code>index_</code></em>
+ inside a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the length of the array</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.12.6"></a><h4>Returns</h4>
+<p> a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> at the requested
+index. Use <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-0.6">0.6</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-array-remove-element"></a><h3>json_array_remove_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_remove_element           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Removes the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> inside <em class="parameter"><code>array</code></em> at <em class="parameter"><code>index_</code></em> freeing its allocated
-resources.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-get-elements"></a><h3>json_array_get_elements ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *
+json_array_get_elements (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Gets the elements of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> as a list of <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> instances.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.13.6"></a><h4>Returns</h4>
+<p> a <span class="type">GList</span>
+containing the elements of the array. The contents of the list are
+owned by the array and should never be modified or freed. Use
+<code class="function">g_list_free()</code> on the returned list when done using it. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> JsonNode][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-array-get-length"></a><h3>json_array_get_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_array_get_length (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Retrieves the length of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.14.6"></a><h4>Returns</h4>
+<p> the length of the array</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-array-remove-element"></a><h3>json_array_remove_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_remove_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                           <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Removes the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> inside <em class="parameter"><code>array</code></em>
+ at <em class="parameter"><code>index_</code></em>
+ freeing its allocated
+resources.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the position of the element to be removed</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the position of the element to be removed</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonArrayForeach"></a><h3>JsonArrayForeach ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*JsonArrayForeach)                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *element_node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
-<p>
-The function to be passed to <a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()"><code class="function">json_array_foreach_element()</code></a>. You
-should not add or remove elements to and from <em class="parameter"><code>array</code></em> within
-this function. It is safe to change the value of <em class="parameter"><code>element_node</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonArrayForeach"></a><h3>JsonArrayForeach ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*JsonArrayForeach<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                     <em class="parameter"><code><span class="type">guint</span> index_</code></em>,
+                     <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *element_node</code></em>,
+                     <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>The function to be passed to <a class="link" href="json-glib-JSON-Array.html#json-array-foreach-element" title="json_array_foreach_element ()"><code class="function">json_array_foreach_element()</code></a>. You
+should not add or remove elements to and from <em class="parameter"><code>array</code></em>
+ within
+this function. It is safe to change the value of <em class="parameter"><code>element_node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>the iterated <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>the iterated <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>element_node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the value at <em class="parameter"><code>index_</code></em>
-</td>
+<td class="parameter_name"><p>element_node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the value at <em class="parameter"><code>index_</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the function</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>data passed to the function</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-foreach-element"></a><h3>json_array_foreach_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_foreach_element          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()"><span class="type">JsonArrayForeach</span></a> func</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
-<p>
-Iterates over all elements of <em class="parameter"><code>array</code></em> and calls <em class="parameter"><code>func</code></em> on
-each one of them.
-</p>
-<p>
-It is safe to change the value of a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of the <em class="parameter"><code>array</code></em>
-from within the iterator <em class="parameter"><code>func</code></em>, but it is not safe to add or
-remove elements from the <em class="parameter"><code>array</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-foreach-element"></a><h3>json_array_foreach_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_foreach_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                            <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArrayForeach" title="JsonArrayForeach ()"><span class="type">JsonArrayForeach</span></a> func</code></em>,
+                            <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
+<p>Iterates over all elements of <em class="parameter"><code>array</code></em>
+ and calls <em class="parameter"><code>func</code></em>
+ on
+each one of them.</p>
+<p>It is safe to change the value of a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of the <em class="parameter"><code>array</code></em>
+
+from within the iterator <em class="parameter"><code>func</code></em>
+, but it is not safe to add or
+remove elements from the <em class="parameter"><code>array</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.17.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function to be called on each element. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p> the function to be called on each element. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data to be passed to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p> data to be passed to the function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-array-element"></a><h3>json_array_add_array_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_array_element        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);</pre>
-<p>
-Conveniently adds an array into <em class="parameter"><code>array</code></em>. The <em class="parameter"><code>array</code></em> takes ownership
-of the newly added <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()"><code class="function">json_node_take_array()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-add-array-element"></a><h3>json_array_add_array_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_array_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                              <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);</pre>
+<p>Conveniently adds an array into <em class="parameter"><code>array</code></em>
+. The <em class="parameter"><code>array</code></em>
+ takes ownership
+of the newly added <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()"><code class="function">json_node_take_array()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.18.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-array-element"></a><h3>json_array_get_array_element ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_array_get_array_element        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the array from the element at <em class="parameter"><code>index_</code></em>
+<a name="json-array-get-array-element"></a><h3>json_array_get_array_element ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_array_get_array_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                              <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the array from the element at <em class="parameter"><code>index_</code></em>
+
 inside <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()"><code class="function">json_node_get_array()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()"><code class="function">json_node_get_array()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.19.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the array. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.19.7"></a><h4>Returns</h4>
+<p> the array. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-boolean-element"></a><h3>json_array_add_boolean_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_boolean_element      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
-<p>
-Conveniently adds a boolean <em class="parameter"><code>value</code></em> into <em class="parameter"><code>array</code></em>
+<a name="json-array-add-boolean-element"></a><h3>json_array_add_boolean_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_boolean_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                                <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
+<p>Conveniently adds a boolean <em class="parameter"><code>value</code></em>
+ into <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()"><code class="function">json_node_set_boolean()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()"><code class="function">json_node_set_boolean()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.20.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a boolean value</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a boolean value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-boolean-element"></a><h3>json_array_get_boolean_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_array_get_boolean_element      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the boolean value of the element at <em class="parameter"><code>index_</code></em>
+<a name="json-array-get-boolean-element"></a><h3>json_array_get_boolean_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_array_get_boolean_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                                <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the boolean value of the element at <em class="parameter"><code>index_</code></em>
+
 inside <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()"><code class="function">json_node_get_boolean()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()"><code class="function">json_node_get_boolean()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.21.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the integer value</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.21.7"></a><h4>Returns</h4>
+<p> the integer value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-double-element"></a><h3>json_array_add_double_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_double_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
-<p>
-Conveniently adds a floating point <em class="parameter"><code>value</code></em> into <em class="parameter"><code>array</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()"><code class="function">json_node_set_double()</code></a>
+<a name="json-array-add-double-element"></a><h3>json_array_add_double_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_double_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
+<p>Conveniently adds a floating point <em class="parameter"><code>value</code></em>
+ into <em class="parameter"><code>array</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()"><code class="function">json_node_set_double()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.22.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a floating point value</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a floating point value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-double-element"></a><h3>json_array_get_double_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">gdouble</span>             json_array_get_double_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the floating point value of the element at
-<em class="parameter"><code>index_</code></em> inside <em class="parameter"><code>array</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()"><code class="function">json_node_get_double()</code></a>
+<a name="json-array-get-double-element"></a><h3>json_array_get_double_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+json_array_get_double_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the floating point value of the element at
+<em class="parameter"><code>index_</code></em>
+ inside <em class="parameter"><code>array</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()"><code class="function">json_node_get_double()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.23.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the floating point value</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.23.7"></a><h4>Returns</h4>
+<p> the floating point value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-int-element"></a><h3>json_array_add_int_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_int_element          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-Conveniently adds an integer <em class="parameter"><code>value</code></em> into <em class="parameter"><code>array</code></em>
+<a name="json-array-add-int-element"></a><h3>json_array_add_int_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_int_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                            <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>Conveniently adds an integer <em class="parameter"><code>value</code></em>
+ into <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()"><code class="function">json_node_set_int()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()"><code class="function">json_node_set_int()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.24.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>an integer value</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>an integer value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-int-element"></a><h3>json_array_get_int_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint64</span>              json_array_get_int_element          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the integer value of the element at <em class="parameter"><code>index_</code></em>
+<a name="json-array-get-int-element"></a><h3>json_array_get_int_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>
+json_array_get_int_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                            <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the integer value of the element at <em class="parameter"><code>index_</code></em>
+
 inside <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()"><code class="function">json_node_get_int()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()"><code class="function">json_node_get_int()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.25.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the integer value</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.25.7"></a><h4>Returns</h4>
+<p> the integer value</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-null-element"></a><h3>json_array_add_null_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_null_element         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Conveniently adds a null element into <em class="parameter"><code>array</code></em>
+<a name="json-array-add-null-element"></a><h3>json_array_add_null_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_null_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Conveniently adds a null element into <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.26.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-null-element"></a><h3>json_array_get_null_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_array_get_null_element         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves whether the element at <em class="parameter"><code>index_</code></em> is set to null
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()"><code class="function">JSON_NODE_TYPE()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-get-null-element"></a><h3>json_array_get_null_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_array_get_null_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                             <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves whether the element at <em class="parameter"><code>index_</code></em>
+ is set to null</p>
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()"><code class="function">JSON_NODE_TYPE()</code></a>, <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.27.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the element is null</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.27.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the element is null</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-object-element"></a><h3>json_array_add_object_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_object_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);</pre>
-<p>
-Conveniently adds an object into <em class="parameter"><code>array</code></em>. The <em class="parameter"><code>array</code></em> takes ownership
-of the newly added <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()"><code class="function">json_node_take_object()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-array-add-object-element"></a><h3>json_array_add_object_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_object_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);</pre>
+<p>Conveniently adds an object into <em class="parameter"><code>array</code></em>
+. The <em class="parameter"><code>array</code></em>
+ takes ownership
+of the newly added <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p>
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()"><code class="function">json_node_take_object()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.28.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-object-element"></a><h3>json_array_get_object_element ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_array_get_object_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the object from the element at <em class="parameter"><code>index_</code></em>
+<a name="json-array-get-object-element"></a><h3>json_array_get_object_element ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_array_get_object_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the object from the element at <em class="parameter"><code>index_</code></em>
+
 inside <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()"><code class="function">json_node_get_object()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()"><code class="function">json_node_get_object()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.29.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the object. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.29.7"></a><h4>Returns</h4>
+<p> the object. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-add-string-element"></a><h3>json_array_add_string_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_array_add_string_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
-<p>
-Conveniently adds a string <em class="parameter"><code>value</code></em> into <em class="parameter"><code>array</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()"><code class="function">json_node_set_string()</code></a>
+<a name="json-array-add-string-element"></a><h3>json_array_add_string_element ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_array_add_string_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
+<p>Conveniently adds a string <em class="parameter"><code>value</code></em>
+ into <em class="parameter"><code>array</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-add-element" title="json_array_add_element ()"><code class="function">json_array_add_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()"><code class="function">json_node_set_string()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.30.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a string value</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a string value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-array-get-string-element"></a><h3>json_array_get_string_element ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_array_get_string_element       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
-<p>
-Conveniently retrieves the string value of the element at <em class="parameter"><code>index_</code></em>
+<a name="json-array-get-string-element"></a><h3>json_array_get_string_element ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_array_get_string_element (<em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>,
+                               <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
+<p>Conveniently retrieves the string value of the element at <em class="parameter"><code>index_</code></em>
+
 inside <em class="parameter"><code>array</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()"><code class="function">json_node_get_string()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Array.html#json-array-get-element" title="json_array_get_element ()"><code class="function">json_array_get_element()</code></a>, <a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()"><code class="function">json_node_get_string()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
-<td>the index of the element to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the string value; the returned string is owned by
-the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> and should not be modified or freed</td>
+<td class="parameter_name"><p>index_</p></td>
+<td class="parameter_description"><p>the index of the element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.31.7"></a><h4>Returns</h4>
+<p> the string value; the returned string is owned by
+the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> and should not be modified or freed</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Array.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonArray-struct"></a><h3>JsonArray</h3>
+<pre class="programlisting">typedef struct _JsonArray JsonArray;</pre>
+<p>A JSON array type. The contents of the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> structure are private
+and should only be accessed by the provided API</p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index d13ddbc..c931bfb 100644 (file)
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JSON GVariant Integration</title>
+<title>JSON GVariant Integration: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
 <link rel="prev" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">
-<link rel="next" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="json-glib-Versioning-information.html" title="Versioning information">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-glib-Boxed-Types-Serialization.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-tools.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-JSON-GVariant-Integration.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-JSON-GVariant-Integration.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-GVariant-Integration.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-Boxed-Types-Serialization.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-Versioning-information.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-JSON-GVariant-Integration"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-JSON-GVariant-Integration.top_of_page"></a>JSON GVariant Integration</span></h2>
 <p>JSON GVariant Integration — Serialize and deserialize GVariant types</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-JSON-GVariant-Integration.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a>             (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);
-<span class="returnvalue">gchar</span> *             <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a>        (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);
-<span class="returnvalue">GVariant</span> *          <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a>           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *json_node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-<span class="returnvalue">GVariant</span> *          <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a>      (<em class="parameter"><code>const <span class="type">gchar</span> *json</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="json-glib-JSON-GVariant-Integration.description"></a><h2>Description</h2>
-<p>
-Use <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()"><code class="function">json_gvariant_serialize()</code></a> and <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()"><code class="function">json_gvariant_serialize_data()</code></a> to
-convert from any <span class="type">GVariant</span> value to a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> tree or its string
-representation.
-</p>
-<p>
-Use <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a> and <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()"><code class="function">json_gvariant_deserialize_data()</code></a> to
-obtain the <span class="type">GVariant</span> value from a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> tree or directly from a JSON
-string.
-</p>
-<p>
-Since many <span class="type">GVariant</span> data types cannot be directly represented as
-JSON, a <span class="type">GVariant</span> type string (signature) should be provided to these
-methods in order to obtain a correct, type-contrained result.
-If no signature is provided, conversion can still be done, but the
-resulting <span class="type">GVariant</span> value will be "guessed" from the JSON data types,
-according to the following table:
-</p>
-<p>
-</p>
-<div class="table">
-<a name="id-1.5.5.4.5.1"></a><p class="title"><b>Table 2. Default JSON to GVariant conversion (without signature constrains)</b></p>
-<div class="table-contents"><table summary="Default JSON to GVariant conversion (without signature constrains)" border="1">
+<a name="json-glib-JSON-GVariant-Integration.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col>
-<col>
+<col width="150px" class="functions_return">
+<col class="functions_name">
 </colgroup>
-<thead><tr>
-<th align="left">JSON</th>
-<th align="left">GVariant</th>
-</tr></thead>
-<tfoot>
-<tr>
-<th align="left">string</th>
-<th align="left">string (s)</th>
-</tr>
-<tr>
-<th align="left">int64</th>
-<th align="left">int64 (x)</th>
-</tr>
-<tr>
-<th align="left">boolean</th>
-<th align="left">boolean (b)</th>
-</tr>
+<tbody>
 <tr>
-<th align="left">double</th>
-<th align="left">double (d)</th>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()">json_gvariant_serialize</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<th align="left">array</th>
-<th align="left">array of variants (av)</th>
+<td class="function_type">
+<span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()">json_gvariant_serialize_data</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<th align="left">object</th>
-<th align="left">dictionary of string-variant (a{sv})</th>
+<td class="function_type">
+<span class="returnvalue">GVariant</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()">json_gvariant_deserialize</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<th align="left">null</th>
-<th align="left">maybe variant (mv)</th>
+<td class="function_type">
+<span class="returnvalue">GVariant</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()">json_gvariant_deserialize_data</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tfoot>
+</tbody>
 </table></div>
 </div>
-<p><br class="table-break">
-</p>
+<div class="refsect1">
+<a name="json-glib-JSON-GVariant-Integration.description"></a><h2>Description</h2>
+<p>Use <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()"><code class="function">json_gvariant_serialize()</code></a> and <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" title="json_gvariant_serialize_data ()"><code class="function">json_gvariant_serialize_data()</code></a> to
+convert from any <span class="type">GVariant</span> value to a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> tree or its string
+representation.</p>
+<p>Use <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a> and <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" title="json_gvariant_deserialize_data ()"><code class="function">json_gvariant_deserialize_data()</code></a> to
+obtain the <span class="type">GVariant</span> value from a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> tree or directly from a JSON
+string.</p>
+<p>Since many <span class="type">GVariant</span> data types cannot be directly represented as
+JSON, a <span class="type">GVariant</span> type string (signature) should be provided to these
+methods in order to obtain a correct, type-contrained result.
+If no signature is provided, conversion can still be done, but the
+resulting <span class="type">GVariant</span> value will be "guessed" from the JSON data types
+using the following rules:</p>
+<div class="refsect3">
+<a name="id-1.5.5.4.5"></a><h4>Strings</h4>
+<p>JSON strings map to GVariant <code class="literal">(s)</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.6"></a><h4>Integers</h4>
+<p>JSON integers map to GVariant int64 <code class="literal">(x)</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.7"></a><h4>Booleans</h4>
+<p>JSON booleans map to GVariant boolean <code class="literal">(b)</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.8"></a><h4>Numbers</h4>
+<p>JSON numbers map to GVariant double <code class="literal">(d)</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.9"></a><h4>Arrays</h4>
+<p>JSON arrays map to GVariant arrays of variants <code class="literal">(av)</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.10"></a><h4>Objects</h4>
+<p>JSON objects map to GVariant dictionaries of string to variants <code class="literal">(a{sv})</code>.</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.4.11"></a><h4>Null values</h4>
+<p>JSON null values map to GVariant maybe variants <code class="literal">(mv)</code>.</p>
+</div>
 </div>
 <div class="refsect1">
-<a name="json-glib-JSON-GVariant-Integration.details"></a><h2>Details</h2>
+<a name="json-glib-JSON-GVariant-Integration.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="json-gvariant-serialize"></a><h3>json_gvariant_serialize ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_gvariant_serialize             (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);</pre>
-<p>
-Converts <em class="parameter"><code>variant</code></em> to a JSON tree.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-gvariant-serialize"></a><h3>json_gvariant_serialize ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_gvariant_serialize (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);</pre>
+<p>Converts <em class="parameter"><code>variant</code></em>
+ to a JSON tree.</p>
+<div class="refsect3">
+<a name="id-1.5.5.5.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
-<td>A <span class="type">GVariant</span> to convert</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> representing the root of the
-JSON data structure obtained from <em class="parameter"><code>variant</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>variant</p></td>
+<td class="parameter_description"><p>A <span class="type">GVariant</span> to convert</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.5.2.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> representing the root of the
+JSON data structure obtained from <em class="parameter"><code>variant</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gvariant-serialize-data"></a><h3>json_gvariant_serialize_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> *             json_gvariant_serialize_data        (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
-<p>
-Converts <em class="parameter"><code>variant</code></em> to its JSON encoded string representation. This method
-is actually a helper function. It uses <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()"><code class="function">json_gvariant_serialize()</code></a> to obtain the
-JSON tree, and then <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> to stringify it.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-gvariant-serialize-data"></a><h3>json_gvariant_serialize_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *
+json_gvariant_serialize_data (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>,
+                              <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
+<p>Converts <em class="parameter"><code>variant</code></em>
+ to its JSON encoded string representation. This method
+is actually a helper function. It uses <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" title="json_gvariant_serialize ()"><code class="function">json_gvariant_serialize()</code></a> to obtain the
+JSON tree, and then <a class="link" href="JsonGenerator.html" title="JsonGenerator"><span class="type">JsonGenerator</span></a> to stringify it.</p>
+<div class="refsect3">
+<a name="id-1.5.5.5.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
-<td>A <span class="type">GVariant</span> to convert</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>Return location for the length of the returned
-string, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>variant</p></td>
+<td class="parameter_description"><p>A <span class="type">GVariant</span> to convert</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The JSON encoded string corresponding to
-<em class="parameter"><code>variant</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p> Return location for the length of the returned
+string, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.5.3.6"></a><h4>Returns</h4>
+<p> The JSON encoded string corresponding to
+<em class="parameter"><code>variant</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gvariant-deserialize"></a><h3>json_gvariant_deserialize ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *          json_gvariant_deserialize           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *json_node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Converts a JSON data structure to a GVariant value using <em class="parameter"><code>signature</code></em> to
+<a name="json-gvariant-deserialize"></a><h3>json_gvariant_deserialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *
+json_gvariant_deserialize (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *json_node</code></em>,
+                           <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
+                           <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Converts a JSON data structure to a GVariant value using <em class="parameter"><code>signature</code></em>
+ to
 resolve ambiguous data types. If no error occurs, the resulting <span class="type">GVariant</span>
-is guaranteed to conform to <em class="parameter"><code>signature</code></em>.
-</p>
-<p>
-If <em class="parameter"><code>signature</code></em> is not <code class="literal">NULL</code> but does not represent a valid GVariant type
+is guaranteed to conform to <em class="parameter"><code>signature</code></em>
+.</p>
+<p>If <em class="parameter"><code>signature</code></em>
+ is not <code class="literal">NULL</code> but does not represent a valid GVariant type
 string, <code class="literal">NULL</code> is returned and error is set to <code class="literal">G_IO_ERROR_INVALID_ARGUMENT</code>.
-If a <em class="parameter"><code>signature</code></em> is provided but the JSON structure cannot be mapped to it,
+If a <em class="parameter"><code>signature</code></em>
+ is provided but the JSON structure cannot be mapped to it,
 <code class="literal">NULL</code> is returned and error is set to <code class="literal">G_IO_ERROR_INVALID_DATA</code>.
-If <em class="parameter"><code>signature</code></em> is <code class="literal">NULL</code>, the conversion is done based strictly on the types
-in the JSON nodes.
-</p>
-<p>
-The returned variant has a floating reference that will need to be sunk
-by the caller code.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+If <em class="parameter"><code>signature</code></em>
+ is <code class="literal">NULL</code>, the conversion is done based strictly on the types
+in the JSON nodes.</p>
+<p>The returned variant has a floating reference that will need to be sunk
+by the caller code.</p>
+<div class="refsect3">
+<a name="id-1.5.5.5.4.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>json_node</code></em> :</span></p></td>
-<td>A <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to convert</td>
+<td class="parameter_name"><p>json_node</p></td>
+<td class="parameter_description"><p>A <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to convert</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
-<td>A valid <span class="type">GVariant</span> type string, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p> A valid <span class="type">GVariant</span> type string, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>A pointer to a <span class="type">GError</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A newly created, floating <span class="type">GVariant</span>
-compliant with <em class="parameter"><code>signature</code></em>, or <code class="literal">NULL</code> on error. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>A pointer to a <span class="type">GError</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.5.4.8"></a><h4>Returns</h4>
+<p> A newly created, floating <span class="type">GVariant</span>
+compliant with <em class="parameter"><code>signature</code></em>
+, or <code class="literal">NULL</code> on error. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-gvariant-deserialize-data"></a><h3>json_gvariant_deserialize_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *          json_gvariant_deserialize_data      (<em class="parameter"><code>const <span class="type">gchar</span> *json</code></em>,
-                                                         <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
-                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>
-Converts a JSON string to a <span class="type">GVariant</span> value. This method works exactly
-like <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a>, but takes a JSON encoded string instead.
-The string is first converted to a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> using <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>, and then
-<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a> is called.
-</p>
-<p>
-The returned variant has a floating reference that will need to be sunk
-by the caller code.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-gvariant-deserialize-data"></a><h3>json_gvariant_deserialize_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *
+json_gvariant_deserialize_data (<em class="parameter"><code>const <span class="type">gchar</span> *json</code></em>,
+                                <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *signature</code></em>,
+                                <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Converts a JSON string to a <span class="type">GVariant</span> value. This method works exactly
+like <a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a>, but takes a JSON encoded string instead.
+The string is first converted to a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> using <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>, and then
+<a class="link" href="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" title="json_gvariant_deserialize ()"><code class="function">json_gvariant_deserialize()</code></a> is called.</p>
+<p>The returned variant has a floating reference that will need to be sunk
+by the caller code.</p>
+<div class="refsect3">
+<a name="id-1.5.5.5.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>json</code></em> :</span></p></td>
-<td>A JSON data string</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>The length of <em class="parameter"><code>json</code></em>, or -1 if <code class="literal">NULL</code>-terminated</td>
+<td class="parameter_name"><p>json</p></td>
+<td class="parameter_description"><p>A JSON data string</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
-<td>A valid <span class="type">GVariant</span> type string, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>The length of <em class="parameter"><code>json</code></em>
+, or -1 if <code class="literal">NULL</code>-terminated</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>A pointer to a <span class="type">GError</span>
-</td>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p> A valid <span class="type">GVariant</span> type string, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A newly created, floating <span class="type">GVariant</span> compliant
-with <em class="parameter"><code>signature</code></em>, or <code class="literal">NULL</code> on error. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>A pointer to a <span class="type">GError</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
 </div>
+<div class="refsect3">
+<a name="id-1.5.5.5.5.7"></a><h4>Returns</h4>
+<p> A newly created, floating <span class="type">GVariant</span> compliant
+with <em class="parameter"><code>signature</code></em>
+, or <code class="literal">NULL</code> on error. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-GVariant-Integration.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 821b80c..b87deae 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JSON Node</title>
+<title>JSON Node: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch01.html" title="Data Types">
 <link rel="prev" href="ch01.html" title="Data Types">
 <link rel="next" href="json-glib-JSON-Array.html" title="JSON Array">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-JSON-Array.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-JSON-Node.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-JSON-Node.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Node.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Node.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-JSON-Array.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-JSON-Node"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-JSON-Node.top_of_page"></a>JSON Node</span></h2>
 <p>JSON Node — Node in a JSON object model</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-JSON-Node.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">enum                <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType">JsonNodeType</a>;
-                    <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode">JsonNode</a>;
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()">JSON_NODE_TYPE</a>                      (node)
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS:CAPS" title="JSON_NODE_HOLDS()">JSON_NODE_HOLDS</a>                     (node,
-                                                         t)
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-VALUE:CAPS" title="JSON_NODE_HOLDS_VALUE()">JSON_NODE_HOLDS_VALUE</a>               (node)
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-OBJECT:CAPS" title="JSON_NODE_HOLDS_OBJECT()">JSON_NODE_HOLDS_OBJECT</a>              (node)
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-ARRAY:CAPS" title="JSON_NODE_HOLDS_ARRAY()">JSON_NODE_HOLDS_ARRAY</a>               (node)
-#define             <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-NULL:CAPS" title="JSON_NODE_HOLDS_NULL()">JSON_NODE_HOLDS_NULL</a>                (node)
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()">json_node_alloc</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()">json_node_init</a>                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-int" title="json_node_init_int ()">json_node_init_int</a>                  (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-double" title="json_node_init_double ()">json_node_init_double</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-boolean" title="json_node_init_boolean ()">json_node_init_boolean</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-string" title="json_node_init_string ()">json_node_init_string</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-null" title="json_node_init_null ()">json_node_init_null</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-object" title="json_node_init_object ()">json_node_init_object</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-init-array" title="json_node_init_array ()">json_node_init_array</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-new" title="json_node_new ()">json_node_new</a>                       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-copy" title="json_node_copy ()">json_node_copy</a>                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()">json_node_free</a>                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-array" title="json_node_set_array ()">json_node_set_array</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()">json_node_take_array</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()">json_node_get_array</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Node.html#json-node-dup-array" title="json_node_dup_array ()">json_node_dup_array</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-object" title="json_node_set_object ()">json_node_set_object</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()">json_node_take_object</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()">json_node_get_object</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Node.html#json-node-dup-object" title="json_node_dup_object ()">json_node_dup_object</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-value" title="json_node_set_value ()">json_node_set_value</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()">json_node_get_value</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()">json_node_set_boolean</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()">json_node_get_boolean</a>               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()">json_node_set_double</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);
-<span class="returnvalue">gdouble</span>             <a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()">json_node_get_double</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()">json_node_set_int</a>                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<span class="returnvalue">gint64</span>              <a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()">json_node_get_int</a>                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()">json_node_set_string</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()">json_node_get_string</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">gchar</span> *             <a class="link" href="json-glib-JSON-Node.html#json-node-dup-string" title="json_node_dup_string ()">json_node_dup_string</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *parent</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Node.html#json-node-get-parent" title="json_node_get_parent ()">json_node_get_parent</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="json-glib-JSON-Node.html#json-node-type-name" title="json_node_type_name ()">json_node_type_name</a>                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">GType</span>               <a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a>            (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="returnvalue">JsonNodeType</span></a>        <a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a>             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a>                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="json-glib-JSON-Node.description"></a><h2>Description</h2>
-<p>
-A <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> is a generic container of elements inside a JSON stream.
-It can contain fundamental types (integers, booleans, floating point
-numbers, strings) and complex types (arrays and objects).
-</p>
-<p>
-When parsing a JSON data stream you extract the root node and walk
-the node tree by retrieving the type of data contained inside the
-node with the <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()"><code class="literal">JSON_NODE_TYPE</code></a> macro. If the node contains a fundamental
-type you can retrieve a copy of the <span class="type">GValue</span> holding it with the
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()"><code class="function">json_node_get_value()</code></a> function, and then use the <span class="type">GValue</span> API to extract
-the data; if the node contains a complex type you can retrieve the
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> or the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> using <a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()"><code class="function">json_node_get_object()</code></a> or
-<a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()"><code class="function">json_node_get_array()</code></a> respectively, and then retrieve the nodes
-they contain.
-</p>
-</div>
 <div class="refsect1">
-<a name="json-glib-JSON-Node.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonNodeType"></a><h3>enum JsonNodeType</h3>
-<pre class="programlisting">typedef enum {
-  JSON_NODE_OBJECT,
-  JSON_NODE_ARRAY,
-  JSON_NODE_VALUE,
-  JSON_NODE_NULL
-} JsonNodeType;
-</pre>
-<p>
-Indicates the content of a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-glib-JSON-Node.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="functions_return">
+<col class="functions_name">
 </colgroup>
 <tbody>
 <tr>
-<td><p><a name="JSON-NODE-OBJECT:CAPS"></a><span class="term"><code class="literal">JSON_NODE_OBJECT</code></span></p></td>
-<td>The node contains a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()">JSON_NODE_TYPE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS:CAPS" title="JSON_NODE_HOLDS()">JSON_NODE_HOLDS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-VALUE:CAPS" title="JSON_NODE_HOLDS_VALUE()">JSON_NODE_HOLDS_VALUE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-OBJECT:CAPS" title="JSON_NODE_HOLDS_OBJECT()">JSON_NODE_HOLDS_OBJECT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-ARRAY:CAPS" title="JSON_NODE_HOLDS_ARRAY()">JSON_NODE_HOLDS_ARRAY</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-HOLDS-NULL:CAPS" title="JSON_NODE_HOLDS_NULL()">JSON_NODE_HOLDS_NULL</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()">json_node_alloc</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()">json_node_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-int" title="json_node_init_int ()">json_node_init_int</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-double" title="json_node_init_double ()">json_node_init_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-boolean" title="json_node_init_boolean ()">json_node_init_boolean</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-string" title="json_node_init_string ()">json_node_init_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-null" title="json_node_init_null ()">json_node_init_null</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-object" title="json_node_init_object ()">json_node_init_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-init-array" title="json_node_init_array ()">json_node_init_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-new" title="json_node_new ()">json_node_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-copy" title="json_node_copy ()">json_node_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()">json_node_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-ref" title="json_node_ref ()">json_node_ref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()">json_node_unref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-immutable" title="json_node_is_immutable ()">json_node_is_immutable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-seal" title="json_node_seal ()">json_node_seal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-hash" title="json_node_hash ()">json_node_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-equal" title="json_node_equal ()">json_node_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-array" title="json_node_set_array ()">json_node_set_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-take-array" title="json_node_take_array ()">json_node_take_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()">json_node_get_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-array" title="json_node_dup_array ()">json_node_dup_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-object" title="json_node_set_object ()">json_node_set_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-take-object" title="json_node_take_object ()">json_node_take_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()">json_node_get_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-object" title="json_node_dup_object ()">json_node_dup_object</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-value" title="json_node_set_value ()">json_node_set_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()">json_node_get_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-boolean" title="json_node_set_boolean ()">json_node_set_boolean</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-boolean" title="json_node_get_boolean ()">json_node_get_boolean</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-double" title="json_node_set_double ()">json_node_set_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-double" title="json_node_get_double ()">json_node_get_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-int" title="json_node_set_int ()">json_node_set_int</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint64</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-int" title="json_node_get_int ()">json_node_get_int</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-string" title="json_node_set_string ()">json_node_set_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-string" title="json_node_get_string ()">json_node_get_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-dup-string" title="json_node_dup_string ()">json_node_dup_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-set-parent" title="json_node_set_parent ()">json_node_set_parent</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-parent" title="json_node_get_parent ()">json_node_get_parent</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-type-name" title="json_node_type_name ()">json_node_type_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GType</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value-type" title="json_node_get_value_type ()">json_node_get_value_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="returnvalue">JsonNodeType</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-node-type" title="json_node_get_node_type ()">json_node_get_node_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-node-is-null" title="json_node_is_null ()">json_node_is_null</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-NODE-ARRAY:CAPS"></a><span class="term"><code class="literal">JSON_NODE_ARRAY</code></span></p></td>
-<td>The node contains a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-string-hash" title="json_string_hash ()">json_string_hash</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-NODE-VALUE:CAPS"></a><span class="term"><code class="literal">JSON_NODE_VALUE</code></span></p></td>
-<td>The node contains a fundamental type
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-string-equal" title="json_string_equal ()">json_string_equal</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><a name="JSON-NODE-NULL:CAPS"></a><span class="term"><code class="literal">JSON_NODE_NULL</code></span></p></td>
-<td>Special type, for nodes containing null
+<td class="function_type">
+<span class="returnvalue">gint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Node.html#json-string-compare" title="json_string_compare ()">json_string_compare</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="JsonNode"></a><h3>JsonNode</h3>
-<pre class="programlisting">typedef struct _JsonNode JsonNode;</pre>
-<p>
-A generic container of JSON data types. The contents of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-structure are private and should only be accessed via the provided
-functions and never directly.
-</p>
+<a name="JsonNode"></a><div class="refsect1">
+<a name="json-glib-JSON-Node.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType">JsonNodeType</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="json-glib-JSON-Node.html#JsonNode-struct" title="JsonNode">JsonNode</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="json-glib-JSON-Node.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GBoxed
+    <span class="lineart">╰──</span> JsonNode
+</pre>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Node.description"></a><h2>Description</h2>
+<p>A <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> is a generic container of elements inside a JSON stream.
+It can contain fundamental types (integers, booleans, floating point
+numbers, strings) and complex types (arrays and objects).</p>
+<p>When parsing a JSON data stream you extract the root node and walk
+the node tree by retrieving the type of data contained inside the
+node with the <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS" title="JSON_NODE_TYPE()"><code class="literal">JSON_NODE_TYPE</code></a> macro. If the node contains a fundamental
+type you can retrieve a copy of the <span class="type">GValue</span> holding it with the
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-value" title="json_node_get_value ()"><code class="function">json_node_get_value()</code></a> function, and then use the <span class="type">GValue</span> API to extract
+the data; if the node contains a complex type you can retrieve the
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> or the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> using <a class="link" href="json-glib-JSON-Node.html#json-node-get-object" title="json_node_get_object ()"><code class="function">json_node_get_object()</code></a> or
+<a class="link" href="json-glib-JSON-Node.html#json-node-get-array" title="json_node_get_array ()"><code class="function">json_node_get_array()</code></a> respectively, and then retrieve the nodes
+they contain.</p>
+<p>A <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> may be marked as immutable using <a class="link" href="json-glib-JSON-Node.html#json-node-seal" title="json_node_seal ()"><code class="function">json_node_seal()</code></a>. This marks the
+node and all its descendents as read-only, and means that subsequent calls to
+setter functions (such as <a class="link" href="json-glib-JSON-Node.html#json-node-set-array" title="json_node_set_array ()"><code class="function">json_node_set_array()</code></a>) on them will abort as a
+programmer error. By marking a node tree as immutable, it may be referenced
+in multiple places and its hash value cached for fast lookups, without the
+possibility of a value deep within the tree changing and affecting hash
+values. Immutable <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a> may be passed to functions which retain a
+reference to them without needing to take a copy.</p>
+<p><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> supports two types of memory management: alloc/free semantics, and
+ref/unref semantics. The two may be mixed to a limited extent: nodes may be
+allocated (which gives them a reference count of 1), referenced zero or more
+times, unreferenced exactly that number of times (using <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a>),
+then either unreferenced exactly once more or freed (using <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a>)
+to destroy them. <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> must not be used when a node might have a
+reference count not equal to 1. To this end, json-glib uses <a class="link" href="json-glib-JSON-Node.html#json-node-copy" title="json_node_copy ()"><code class="function">json_node_copy()</code></a>
+and <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> internally.</p>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Node.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="JSON-NODE-TYPE:CAPS"></a><h3>JSON_NODE_TYPE()</h3>
 <pre class="programlisting">#define JSON_NODE_TYPE(node)    (json_node_get_node_type ((node)))
 </pre>
-<p>
-Evaluates to the <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> contained by <em class="parameter"><code>node</code></em>
+<p>Evaluates to the <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> contained by <em class="parameter"><code>node</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.3.3.2.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
 <a name="JSON-NODE-HOLDS:CAPS"></a><h3>JSON_NODE_HOLDS()</h3>
 <pre class="programlisting">#define JSON_NODE_HOLDS(node,t)         (json_node_get_node_type ((node)) == (t))
 </pre>
-<p>
-Evaluates to <code class="literal">TRUE</code> if the <em class="parameter"><code>node</code></em> holds type <em class="parameter"><code>t</code></em>
+<p>Evaluates to <code class="literal">TRUE</code> if the <em class="parameter"><code>node</code></em>
+ holds type <em class="parameter"><code>t</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.3.3.2.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a>
-</td>
+<td class="parameter_name"><p>t</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-NODE-HOLDS-VALUE:CAPS"></a><h3>JSON_NODE_HOLDS_VALUE()</h3>
 <pre class="programlisting">#define JSON_NODE_HOLDS_VALUE(node)     (JSON_NODE_HOLDS ((node), JSON_NODE_VALUE))
 </pre>
-<p>
-Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em> holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em>
+ holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-NODE-HOLDS-OBJECT:CAPS"></a><h3>JSON_NODE_HOLDS_OBJECT()</h3>
 <pre class="programlisting">#define JSON_NODE_HOLDS_OBJECT(node)    (JSON_NODE_HOLDS ((node), JSON_NODE_OBJECT))
 </pre>
-<p>
-Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em> holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em>
+ holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-NODE-HOLDS-ARRAY:CAPS"></a><h3>JSON_NODE_HOLDS_ARRAY()</h3>
 <pre class="programlisting">#define JSON_NODE_HOLDS_ARRAY(node)     (JSON_NODE_HOLDS ((node), JSON_NODE_ARRAY))
 </pre>
-<p>
-Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em> holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em>
+ holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-NODE-HOLDS-NULL:CAPS"></a><h3>JSON_NODE_HOLDS_NULL()</h3>
 <pre class="programlisting">#define JSON_NODE_HOLDS_NULL(node)      (JSON_NODE_HOLDS ((node), JSON_NODE_NULL))
 </pre>
-<p>
-Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em> holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>node</code></em>
+ holds a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-alloc"></a><h3>json_node_alloc ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_alloc                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Allocates a new <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()"><code class="function">json_node_init()</code></a> and its variants
-to initialize the returned value.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly allocated <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. Use
-<a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> to free the resources allocated by this function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.16</p>
+<a name="json-node-alloc"></a><h3>json_node_alloc ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_alloc (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Allocates a new <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()"><code class="function">json_node_init()</code></a> and its variants
+to initialize the returned value.</p>
+<p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.8.6"></a><h4>Returns</h4>
+<p> the newly allocated <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. Use
+<a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> to free the resources allocated by this function. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init"></a><h3>json_node_init ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);</pre>
-<p>
-Initializes a <em class="parameter"><code>node</code></em> to a specific <em class="parameter"><code>type</code></em>.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init"></a><h3>json_node_init ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);</pre>
+<p>Initializes a <em class="parameter"><code>node</code></em>
+ to a specific <em class="parameter"><code>type</code></em>
+.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the type of JSON node to initialize <em class="parameter"><code>node</code></em> to</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of JSON node to initialize <em class="parameter"><code>node</code></em>
+to</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.9.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-int"></a><h3>json_node_init_int ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_int                  (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em> into it.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-int"></a><h3>json_node_init_int ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_int (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                    <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em>
+ into it.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>an integer</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>an integer</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.10.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-double"></a><h3>json_node_init_double ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_double               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em> into it.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-double"></a><h3>json_node_init_double ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_double (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                       <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em>
+ into it.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a floating point value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a floating point value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.11.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-boolean"></a><h3>json_node_init_boolean ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_boolean              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em> into it.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-boolean"></a><h3>json_node_init_boolean ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_boolean (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                        <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em>
+ into it.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a boolean value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a boolean value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.12.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-string"></a><h3>json_node_init_string ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_string               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em> into it.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-string"></a><h3>json_node_init_string ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_string (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                       <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a> and sets <em class="parameter"><code>value</code></em>
+ into it.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.13.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a string value. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> a string value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.13.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-null"></a><h3>json_node_init_null ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_null                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-null"></a><h3>json_node_init_null ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_null (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.14.7"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-object"></a><h3>json_node_init_object ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_object               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a> and sets <em class="parameter"><code>object</code></em> into it.
-</p>
-<p>
-This function will take a reference on <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-object"></a><h3>json_node_init_object ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_object (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                       <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a> and sets <em class="parameter"><code>object</code></em>
+ into it.</p>
+<p>This function will take a reference on <em class="parameter"><code>object</code></em>
+.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.15.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> to initialize <em class="parameter"><code>node</code></em> with, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p> the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> to initialize <em class="parameter"><code>node</code></em>
+with, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.15.8"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-init-array"></a><h3>json_node_init_array ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_init_array                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Initializes <em class="parameter"><code>node</code></em> to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> and sets <em class="parameter"><code>array</code></em> into it.
-</p>
-<p>
-This function will take a reference on <em class="parameter"><code>array</code></em>.
-</p>
-<p>
-If the node has already been initialized once, it will be reset to
-the given type, and any data contained will be cleared.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-init-array"></a><h3>json_node_init_array ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_init_array (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>node</code></em>
+ to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a> and sets <em class="parameter"><code>array</code></em>
+ into it.</p>
+<p>This function will take a reference on <em class="parameter"><code>array</code></em>
+.</p>
+<p>If the node has already been initialized once, it will be reset to
+the given type, and any data contained will be cleared.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.16.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to initialize</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> to initialize <em class="parameter"><code>node</code></em> with, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p> the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> to initialize <em class="parameter"><code>node</code></em>
+with, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.16</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.16.8"></a><h4>Returns</h4>
+<p> the initialized <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix09.html#api-index-0.16">0.16</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-new"></a><h3>json_node_new ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_new                       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>type</code></em>.
-</p>
-<p>
-This is a convenience function for <a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()"><code class="function">json_node_alloc()</code></a> and <a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()"><code class="function">json_node_init()</code></a>,
-and it's the equivalent of:
-</p>
-<p>
-</p>
+<a name="json-node-new"></a><h3>json_node_new ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_new (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> type</code></em>);</pre>
+<p>Creates a new <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>type</code></em>
+.</p>
+<p>This is a convenience function for <a class="link" href="json-glib-JSON-Node.html#json-node-alloc" title="json_node_alloc ()"><code class="function">json_node_alloc()</code></a> and <a class="link" href="json-glib-JSON-Node.html#json-node-init" title="json_node_init ()"><code class="function">json_node_init()</code></a>,
+and it's the equivalent of:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="json-glib-JSON-Node.html#json-node-init">json_node_init</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="json-glib-JSON-Node.html#json-node-alloc">json_node_alloc</a></span><span class="normal"> </span><span class="symbol">(),</span><span class="normal"> type</span><span class="symbol">);</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="json-glib-JSON-Node.html#json-node-init">json_node_init</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="json-glib-JSON-Node.html#json-node-alloc">json_node_alloc</a></span><span class="normal"> </span><span class="symbol">(),</span><span class="normal"> type</span><span class="symbol">);</span></pre></td>
       </tr>
     </tbody>
   </table>
 </div>
-
-<p>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+
+<p></p>
+<p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.17.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.17.10"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-copy"></a><h3>json_node_copy ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_copy (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Copies <em class="parameter"><code>node</code></em>
+. If the node contains complex data types, their reference
+counts are increased, regardless of whether the node is mutable or
+immutable.</p>
+<p>The copy will be immutable if, and only if, <em class="parameter"><code>node</code></em>
+ is immutable. However,
+there should be no need to copy an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.18.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.18.7"></a><h4>Returns</h4>
+<p> the copied <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-free"></a><h3>json_node_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_free (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Frees the resources allocated by <em class="parameter"><code>node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-ref"></a><h3>json_node_ref ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_ref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Increment the reference count of <em class="parameter"><code>node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.20.6"></a><h4>Returns</h4>
+<p> a pointer to <em class="parameter"><code>node</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-unref"></a><h3>json_node_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_unref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Decrement the reference count of <em class="parameter"><code>node</code></em>
+. If it reaches zero, the node is
+freed.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-is-immutable"></a><h3>json_node_is_immutable ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_node_is_immutable (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Check whether the given <em class="parameter"><code>node</code></em>
+ has been marked as immutable by calling
+<a class="link" href="json-glib-JSON-Node.html#json-node-seal" title="json_node_seal ()"><code class="function">json_node_seal()</code></a> on it.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.22.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>node</code></em>
+is immutable</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-seal"></a><h3>json_node_seal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_seal (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Seals the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, making it immutable to further changes. In order to be
+sealed, the <em class="parameter"><code>node</code></em>
+ must have a type and value set. The value will be
+recursively sealed — if the node holds an object, that <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> will be
+sealed, etc.</p>
+<p>If the <em class="parameter"><code>node</code></em>
+ is already immutable, this is a no-op.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.23.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-hash"></a><h3>json_node_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_node_hash (<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
+<p>Calculate a hash value for the given <em class="parameter"><code>key</code></em>
+ (a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>).</p>
+<p>The hash is calculated over the node and its value, recursively. If the node
+is immutable, this is a fast operation; otherwise, it scales proportionally
+with the size of the node’s value (for example, with the number of members
+in the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> if this node contains an object).</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.24.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> a JSON node to hash. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonNode]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.24.7"></a><h4>Returns</h4>
+<p> hash value for <em class="parameter"><code>key</code></em>
+</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-equal"></a><h3>json_node_equal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_node_equal (<em class="parameter"><code><span class="type">gconstpointer</span> a</code></em>,
+                 <em class="parameter"><code><span class="type">gconstpointer</span> b</code></em>);</pre>
+<p>Check whether <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ are equal <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>, meaning they have the same
+type and same values (checked recursively). Note that integer values are
+compared numerically, ignoring type, so a double value 4.0 is equal to the
+integer value 4.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p> a JSON node. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonNode]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p> another JSON node. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonNode]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.25.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if <em class="parameter"><code>a</code></em>
+and <em class="parameter"><code>b</code></em>
+are equal; <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-node-set-array"></a><h3>json_node_set_array ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_array (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                     <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Sets <em class="parameter"><code>array</code></em>
+ inside <em class="parameter"><code>node</code></em>
+ and increases the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> reference count.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.26.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-copy"></a><h3>json_node_copy ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_copy                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Copies <em class="parameter"><code>node</code></em>. If the node contains complex data types then the reference
-count of the objects is increased.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-take-array"></a><h3>json_node_take_array ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_take_array (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
+<p>Sets <em class="parameter"><code>array</code></em>
+ into <em class="parameter"><code>node</code></em>
+ without increasing the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> reference count.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.27.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the copied <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>array</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-free"></a><h3>json_node_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_free                      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Frees the resources allocated by <em class="parameter"><code>node</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-array"></a><h3>json_node_get_array ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_node_get_array (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.28.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-array"></a><h3>json_node_set_array ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_array                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>array</code></em> inside <em class="parameter"><code>node</code></em> and increases the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> reference count
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-dup-array"></a><h3>json_node_dup_array ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_node_dup_array (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> and returns it
+with its reference count increased by one.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.29.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> with its reference
+count increased. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-take-array"></a><h3>json_node_take_array ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_take_array                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>array</code></em> into <em class="parameter"><code>node</code></em> without increasing the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> reference count.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-object"></a><h3>json_node_set_object ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_object (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Sets <em class="parameter"><code>objects</code></em>
+ inside <em class="parameter"><code>node</code></em>
+. The reference count of <em class="parameter"><code>object</code></em>
+ is increased.</p>
+<p>If <em class="parameter"><code>object</code></em>
+ is <code class="literal">NULL</code>, the node’s existing object is cleared.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.30.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"><code class="literal">JSON_NODE_ARRAY</code></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-array"></a><h3>json_node_get_array ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_node_get_array                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-take-object"></a><h3>json_node_take_object ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_take_object (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                       <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Sets <em class="parameter"><code>object</code></em>
+ inside <em class="parameter"><code>node</code></em>
+. The reference count of <em class="parameter"><code>object</code></em>
+ is not increased.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-dup-array"></a><h3>json_node_dup_array ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_node_dup_array                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> and returns it
-with its reference count increased by one.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-object"></a><h3>json_node_get_object ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_node_get_object (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.32.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> with its reference
-count increased. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.32.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-object"></a><h3>json_node_set_object ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_object                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>objects</code></em> inside <em class="parameter"><code>node</code></em>. The reference count of <em class="parameter"><code>object</code></em> is increased.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-dup-object"></a><h3>json_node_dup_object ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_node_dup_object (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> inside <em class="parameter"><code>node</code></em>
+. The reference count of
+the returned object is increased.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.33.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-take-object"></a><h3>json_node_take_object ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_take_object               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>object</code></em> inside <em class="parameter"><code>node</code></em>. The reference count of <em class="parameter"><code>object</code></em> is not increased.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-value"></a><h3>json_node_set_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_value (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                     <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre>
+<p>Sets <em class="parameter"><code>value</code></em>
+ inside <em class="parameter"><code>node</code></em>
+. The passed <span class="type">GValue</span> is copied into the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.34.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"><code class="literal">JSON_NODE_OBJECT</code></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the <span class="type">GValue</span> to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-object"></a><h3>json_node_get_object ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_node_get_object                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-value"></a><h3>json_node_get_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_get_value (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                     <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);</pre>
+<p>Retrieves a value from a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> and copies into <em class="parameter"><code>value</code></em>
+. When done
+using it, call <code class="function">g_value_unset()</code> on the <span class="type">GValue</span>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.35.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> return location for an uninitialized value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-dup-object"></a><h3>json_node_dup_object ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_node_dup_object                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> inside <em class="parameter"><code>node</code></em>. The reference count of
-the returned object is increased.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-boolean"></a><h3>json_node_set_boolean ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_boolean (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                       <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
+<p>Sets <em class="parameter"><code>value</code></em>
+ as the boolean content of the <em class="parameter"><code>node</code></em>
+, replacing any existing
+content.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.36.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a boolean value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-value"></a><h3>json_node_set_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_value                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>value</code></em> inside <em class="parameter"><code>node</code></em>. The passed <span class="type">GValue</span> is copied into the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-boolean"></a><h3>json_node_get_boolean ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_node_get_boolean (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Gets the boolean value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.37.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the <span class="type">GValue</span> to set</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.37.6"></a><h4>Returns</h4>
+<p> a boolean value.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-value"></a><h3>json_node_get_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_get_value                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);</pre>
-<p>
-Retrieves a value from a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> and copies into <em class="parameter"><code>value</code></em>. When done
-using it, call <code class="function">g_value_unset()</code> on the <span class="type">GValue</span>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-double"></a><h3>json_node_set_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_double (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
+<p>Sets <em class="parameter"><code>value</code></em>
+ as the double content of the <em class="parameter"><code>node</code></em>
+, replacing any existing
+content.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.38.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>return location for an uninitialized value. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a double value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-boolean"></a><h3>json_node_set_boolean ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_boolean               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>value</code></em> as the boolean content of the <em class="parameter"><code>node</code></em>, replacing any existing
-content.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-double"></a><h3>json_node_get_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+json_node_get_double (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Gets the double value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.39.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a boolean value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.39.6"></a><h4>Returns</h4>
+<p> a double value.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-boolean"></a><h3>json_node_get_boolean ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_node_get_boolean               (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Gets the boolean value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-int"></a><h3>json_node_set_int ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_int (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                   <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>Sets <em class="parameter"><code>value</code></em>
+ as the integer content of the <em class="parameter"><code>node</code></em>
+, replacing any existing
+content.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.40.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a boolean value.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>an integer value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-double"></a><h3>json_node_set_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_double                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>value</code></em> as the double content of the <em class="parameter"><code>node</code></em>, replacing any existing
-content.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-int"></a><h3>json_node_get_int ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>
+json_node_get_int (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Gets the integer value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.41.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a double value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.41.6"></a><h4>Returns</h4>
+<p> an integer value.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-double"></a><h3>json_node_get_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">gdouble</span>             json_node_get_double                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Gets the double value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-string"></a><h3>json_node_set_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_string (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
+<p>Sets <em class="parameter"><code>value</code></em>
+ as the string content of the <em class="parameter"><code>node</code></em>
+, replacing any existing
+content.</p>
+<p>It is an error to call this on an immutable node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.42.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a double value.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a string value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-int"></a><h3>json_node_set_int ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_int                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>value</code></em> as the integer content of the <em class="parameter"><code>node</code></em>, replacing any existing
-content.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-string"></a><h3>json_node_get_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_node_get_string (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Gets the string value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.43.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>an integer value</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.43.6"></a><h4>Returns</h4>
+<p> a string value.</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-int"></a><h3>json_node_get_int ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint64</span>              json_node_get_int                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Gets the integer value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-dup-string"></a><h3>json_node_dup_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *
+json_node_dup_string (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Gets a copy of the string value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.44.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an integer value.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.44.6"></a><h4>Returns</h4>
+<p> a newly allocated string containing a copy
+of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> contents. Use <code class="function">g_free()</code> to free the allocated resources. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-string"></a><h3>json_node_set_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_string                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>value</code></em> as the string content of the <em class="parameter"><code>node</code></em>, replacing any existing
-content.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-set-parent"></a><h3>json_node_set_parent ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_node_set_parent (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *parent</code></em>);</pre>
+<p>Sets the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>
+.</p>
+<p>It is an error to call this with an immutable <em class="parameter"><code>parent</code></em>
+. <em class="parameter"><code>node</code></em>
+ may be
+immutable.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.45.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> initialized to <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a string value</td>
+<td class="parameter_name"><p>parent</p></td>
+<td class="parameter_description"><p> the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-string"></a><h3>json_node_get_string ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_node_get_string                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Gets the string value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-parent"></a><h3>json_node_get_parent ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_node_get_parent (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.46.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a string value.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.46.6"></a><h4>Returns</h4>
+<p> the parent node, or <code class="literal">NULL</code> if <em class="parameter"><code>node</code></em>
+is
+the root node. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-dup-string"></a><h3>json_node_dup_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">gchar</span> *             json_node_dup_string                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Gets a copy of the string value stored inside a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-type-name"></a><h3>json_node_type_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_node_type_name (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the user readable name of the data type contained by <em class="parameter"><code>node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.47.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of type <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"><code class="literal">JSON_NODE_VALUE</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated string containing a copy
-of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> contents. Use <code class="function">g_free()</code> to free the allocated resources. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.47.6"></a><h4>Returns</h4>
+<p> a string containing the name of the type. The returned string
+is owned by the node and should never be modified or freed</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-set-parent"></a><h3>json_node_set_parent ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_node_set_parent                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *parent</code></em>);</pre>
-<p>
-Sets the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-get-value-type"></a><h3>json_node_get_value_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">GType</span>
+json_node_get_value_type (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Returns the <span class="type">GType</span> of the payload of the node.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.48.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
-<td>the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.48.6"></a><h4>Returns</h4>
+<p> a <span class="type">GType</span> for the payload.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-parent"></a><h3>json_node_get_parent ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_node_get_parent                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the parent <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of <em class="parameter"><code>node</code></em>.
+<a name="json-node-get-node-type"></a><h3>json_node_get_node_type ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="returnvalue">JsonNodeType</span></a>
+json_node_get_node_type (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> of <em class="parameter"><code>node</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<div class="refsect3">
+<a name="id-1.3.3.2.8.49.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the parent node, or <code class="literal">NULL</code> if <em class="parameter"><code>node</code></em> is
-the root node. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.49.6"></a><h4>Returns</h4>
+<p> the type of the node</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-type-name"></a><h3>json_node_type_name ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_node_type_name                 (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the user readable name of the data type contained by <em class="parameter"><code>node</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-node-is-null"></a><h3>json_node_is_null ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_node_is_null (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Checks whether <em class="parameter"><code>node</code></em>
+ is a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>.</p>
+<p>A <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a> node is not the same as a <code class="literal">NULL</code> <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>; a
+<a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a> represents a 'null' value in the JSON tree.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.50.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a string containing the name of the type. The returned string
-is owned by the node and should never be modified or freed</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.50.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the node is null</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-value-type"></a><h3>json_node_get_value_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>               json_node_get_value_type            (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Returns the <span class="type">GType</span> of the payload of the node.
+<a name="json-string-hash"></a><h3>json_string_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_string_hash (<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
+<p>Calculate a hash value for the given <em class="parameter"><code>key</code></em>
+ (a UTF-8 JSON string).</p>
+<p>Note: Member names are compared byte-wise, without applying any Unicode
+decomposition or normalisation. This is not explicitly mentioned in the JSON
+standard (ECMA-404), but is assumed.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.51.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> a JSON string to hash. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.51.7"></a><h4>Returns</h4>
+<p> hash value for <em class="parameter"><code>key</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-string-equal"></a><h3>json_string_equal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_string_equal (<em class="parameter"><code><span class="type">gconstpointer</span> a</code></em>,
+                   <em class="parameter"><code><span class="type">gconstpointer</span> b</code></em>);</pre>
+<p>Check whether <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ are equal UTF-8 JSON strings.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.52.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p> a JSON string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GType</span> for the payload.</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p> another JSON string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.4</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.52.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if <em class="parameter"><code>a</code></em>
+and <em class="parameter"><code>b</code></em>
+are equal; <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-node-get-node-type"></a><h3>json_node_get_node_type ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="returnvalue">JsonNodeType</span></a>        json_node_get_node_type             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNodeType" title="enum JsonNodeType"><span class="type">JsonNodeType</span></a> of <em class="parameter"><code>node</code></em>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-string-compare"></a><h3>json_string_compare ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>
+json_string_compare (<em class="parameter"><code><span class="type">gconstpointer</span> a</code></em>,
+                     <em class="parameter"><code><span class="type">gconstpointer</span> b</code></em>);</pre>
+<p>Check whether <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ are equal UTF-8 JSON strings and return an ordering
+over them in <code class="function">strcmp()</code> style.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.53.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-</td>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p> a JSON string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the type of the node</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p> another JSON string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-node-is-null"></a><h3>json_node_is_null ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_node_is_null                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Checks whether <em class="parameter"><code>node</code></em> is a <a class="link" href="json-glib-JSON-Node.html#JSON-NODE-NULL:CAPS"><code class="literal">JSON_NODE_NULL</code></a>
-</p>
-<p>
+<div class="refsect3">
+<a name="id-1.3.3.2.8.53.6"></a><h4>Returns</h4>
+<p> an integer less than zero if <em class="parameter"><code>a</code></em>
+&lt; <em class="parameter"><code>b</code></em>
+, equal to zero if <em class="parameter"><code>a</code></em>
+== <em class="parameter"><code>b</code></em>
+, and
+greater than zero if <em class="parameter"><code>a</code></em>
+&gt; <em class="parameter"><code>b</code></em>
 </p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>A null node is not the same as a <code class="literal">NULL</code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
 </div>
-<p>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Node.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonNodeType"></a><h3>enum JsonNodeType</h3>
+<p>Indicates the content of a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
+<td class="enum_member_name"><p><a name="JSON-NODE-OBJECT:CAPS"></a>JSON_NODE_OBJECT</p></td>
+<td class="enum_member_description">
+<p>The node contains a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-NODE-ARRAY:CAPS"></a>JSON_NODE_ARRAY</p></td>
+<td class="enum_member_description">
+<p>The node contains a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="JSON-NODE-VALUE:CAPS"></a>JSON_NODE_VALUE</p></td>
+<td class="enum_member_description">
+<p>The node contains a fundamental type</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the node is null</td>
+<td class="enum_member_name"><p><a name="JSON-NODE-NULL:CAPS"></a>JSON_NODE_NULL</p></td>
+<td class="enum_member_description">
+<p>Special type, for nodes containing null</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JsonNode-struct"></a><h3>JsonNode</h3>
+<pre class="programlisting">typedef struct _JsonNode JsonNode;</pre>
+<p>A generic container of JSON data types. The contents of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>
+structure are private and should only be accessed via the provided
+functions and never directly.</p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 77cc968..b633ca3 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>JSON Object</title>
+<title>JSON Object: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="ch01.html" title="Data Types">
 <link rel="prev" href="json-glib-JSON-Array.html" title="JSON Array">
 <link rel="next" href="json-streams.html" title="Part III. Reading and writing">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-glib-JSON-Array.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-streams.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-JSON-Object.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-JSON-Object.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Object.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#json-glib-JSON-Object.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-JSON-Array.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-streams.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-JSON-Object"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-JSON-Object.top_of_page"></a>JSON Object</span></h2>
 <p>JSON Object — a JSON object representation</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-JSON-Object.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject">JsonObject</a>;
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Object.html#json-object-new" title="json_object_new ()">json_object_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()">json_object_ref</a>                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()">json_object_unref</a>                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Object.html#json-object-has-member" title="json_object_has_member ()">json_object_has_member</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()">json_object_get_member</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">GList</span> *             <a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()">json_object_get_members</a>             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<span class="returnvalue">GList</span> *             <a class="link" href="json-glib-JSON-Object.html#json-object-get-values" title="json_object_get_values ()">json_object_get_values</a>              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<span class="returnvalue">guint</span>               <a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()">json_object_get_size</a>                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-remove-member" title="json_object_remove_member ()">json_object_remove_member</a>           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">*JsonObjectForeach</a>)                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *member_node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()"><span class="type">JsonObjectForeach</span></a> func</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);
-
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a>        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);
-<a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         <a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a>        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a>      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a>      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);
-<span class="returnvalue">gdouble</span>             <a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<span class="returnvalue">gint64</span>              <a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a>          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a>         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a>         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        <a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);
-const <span class="returnvalue">gchar</span> *       <a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a>       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
+<div class="refsect1">
+<a name="json-glib-JSON-Object.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-new" title="json_object_new ()">json_object_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()">json_object_ref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()">json_object_unref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-seal" title="json_object_seal ()">json_object_seal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-is-immutable" title="json_object_is_immutable ()">json_object_is_immutable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-hash" title="json_object_hash ()">json_object_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-equal" title="json_object_equal ()">json_object_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-add-member" title="json_object_add_member ()">json_object_add_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()">json_object_set_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-has-member" title="json_object_has_member ()">json_object_has_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()">json_object_get_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-dup-member" title="json_object_dup_member ()">json_object_dup_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GList</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()">json_object_get_members</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">GList</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-values" title="json_object_get_values ()">json_object_get_values</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()">json_object_get_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-remove-member" title="json_object_remove_member ()">json_object_remove_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()">*JsonObjectForeach</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()">json_object_foreach_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-init" title="json_object_iter_init ()">json_object_iter_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-iter-next" title="json_object_iter_next ()">json_object_iter_next</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-array-member" title="json_object_set_array_member ()">json_object_set_array_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-array-member" title="json_object_get_array_member ()">json_object_get_array_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-boolean-member" title="json_object_set_boolean_member ()">json_object_set_boolean_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-boolean-member" title="json_object_get_boolean_member ()">json_object_get_boolean_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-double-member" title="json_object_set_double_member ()">json_object_set_double_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gdouble</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-double-member" title="json_object_get_double_member ()">json_object_get_double_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-int-member" title="json_object_set_int_member ()">json_object_set_int_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gint64</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-int-member" title="json_object_get_int_member ()">json_object_get_int_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-null-member" title="json_object_set_null_member ()">json_object_set_null_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-null-member" title="json_object_get_null_member ()">json_object_get_null_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-object-member" title="json_object_set_object_member ()">json_object_set_object_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-object-member" title="json_object_get_object_member ()">json_object_get_object_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-set-string-member" title="json_object_set_string_member ()">json_object_set_string_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">gchar</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-JSON-Object.html#json-object-get-string-member" title="json_object_get_string_member ()">json_object_get_string_member</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="JsonObject"></a><div class="refsect1">
+<a name="json-glib-JSON-Object.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="json-glib-JSON-Object.html#JsonObject-struct" title="JsonObject">JsonObject</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter">JsonObjectIter</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Object.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GBoxed
+    <span class="lineart">╰──</span> JsonObject
 </pre>
 </div>
 <div class="refsect1">
 <a name="json-glib-JSON-Object.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> is the representation of the object type inside JSON. It contains
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s, which may contain fundamental types, arrays or other
-objects. Each member of an object is accessed using its name.
-</p>
-<p>
-Since objects can be expensive, they are reference counted. You can control
-the lifetime of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> using <a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()"><code class="function">json_object_ref()</code></a> and <a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()"><code class="function">json_object_unref()</code></a>.
-</p>
-<p>
-To add or overwrite a member with a given name, use <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>.
-To extract a member with a given name, use <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>.
-To retrieve the list of members, use <a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()"><code class="function">json_object_get_members()</code></a>.
+<p><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> is the representation of the object type inside JSON. It
+contains <a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>, which may contain fundamental types, arrays or other
+objects; each node inside an object, or "member", is accessed using a
+unique string, or "name".</p>
+<p>Since objects can be expensive, they are reference counted. You can control
+the lifetime of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> using <a class="link" href="json-glib-JSON-Object.html#json-object-ref" title="json_object_ref ()"><code class="function">json_object_ref()</code></a> and <a class="link" href="json-glib-JSON-Object.html#json-object-unref" title="json_object_unref ()"><code class="function">json_object_unref()</code></a>.</p>
+<p>To add or overwrite a member with a given name, use <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>.
+To extract a member with a given name, use <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>.
+To retrieve the list of members, use <a class="link" href="json-glib-JSON-Object.html#json-object-get-members" title="json_object_get_members ()"><code class="function">json_object_get_members()</code></a>.
 To retrieve the size of the object (that is, the number of members it has),
-use <a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()"><code class="function">json_object_get_size()</code></a>.
-</p>
+use <a class="link" href="json-glib-JSON-Object.html#json-object-get-size" title="json_object_get_size ()"><code class="function">json_object_get_size()</code></a>.</p>
 </div>
 <div class="refsect1">
-<a name="json-glib-JSON-Object.details"></a><h2>Details</h2>
+<a name="json-glib-JSON-Object.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="JsonObject"></a><h3>JsonObject</h3>
-<pre class="programlisting">typedef struct _JsonObject JsonObject;</pre>
-<p>
-A JSON object type. The contents of the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> structure are private
-and should only be accessed by the provided API
-</p>
+<a name="json-object-new"></a><h3>json_object_new ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_object_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>, an JSON object type representation.</p>
+<p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.2.6"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-new"></a><h3>json_object_new ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_object_new                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>, an JSON object type representation.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-ref"></a><h3>json_object_ref ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_object_ref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Increase by one the reference count of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the newly created <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.3.6"></a><h4>Returns</h4>
+<p> the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>, with the reference count
+increased by one. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-ref"></a><h3>json_object_ref ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_object_ref                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Increase by one the reference count of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-unref"></a><h3>json_object_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_unref (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Decreases by one the reference count of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. If the
+reference count reaches zero, the object is destroyed and all
+its allocated resources are freed.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>, with the reference count
-increased by one.</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-unref"></a><h3>json_object_unref ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_unref                   (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Decreases by one the reference count of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. If the
-reference count reaches zero, the object is destroyed and all
-its allocated resources are freed.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-seal"></a><h3>json_object_seal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_seal (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Seals the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>, making it immutable to further changes. This will
+recursively seal all members of the object too.</p>
+<p>If the <em class="parameter"><code>object</code></em>
+ is already immutable, this is a no-op.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-add-member"></a><h3>json_object_add_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_add_member              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>
-<p><code class="literal">json_object_add_member</code> has been deprecated since version 0.8 and should not be used in newly-written code. Use <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a> instead</p>
-</div>
-<p>
-Adds a member named <em class="parameter"><code>member_name</code></em> and containing <em class="parameter"><code>node</code></em> into a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-The object will take ownership of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>.
-</p>
-<p>
-This function will return if the <em class="parameter"><code>object</code></em> already contains a member
-<em class="parameter"><code>member_name</code></em>.
+<a name="json-object-is-immutable"></a><h3>json_object_is_immutable ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_is_immutable (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Check whether the given <em class="parameter"><code>object</code></em>
+ has been marked as immutable by calling
+<a class="link" href="json-glib-JSON-Object.html#json-object-seal" title="json_object_seal ()"><code class="function">json_object_seal()</code></a> on it.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.6.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the <em class="parameter"><code>object</code></em>
+is immutable</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-object-hash"></a><h3>json_object_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_object_hash (<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
+<p>Calculate a hash value for the given <em class="parameter"><code>key</code></em>
+ (a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>).</p>
+<p>The hash is calculated over the object and all its members, recursively. If
+the object is immutable, this is a fast operation; otherwise, it scales
+proportionally with the number of members in the object.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> a JSON object to hash. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonObject]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.7.7"></a><h4>Returns</h4>
+<p> hash value for <em class="parameter"><code>key</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-object-equal"></a><h3>json_object_equal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_equal (<em class="parameter"><code><span class="type">gconstpointer</span> a</code></em>,
+                   <em class="parameter"><code><span class="type">gconstpointer</span> b</code></em>);</pre>
+<p>Check whether <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ are equal <a href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObjects</span></a>, meaning they have the same
+set of members, and the values of corresponding members are equal.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p> a JSON object. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonObject]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the value of the member. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p> another JSON object. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> JsonObject]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.8.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if <em class="parameter"><code>a</code></em>
+and <em class="parameter"><code>b</code></em>
+are equal; <code class="literal">FALSE</code> otherwise</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-member"></a><h3>json_object_set_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_member              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
-<p>
-Sets <em class="parameter"><code>node</code></em> as the value of <em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-If <em class="parameter"><code>object</code></em> already contains a member called <em class="parameter"><code>member_name</code></em> then
-the member's current value is overwritten. Otherwise, a new
-member is added to <em class="parameter"><code>object</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-add-member"></a><h3>json_object_add_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_add_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                        <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">json_object_add_member</code> has been deprecated since version 0.8 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a> instead</p>
+</div>
+<p>Adds a member named <em class="parameter"><code>member_name</code></em>
+ and containing <em class="parameter"><code>node</code></em>
+ into a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.
+The object will take ownership of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>.</p>
+<p>This function will return if the <em class="parameter"><code>object</code></em>
+ already contains a member
+<em class="parameter"><code>member_name</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.9.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>the value of the member. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> the value of the member. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-has-member"></a><h3>json_object_has_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_object_has_member              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Checks whether <em class="parameter"><code>object</code></em> has a member named <em class="parameter"><code>member_name</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-member"></a><h3>json_object_set_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                        <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
+<p>Sets <em class="parameter"><code>node</code></em>
+ as the value of <em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>If <em class="parameter"><code>object</code></em>
+ already contains a member called <em class="parameter"><code>member_name</code></em>
+ then
+the member's current value is overwritten. Otherwise, a new
+member is added to <em class="parameter"><code>object</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of a JSON object member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the JSON object has the requested member</td>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p> the value of the member. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-member"></a><h3>json_object_get_member ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_object_get_member              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the value of <em class="parameter"><code>member_name</code></em> inside
-a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-has-member"></a><h3>json_object_has_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_has_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Checks whether <em class="parameter"><code>object</code></em>
+ has a member named <em class="parameter"><code>member_name</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the JSON object member to access</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the node for the requested object
-member, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of a JSON object member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.11.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the JSON object has the requested member</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-dup-member"></a><h3>json_object_dup_member ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_object_dup_member              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Retrieves a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the value of <em class="parameter"><code>member_name</code></em>
-inside a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-get-member"></a><h3>json_object_get_member ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_object_get_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the value of <em class="parameter"><code>member_name</code></em>
+ inside
+a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the JSON object member to access</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the node for the requested
-object member or <code class="literal">NULL</code>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-free" title="json_node_free ()"><code class="function">json_node_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the JSON object member to access</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.6</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.12.6"></a><h4>Returns</h4>
+<p> a pointer to the node for the requested object
+member, or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-members"></a><h3>json_object_get_members ()</h3>
-<pre class="programlisting"><span class="returnvalue">GList</span> *             json_object_get_members             (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Retrieves all the names of the members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. You can
-obtain the value for each member using <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-dup-member"></a><h3>json_object_dup_member ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_object_dup_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                        <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Retrieves a copy of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the value of <em class="parameter"><code>member_name</code></em>
+
+inside a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GList</span>
-of member names. The content of the list is owned by the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-and should never be modified or freed. When you have finished using
-the returned list, use <code class="function">g_list_free()</code> to free the resources it has
-allocated. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the JSON object member to access</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.13.6"></a><h4>Returns</h4>
+<p> a copy of the node for the requested
+object member or <code class="literal">NULL</code>. Use <a class="link" href="json-glib-JSON-Node.html#json-node-unref" title="json_node_unref ()"><code class="function">json_node_unref()</code></a> when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-0.6">0.6</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-values"></a><h3>json_object_get_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">GList</span> *             json_object_get_values              (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Retrieves all the values of the members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-get-members"></a><h3>json_object_get_members ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *
+json_object_get_members (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Retrieves all the names of the members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. You can
+obtain the value for each member using <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.14.6"></a><h4>Returns</h4>
+<p> a <span class="type">GList</span>
+of member names. The content of the list is owned by the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>
+and should never be modified or freed. When you have finished using
+the returned list, use <code class="function">g_list_free()</code> to free the resources it has
+allocated. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-object-get-values"></a><h3>json_object_get_values ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *
+json_object_get_values (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Retrieves all the values of the members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.15.6"></a><h4>Returns</h4>
+<p> a <span class="type">GList</span> of
+<a href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNodes</span></a>. The content of the list is owned by the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>
+and should never be modified or freed. When you have finished using the
+returned list, use <code class="function">g_list_free()</code> to free the resources it has allocated. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> JsonNode][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-object-get-size"></a><h3>json_object_get_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>
+json_object_get_size (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Retrieves the number of members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.16.6"></a><h4>Returns</h4>
+<p> the number of members</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-object-remove-member"></a><h3>json_object_remove_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_remove_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                           <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Removes <em class="parameter"><code>member_name</code></em>
+ from <em class="parameter"><code>object</code></em>
+, freeing its allocated resources.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <span class="type">GList</span> of
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>s. The content of the list is owned by the <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-and should never be modified or freed. When you have finished using the
-returned list, use <code class="function">g_list_free()</code> to free the resources it has allocated. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> JsonNode][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member to remove</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-size"></a><h3>json_object_get_size ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>               json_object_get_size                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
-<p>
-Retrieves the number of members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="JsonObjectForeach"></a><h3>JsonObjectForeach ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*JsonObjectForeach<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                      <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                      <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *member_node</code></em>,
+                      <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>The function to be passed to <a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()"><code class="function">json_object_foreach_member()</code></a>. You
+should not add or remove members to and from <em class="parameter"><code>object</code></em>
+ within
+this function. It is safe to change the value of <em class="parameter"><code>member_node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>the iterated <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the number of members</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>member_node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the <em class="parameter"><code>member_name</code></em>
+value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>data passed to the function</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-object-remove-member"></a><h3>json_object_remove_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_remove_member           (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Removes <em class="parameter"><code>member_name</code></em> from <em class="parameter"><code>object</code></em>, freeing its allocated resources.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-foreach-member"></a><h3>json_object_foreach_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_foreach_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                            <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()"><span class="type">JsonObjectForeach</span></a> func</code></em>,
+                            <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
+<p>Iterates over all members of <em class="parameter"><code>object</code></em>
+ and calls <em class="parameter"><code>func</code></em>
+ on
+each one of them.</p>
+<p>It is safe to change the value of a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of the <em class="parameter"><code>object</code></em>
+
+from within the iterator <em class="parameter"><code>func</code></em>
+, but it is not safe to add or
+remove members from the <em class="parameter"><code>object</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.19.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p> the function to be called on each member. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member to remove</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p> data to be passed to the function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="JsonObjectForeach"></a><h3>JsonObjectForeach ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*JsonObjectForeach)                (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *member_node</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
-<p>
-The function to be passed to <a class="link" href="json-glib-JSON-Object.html#json-object-foreach-member" title="json_object_foreach_member ()"><code class="function">json_object_foreach_member()</code></a>. You
-should not add or remove members to and from <em class="parameter"><code>object</code></em> within
-this function. It is safe to change the value of <em class="parameter"><code>member_node</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-iter-init"></a><h3>json_object_iter_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_iter_init (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter"><span class="type">JsonObjectIter</span></a> *iter</code></em>,
+                       <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>);</pre>
+<p>Initialise the <em class="parameter"><code>iter</code></em>
+ and associate it with <em class="parameter"><code>object</code></em>
+.</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="usertype">JsonObjectIter</span><span class="normal"> iter</span><span class="symbol">;</span>
+<span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">member_name</span><span class="symbol">;</span>
+<span class="usertype">JsonNode</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">member_node</span><span class="symbol">;</span>
+
+<span class="function"><a href="json-glib-JSON-Object.html#json-object-iter-init">json_object_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> some_object</span><span class="symbol">);</span>
+<span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="json-glib-JSON-Object.html#json-object-iter-next">json_object_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">member_name</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">member_node</span><span class="symbol">))</span>
+<span class="normal">  </span><span class="cbracket">{</span>
+<span class="normal">    </span><span class="comment">// Do something with @member_name and @member_node.</span>
+<span class="normal">  </span><span class="cbracket">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.20.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the iterated <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>iter</p></td>
+<td class="parameter_description"><p>an uninitialised <a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter"><span class="type">JsonObjectIter</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the <em class="parameter"><code>member_name</code></em> value</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the function</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> to iterate over</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-foreach-member"></a><h3>json_object_foreach_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_foreach_member          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObjectForeach" title="JsonObjectForeach ()"><span class="type">JsonObjectForeach</span></a> func</code></em>,
-                                                         <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
-<p>
-Iterates over all members of <em class="parameter"><code>object</code></em> and calls <em class="parameter"><code>func</code></em> on
-each one of them.
-</p>
-<p>
-It is safe to change the value of a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of the <em class="parameter"><code>object</code></em>
-from within the iterator <em class="parameter"><code>func</code></em>, but it is not safe to add or
-remove members from the <em class="parameter"><code>object</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-iter-next"></a><h3>json_object_iter_next ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_iter_next (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter"><span class="type">JsonObjectIter</span></a> *iter</code></em>,
+                       <em class="parameter"><code>const <span class="type">gchar</span> **member_name</code></em>,
+                       <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> **member_node</code></em>);</pre>
+<p>Advance <em class="parameter"><code>iter</code></em>
+ and retrieve the next member in the object. If the end of the
+object is reached, <code class="literal">FALSE</code> is returned and <em class="parameter"><code>member_name</code></em>
+ and <em class="parameter"><code>member_node</code></em>
+ are
+set to invalid values. After that point, the <em class="parameter"><code>iter</code></em>
+ is invalid.</p>
+<p>The order in which members are returned by the iterator is undefined. The
+iterator is invalidated if its <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> is modified during iteration.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.21.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>iter</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter"><span class="type">JsonObjectIter</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function to be called on each member. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p> return
+location for the member name, or <code class="literal">NULL</code> to ignore. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data to be passed to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_node</p></td>
+<td class="parameter_description"><p> return
+location for the member value, or <code class="literal">NULL</code> to ignore. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out callee-allocates</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.21.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if <em class="parameter"><code>member_name</code></em>
+and <em class="parameter"><code>member_node</code></em>
+are valid; <code class="literal">FALSE</code> if the end
+of the object has been reached</p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-array-member"></a><h3>json_object_set_array_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_array_member        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);</pre>
-<p>
-Convenience function for setting an array <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-The <em class="parameter"><code>object</code></em> will take ownership of the passed <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-array-member"></a><h3>json_object_set_array_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_array_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                              <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                              <em class="parameter"><code><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *value</code></em>);</pre>
+<p>Convenience function for setting an array <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>The <em class="parameter"><code>object</code></em>
+ will take ownership of the passed <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.22.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> the value of the member. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-array-member"></a><h3>json_object_get_array_member ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="returnvalue">JsonArray</span></a> *         json_object_get_array_member        (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the array
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
+<a name="json-object-get-array-member"></a><h3>json_object_get_array_member ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="returnvalue">JsonArray</span></a> *
+json_object_get_array_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                              <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the array
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.23.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the array inside the object's member. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.23.7"></a><h4>Returns</h4>
+<p> the array inside the object's member. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-boolean-member"></a><h3>json_object_set_boolean_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_boolean_member      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
-<p>
-Convenience function for setting a boolean <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-boolean-member"></a><h3>json_object_set_boolean_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_boolean_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                                <em class="parameter"><code><span class="type">gboolean</span> value</code></em>);</pre>
+<p>Convenience function for setting a boolean <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.24.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-boolean-member"></a><h3>json_object_get_boolean_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_object_get_boolean_member      (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the boolean value
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
+<a name="json-object-get-boolean-member"></a><h3>json_object_get_boolean_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_get_boolean_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the boolean value
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.25.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the boolean value of the object's member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.25.7"></a><h4>Returns</h4>
+<p> the boolean value of the object's member</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-double-member"></a><h3>json_object_set_double_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_double_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
-<p>
-Convenience function for setting a floating point <em class="parameter"><code>value</code></em>
-of <em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-double-member"></a><h3>json_object_set_double_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_double_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                               <em class="parameter"><code><span class="type">gdouble</span> value</code></em>);</pre>
+<p>Convenience function for setting a floating point <em class="parameter"><code>value</code></em>
+
+of <em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.26.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-double-member"></a><h3>json_object_get_double_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gdouble</span>             json_object_get_double_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the floating point value
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
+<a name="json-object-get-double-member"></a><h3>json_object_get_double_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gdouble</span>
+json_object_get_double_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the floating point value
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
 </p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.27.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the floating point value of the object's member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.27.7"></a><h4>Returns</h4>
+<p> the floating point value of the object's member</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-int-member"></a><h3>json_object_set_int_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_int_member          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-Convenience function for setting an integer <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-int-member"></a><h3>json_object_set_int_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_int_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                            <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                            <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>Convenience function for setting an integer <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.28.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-int-member"></a><h3>json_object_get_int_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint64</span>              json_object_get_int_member          (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the integer value
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
+<a name="json-object-get-int-member"></a><h3>json_object_get_int_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>
+json_object_get_int_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                            <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the integer value
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.29.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the integer value of the object's member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.29.7"></a><h4>Returns</h4>
+<p> the integer value of the object's member</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-null-member"></a><h3>json_object_set_null_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_null_member         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function for setting a null <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-null-member"></a><h3>json_object_set_null_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_null_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                             <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function for setting a null <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.30.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-null-member"></a><h3>json_object_get_null_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_object_get_null_member         (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that checks whether the value
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em> is null
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-get-null-member"></a><h3>json_object_get_null_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_object_get_null_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                             <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that checks whether the value
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
+ is null</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.31.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the value is null</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.31.7"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the value is null</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-object-member"></a><h3>json_object_set_object_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_object_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);</pre>
-<p>
-Convenience function for setting an object <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-The <em class="parameter"><code>object</code></em> will take ownership of the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-object-member"></a><h3>json_object_set_object_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_object_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                               <em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *value</code></em>);</pre>
+<p>Convenience function for setting an object <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>The <em class="parameter"><code>object</code></em>
+ will take ownership of the passed <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.32.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> the value of the member. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-object-member"></a><h3>json_object_get_object_member ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="returnvalue">JsonObject</span></a> *        json_object_get_object_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the object
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-get-object-member"></a><h3>json_object_get_object_member ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="returnvalue">JsonObject</span></a> *
+json_object_get_object_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the object
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
+. It is an error to specify a <em class="parameter"><code>member_name</code></em>
+
+which does not exist.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.33.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the object inside the object's member. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.33.7"></a><h4>Returns</h4>
+<p> the object inside the object’s
+member, or <code class="literal">NULL</code> if the value for the member is <code class="literal">null</code>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-set-string-member"></a><h3>json_object_set_string_member ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_object_set_string_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
-<p>
-Convenience function for setting a string <em class="parameter"><code>value</code></em> of
-<em class="parameter"><code>member_name</code></em> inside <em class="parameter"><code>object</code></em>.
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-object-set-string-member"></a><h3>json_object_set_string_member ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_object_set_string_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
+<p>Convenience function for setting a string <em class="parameter"><code>value</code></em>
+ of
+<em class="parameter"><code>member_name</code></em>
+ inside <em class="parameter"><code>object</code></em>
+.</p>
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-set-member" title="json_object_set_member ()"><code class="function">json_object_set_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.34.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the member</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
+</div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-object-get-string-member"></a><h3>json_object_get_string_member ()</h3>
-<pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_object_get_string_member       (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
-<p>
-Convenience function that retrieves the string value
-stored in <em class="parameter"><code>member_name</code></em> of <em class="parameter"><code>object</code></em>
-</p>
-<p>
-See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a>
+<a name="json-object-get-string-member"></a><h3>json_object_get_string_member ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *
+json_object_get_string_member (<em class="parameter"><code><a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object</code></em>,
+                               <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
+<p>Convenience function that retrieves the string value
+stored in <em class="parameter"><code>member_name</code></em>
+ of <em class="parameter"><code>object</code></em>
 </p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>See also: <a class="link" href="json-glib-JSON-Object.html#json-object-get-member" title="json_object_get_member ()"><code class="function">json_object_get_member()</code></a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.35.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
-<td>the name of the member</td>
+<td class="parameter_name"><p>object</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the string value of the object's member</td>
+<td class="parameter_name"><p>member_name</p></td>
+<td class="parameter_description"><p>the name of the member</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.8</p>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.35.7"></a><h4>Returns</h4>
+<p> the string value of the object's member</p>
 </div>
+<p class="since">Since: <a class="link" href="ix05.html#api-index-0.8">0.8</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-JSON-Object.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonObject-struct"></a><h3>JsonObject</h3>
+<pre class="programlisting">typedef struct _JsonObject JsonObject;</pre>
+<p>A JSON object type. The contents of the <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> structure are private
+and should only be accessed by the provided API</p>
 </div>
-<div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18.1</div>
+<div class="refsect2">
+<a name="JsonObjectIter"></a><h3>JsonObjectIter</h3>
+<pre class="programlisting">typedef struct {
+} JsonObjectIter;
+</pre>
+<p>An iterator used to iterate over the members of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. This must
+be allocated on the stack and initialised using <a class="link" href="json-glib-JSON-Object.html#json-object-iter-init" title="json_object_iter_init ()"><code class="function">json_object_iter_init()</code></a>.
+The order in which members are returned by the iterator is undefined. The
+iterator is invalidated if its <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> is modified during iteration.</p>
+<p>All the fields in the <a class="link" href="json-glib-JSON-Object.html#JsonObjectIter" title="JsonObjectIter"><span class="type">JsonObjectIter</span></a> structure are private and should
+never be accessed directly.</p>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index e253f75..959f14d 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Serializable Interface</title>
+<title>Serializable Interface: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
 <link rel="prev" href="json-glib-GObject-Serialization.html" title="GObject Serialization">
 <link rel="next" href="json-glib-Boxed-Types-Serialization.html" title="Boxed Types Serialization">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-glib-GObject-Serialization.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-Boxed-Types-Serialization.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-Serializable-Interface.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-Serializable-Interface.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-Serializable-Interface.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#json-glib-Serializable-Interface.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-GObject-Serialization.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-glib-Boxed-Types-Serialization.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-Serializable-Interface"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-Serializable-Interface.top_of_page"></a>Serializable Interface</span></h2>
 <p>Serializable Interface — Interface for serialize and deserialize special GObjects</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-Serializable-Interface.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface">JsonSerializableIface</a>;
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-serialize-property" title="json_serializable_serialize_property ()">json_serializable_serialize_property</a>
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-deserialize-property" title="json_serializable_deserialize_property ()">json_serializable_deserialize_property</a>
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);
-<span class="returnvalue">GParamSpec</span> *        <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a>     (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-get-property" title="json_serializable_get_property ()">json_serializable_get_property</a>      (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);
-<span class="returnvalue">GParamSpec</span> **       <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a>   (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> *n_pspecs</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-set-property" title="json_serializable_set_property ()">json_serializable_set_property</a>      (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);
-
-<a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a>
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);
-<span class="returnvalue">gboolean</span>            <a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a>
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="json-glib-Serializable-Interface.description"></a><h2>Description</h2>
-<p>
-<span class="type">JsonSerializable</span> is an interface for <span class="type">GObject</span> classes that
-allows controlling how the class is going to be serialized
-or deserialized by <a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()"><code class="function">json_construct_gobject()</code></a> and
-<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()"><code class="function">json_serialize_gobject()</code></a> respectively.
-</p>
-</div>
-<div class="refsect1">
-<a name="json-glib-Serializable-Interface.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="JsonSerializableIface"></a><h3>struct JsonSerializableIface</h3>
-<pre class="programlisting">struct JsonSerializableIface {
-  JsonNode *(* serialize_property)   (JsonSerializable *serializable,
-                                      const gchar      *property_name,
-                                      const GValue     *value,
-                                      GParamSpec       *pspec);
-  gboolean  (* deserialize_property) (JsonSerializable *serializable,
-                                      const gchar      *property_name,
-                                      GValue           *value,
-                                      GParamSpec       *pspec,
-                                      JsonNode         *property_node);
-
-  GParamSpec * (* find_property)       (JsonSerializable *serializable,
-                                        const char       *name);
-  GParamSpec **(* list_properties)     (JsonSerializable *serializable,
-                                        guint            *n_pspecs);
-  void         (* set_property)        (JsonSerializable *serializable,
-                                        GParamSpec       *pspec,
-                                        const GValue     *value);
-  void         (* get_property)        (JsonSerializable *serializable,
-                                        GParamSpec       *pspec,
-                                        GValue           *value);
-};
-</pre>
-<p>
-Interface that allows serializing and deserializing <span class="type">GObject</span>s
-with properties storing complex data types. The <a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()"><code class="function">json_serialize_gobject()</code></a>
-function will check if the passed <span class="type">GObject</span> implements this interface,
-so it can also be used to override the default property serialization
-sequence.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-glib-Serializable-Interface.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="functions_return">
+<col class="functions_name">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.serialize-property"></a>serialize_property</code></em> ()</span></p></td>
-<td>virtual function for serializing a <span class="type">GObject</span> property
-into a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-serialize-property" title="json_serializable_serialize_property ()">json_serializable_serialize_property</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.deserialize-property"></a>deserialize_property</code></em> ()</span></p></td>
-<td>virtual function for deserializing a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>
-into a <span class="type">GObject</span> property</td>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-deserialize-property" title="json_serializable_deserialize_property ()">json_serializable_deserialize_property</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.find-property"></a>find_property</code></em> ()</span></p></td>
-<td>virtual function for finding a property definition using
-its name</td>
+<td class="function_type">
+<span class="returnvalue">GParamSpec</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-find-property" title="json_serializable_find_property ()">json_serializable_find_property</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.list-properties"></a>list_properties</code></em> ()</span></p></td>
-<td>virtual function for listing the installed property
-definitions</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-get-property" title="json_serializable_get_property ()">json_serializable_get_property</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.set-property"></a>set_property</code></em> ()</span></p></td>
-<td>virtual function for setting a property</td>
+<td class="function_type">
+<span class="returnvalue">GParamSpec</span> **
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-list-properties" title="json_serializable_list_properties ()">json_serializable_list_properties</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="JsonSerializableIface.get-property"></a>get_property</code></em> ()</span></p></td>
-<td>virtual function for getting a property</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-set-property" title="json_serializable_set_property ()">json_serializable_set_property</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" title="json_serializable_default_serialize_property ()">json_serializable_default_serialize_property</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">gboolean</span>
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" title="json_serializable_default_deserialize_property ()">json_serializable_default_deserialize_property</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<a name="JsonSerializable"></a><div class="refsect1">
+<a name="json-glib-Serializable-Interface.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface" title="struct JsonSerializableIface">JsonSerializableIface</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Serializable-Interface.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GInterface
+    <span class="lineart">╰──</span> JsonSerializable
+</pre>
+</div>
+<div class="refsect1">
+<a name="json-glib-Serializable-Interface.description"></a><h2>Description</h2>
+<p><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> is an interface for <span class="type">GObject</span> classes that
+allows controlling how the class is going to be serialized
+or deserialized by <a class="link" href="json-glib-GObject-Serialization.html#json-construct-gobject" title="json_construct_gobject ()"><code class="function">json_construct_gobject()</code></a> and
+<a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()"><code class="function">json_serialize_gobject()</code></a> respectively.</p>
+</div>
+<div class="refsect1">
+<a name="json-glib-Serializable-Interface.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="json-serializable-serialize-property"></a><h3>json_serializable_serialize_property ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_serializable_serialize_property
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
-<p>
-Asks a <span class="type">JsonSerializable</span> implementation to serialize a <span class="type">GObject</span>
-property into a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> object.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-serializable-serialize-property"></a><h3>json_serializable_serialize_property ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_serializable_serialize_property (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                      <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                      <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
+                                      <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
+<p>Asks a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> implementation to serialize a <span class="type">GObject</span>
+property into a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> object.</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>the name of the property</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> object</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the property</td>
+<td class="parameter_name"><p>property_name</p></td>
+<td class="parameter_description"><p>the name of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>a <span class="type">GParamSpec</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.5.3.8.2.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-deserialize-property"></a><h3>json_serializable_deserialize_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_serializable_deserialize_property
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);</pre>
-<p>
-Asks a <span class="type">JsonSerializable</span> implementation to deserialize the
-property contained inside <em class="parameter"><code>property_node</code></em> into <em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-serializable-deserialize-property"></a><h3>json_serializable_deserialize_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_serializable_deserialize_property
+                               (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
+                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
+                                <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);</pre>
+<p>Asks a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> implementation to deserialize the
+property contained inside <em class="parameter"><code>property_node</code></em>
+ into <em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span>
-</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>the name of the property</td>
+<td class="parameter_name"><p>property_name</p></td>
+<td class="parameter_description"><p>the name of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a pointer to an uninitialized <span class="type">GValue</span>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> a pointer to an uninitialized <span class="type">GValue</span>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>a <span class="type">GParamSpec</span>
-</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>property_node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</td>
+<td class="parameter_name"><p>property_node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.8.3.6"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the property was successfully deserialized.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-serializable-find-property"></a><h3>json_serializable_find_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
+json_serializable_find_property (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>Calls the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.find-property"><code class="function">JsonSerializableIface.find_property()</code></a> implementation on
+the <em class="parameter"><code>serializable</code></em>
+ instance. *</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the property was successfully deserialized.</td>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.5.3.8.4.6"></a><h4>Returns</h4>
+<p> the <span class="type">GParamSpec</span> for the property
+or <code class="literal">NULL</code> if no property was found. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-find-property"></a><h3>json_serializable_find_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *        json_serializable_find_property     (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
-<p>
-FIXME
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-serializable-get-property"></a><h3>json_serializable_get_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_serializable_get_property (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
+                                <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);</pre>
+<p>Calls the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.get-property"><code class="function">JsonSerializableIface.get_property()</code></a> implementation
+on the <em class="parameter"><code>serializable</code></em>
+ instance.</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span>
-</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the property</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <span class="type">GParamSpec</span> for the property
-or <code class="literal">NULL</code> if no property was found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> return location for the property value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-get-property"></a><h3>json_serializable_get_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_serializable_get_property      (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);</pre>
+<a name="json-serializable-list-properties"></a><h3>json_serializable_list_properties ()</h3>
+<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **
+json_serializable_list_properties (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                   <em class="parameter"><code><span class="type">guint</span> *n_pspecs</code></em>);</pre>
+<p>Calls the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.list-properties"><code class="function">JsonSerializableIface.list_properties()</code></a> implementation on
+the <em class="parameter"><code>serializable</code></em>
+ instance.</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_pspecs</p></td>
+<td class="parameter_description"><p> return location for the length of the array
+of <span class="type">GParamSpec</span> returned by the function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.8.6.6"></a><h4>Returns</h4>
+<p> an array
+of <span class="type">GParamSpec</span>. Use <code class="function">g_free()</code> to free the array when done. </p>
+<p><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_pspecs][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-list-properties"></a><h3>json_serializable_list_properties ()</h3>
-<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **       json_serializable_list_properties   (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint</span> *n_pspecs</code></em>);</pre>
-<p>
-FIXME
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<a name="json-serializable-set-property"></a><h3>json_serializable_set_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+json_serializable_set_property (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
+                                <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre>
+<p>Calls the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.set-property"><code class="function">JsonSerializableIface.set_property()</code></a> implementation
+on the <em class="parameter"><code>serializable</code></em>
+ instance.</p>
+<div class="refsect3">
+<a name="id-1.5.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span>
-</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>n_pspecs</code></em> :</span></p></td>
-<td>return location for the length of the array
-of <span class="type">GParamSpec</span> returned by the function. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an array
-of <span class="type">GParamSpec</span>. Use <code class="function">g_free()</code> to free the array when done. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_pspecs][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the property value to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.14</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="json-serializable-set-property"></a><h3>json_serializable_set_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                json_serializable_set_property      (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-default-serialize-property"></a><h3>json_serializable_default_serialize_property ()</h3>
-<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_serializable_default_serialize_property
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
-<p>
-Calls the default implementation of the <span class="type">JsonSerializable</span>
-<code class="function">serialize_property()</code> virtual function
-</p>
-<p>
-This function can be used inside a custom implementation
-of the <code class="function">serialize_property()</code> virtual function in lieu of:
-</p>
-<p>
-</p>
+<a name="json-serializable-default-serialize-property"></a><h3>json_serializable_default_serialize_property ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_serializable_default_serialize_property
+                               (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>,
+                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
+<p>Calls the default implementation of the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a>
+<a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.serialize-property"><code class="function">JsonSerializableIface.serialize_property()</code></a> virtual function.</p>
+<p>This function can be used inside a custom implementation
+of the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializableIface.serialize-property"><code class="function">JsonSerializableIface.serialize_property()</code></a> virtual
+function in lieu of calling the default implementation
+through <code class="function">g_type_default_interface_peek()</code>:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -369,60 +432,61 @@ of the <code class="function">serialize_property()</code> virtual function in li
   </table>
 </div>
 
-<p>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p></p>
+<div class="refsect3">
+<a name="id-1.5.3.8.8.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span> object</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> object</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>the name of the property</td>
+<td class="parameter_name"><p>property_name</p></td>
+<td class="parameter_description"><p>the name of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the property</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>a <span class="type">GParamSpec</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the serialized
-property. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.8.8.9"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the serialized
+property. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="json-serializable-default-deserialize-property"></a><h3>json_serializable_default_deserialize_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>            json_serializable_default_deserialize_property
-                                                        (<em class="parameter"><code><span class="type">JsonSerializable</span> *serializable</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
-                                                         <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
-                                                         <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);</pre>
-<p>
-Calls the default implementation of the <span class="type">JsonSerializable</span>
-<code class="function">deserialize_property()</code> virtual function
-</p>
-<p>
-This function can be used inside a custom implementation
-of the <code class="function">deserialize_property()</code> virtual function in lieu of:
-</p>
-<p>
-</p>
+<a name="json-serializable-default-deserialize-property"></a><h3>json_serializable_default_deserialize_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>
+json_serializable_default_deserialize_property
+                               (<em class="parameter"><code><a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a> *serializable</code></em>,
+                                <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                <em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
+                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
+                                <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *property_node</code></em>);</pre>
+<p>Calls the default implementation of the <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a>
+<code class="function">deserialize_property()</code> virtual function</p>
+<p>This function can be used inside a custom implementation
+of the <code class="function">deserialize_property()</code> virtual function in lieu of:</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -448,50 +512,133 @@ of the <code class="function">deserialize_property()</code> virtual function in
   </table>
 </div>
 
-<p>
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p></p>
+<div class="refsect3">
+<a name="id-1.5.3.8.9.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
-<td>a <span class="type">JsonSerializable</span>
-</td>
+<td class="parameter_name"><p>serializable</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-Serializable-Interface.html#JsonSerializable"><span class="type">JsonSerializable</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>the name of the property</td>
+<td class="parameter_name"><p>property_name</p></td>
+<td class="parameter_description"><p>the name of the property</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a pointer to an uninitialized <span class="type">GValue</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>a pointer to an uninitialized <span class="type">GValue</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>a <span class="type">GParamSpec</span>
-</td>
+<td class="parameter_name"><p>pspec</p></td>
+<td class="parameter_description"><p>a <span class="type">GParamSpec</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>property_node</code></em> :</span></p></td>
-<td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</td>
+<td class="parameter_name"><p>property_node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> containing the serialized property</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.8.9.9"></a><h4>Returns</h4>
+<p> <code class="literal">TRUE</code> if the property was successfully deserialized.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-0.10">0.10</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Serializable-Interface.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JsonSerializableIface"></a><h3>struct JsonSerializableIface</h3>
+<pre class="programlisting">struct JsonSerializableIface {
+  JsonNode *(* serialize_property)   (JsonSerializable *serializable,
+                                      const gchar      *property_name,
+                                      const GValue     *value,
+                                      GParamSpec       *pspec);
+  gboolean  (* deserialize_property) (JsonSerializable *serializable,
+                                      const gchar      *property_name,
+                                      GValue           *value,
+                                      GParamSpec       *pspec,
+                                      JsonNode         *property_node);
+
+  GParamSpec * (* find_property)       (JsonSerializable *serializable,
+                                        const char       *name);
+  GParamSpec **(* list_properties)     (JsonSerializable *serializable,
+                                        guint            *n_pspecs);
+  void         (* set_property)        (JsonSerializable *serializable,
+                                        GParamSpec       *pspec,
+                                        const GValue     *value);
+  void         (* get_property)        (JsonSerializable *serializable,
+                                        GParamSpec       *pspec,
+                                        GValue           *value);
+};
+</pre>
+<p>Interface that allows serializing and deserializing <span class="type">GObject</span> instances
+with properties storing complex data types. The <a class="link" href="json-glib-GObject-Serialization.html#json-serialize-gobject" title="json_serialize_gobject ()"><code class="function">json_serialize_gobject()</code></a>
+function will check if the passed <span class="type">GObject</span> implements this interface,
+so it can also be used to override the default property serialization
+sequence.</p>
+<div class="refsect3">
+<a name="id-1.5.3.9.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.serialize-property"></a>serialize_property</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for serializing a <span class="type">GObject</span> property
+into a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<code class="literal">TRUE</code> if the property was successfully deserialized.</td>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.deserialize-property"></a>deserialize_property</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for deserializing a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>
+into a <span class="type">GObject</span> property</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.find-property"></a>find_property</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for finding a property definition using
+its name</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.list-properties"></a>list_properties</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for listing the installed property
+definitions</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.set-property"></a>set_property</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for setting a property</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="JsonSerializableIface.get-property"></a>get_property</code></em> ()</p></td>
+<td class="struct_member_description"><p>virtual function for getting a property</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10</p>
+</div>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/json-glib-Utility-API.html b/doc/reference/html/json-glib-Utility-API.html
new file mode 100644 (file)
index 0000000..07b496b
--- /dev/null
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Utility API: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="ch04.html" title="General Purpose API">
+<link rel="prev" href="ch04.html" title="General Purpose API">
+<link rel="next" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-Utility-API.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch04.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-advanced.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="json-glib-Utility-API"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="json-glib-Utility-API.top_of_page"></a>Utility API</span></h2>
+<p>Utility API — Various utility functions</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="json-glib-Utility-API.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Utility-API.html#json-from-string" title="json_from_string ()">json_from_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="json-glib-Utility-API.html#json-to-string" title="json_to_string ()">json_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Utility-API.description"></a><h2>Description</h2>
+<p>Various utility functions.</p>
+</div>
+<div class="refsect1">
+<a name="json-glib-Utility-API.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="json-from-string"></a><h3>json_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
+json_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+                  <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>Parses the string in <em class="parameter"><code>str</code></em>
+ and returns a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> representing
+the JSON tree.</p>
+<p>In case of parsing error, this function returns <code class="literal">NULL</code> and sets
+<em class="parameter"><code>error</code></em>
+ appropriately.</p>
+<div class="refsect3">
+<a name="id-1.4.5.2.5.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>str</p></td>
+<td class="parameter_description"><p>a valid UTF-8 string containing JSON data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <span class="type">GError</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.5.2.5.2.7"></a><h4>Returns</h4>
+<p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="json-to-string"></a><h3>json_to_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+json_to_string (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>,
+                <em class="parameter"><code><span class="type">gboolean</span> pretty</code></em>);</pre>
+<p>Generates a stringified JSON representation of the contents of
+the passed <em class="parameter"><code>node</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.5.2.5.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>node</p></td>
+<td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pretty</p></td>
+<td class="parameter_description"><p>whether the output should be prettyfied for printing</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.5.2.5.3.6"></a><h4>Returns</h4>
+<p> the string representation of the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Utility-API.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
index 75ea93b..e3f8dc7 100644 (file)
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Versioning information</title>
+<title>Versioning information: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="up" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
-<link rel="prev" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
-<link rel="next" href="ch04.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="up" href="json-advanced.html" title="Part IV. JSON-GLib Advanced API">
+<link rel="prev" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">
+<link rel="next" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="json-tools.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="json-tools.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ch04.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#json-glib-Versioning-information.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#json-glib-Versioning-information.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#json-glib-Versioning-information.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-advanced.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-glib-JSON-GVariant-Integration.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-tools.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="json-glib-Versioning-information"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="json-glib-Versioning-information.top_of_page"></a>Versioning information</span></h2>
 <p>Versioning information — JSON-GLib version checking</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="json-glib-Versioning-information.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="json-glib-Versioning-information.html#JSON-MAJOR-VERSION:CAPS" title="JSON_MAJOR_VERSION">JSON_MAJOR_VERSION</a>
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-MINOR-VERSION:CAPS" title="JSON_MINOR_VERSION">JSON_MINOR_VERSION</a>
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-MICRO-VERSION:CAPS" title="JSON_MICRO_VERSION">JSON_MICRO_VERSION</a>
-
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION">JSON_VERSION</a>
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-S:CAPS" title="JSON_VERSION_S">JSON_VERSION_S</a>
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-HEX:CAPS" title="JSON_VERSION_HEX">JSON_VERSION_HEX</a>
-
-#define             <a class="link" href="json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS" title="JSON_CHECK_VERSION()">JSON_CHECK_VERSION</a>                  (major,
-                                                         minor,
-                                                         micro)
-</pre>
+<div class="refsect1">
+<a name="json-glib-Versioning-information.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-MAJOR-VERSION:CAPS" title="JSON_MAJOR_VERSION">JSON_MAJOR_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-MINOR-VERSION:CAPS" title="JSON_MINOR_VERSION">JSON_MINOR_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-MICRO-VERSION:CAPS" title="JSON_MICRO_VERSION">JSON_MICRO_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION">JSON_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS" title="JSON_CHECK_VERSION()">JSON_CHECK_VERSION</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MIN-REQUIRED:CAPS" title="JSON_VERSION_MIN_REQUIRED">JSON_VERSION_MIN_REQUIRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-MAX-ALLOWED:CAPS" title="JSON_VERSION_MAX_ALLOWED">JSON_VERSION_MAX_ALLOWED</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Versioning-information.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-S:CAPS" title="JSON_VERSION_S">JSON_VERSION_S</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="json-glib-Versioning-information.html#JSON-VERSION-HEX:CAPS" title="JSON_VERSION_HEX">JSON_VERSION_HEX</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="json-glib-Versioning-information.description"></a><h2>Description</h2>
-<p>
-JSON-GLib provides macros to check the version of the library
-at compile-time
-</p>
+<p>JSON-GLib provides macros to check the version of the library
+at compile-time</p>
 </div>
 <div class="refsect1">
-<a name="json-glib-Versioning-information.details"></a><h2>Details</h2>
+<a name="json-glib-Versioning-information.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="JSON-MAJOR-VERSION:CAPS"></a><h3>JSON_MAJOR_VERSION</h3>
-<pre class="programlisting">#define JSON_MAJOR_VERSION              (0)
+<pre class="programlisting">#define JSON_MAJOR_VERSION              (1)
 </pre>
-<p>
-Json major version component (e.g. 1 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)
-</p>
+<p>Json major version component (e.g. 1 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-MINOR-VERSION:CAPS"></a><h3>JSON_MINOR_VERSION</h3>
-<pre class="programlisting">#define JSON_MINOR_VERSION              (16)
+<pre class="programlisting">#define JSON_MINOR_VERSION              (2)
 </pre>
-<p>
-Json minor version component (e.g. 2 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)
-</p>
+<p>Json minor version component (e.g. 2 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-MICRO-VERSION:CAPS"></a><h3>JSON_MICRO_VERSION</h3>
 <pre class="programlisting">#define JSON_MICRO_VERSION              (0)
 </pre>
-<p>
-Json micro version component (e.g. 3 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)
-</p>
+<p>Json micro version component (e.g. 3 if <a class="link" href="json-glib-Versioning-information.html#JSON-VERSION:CAPS" title="JSON_VERSION"><code class="literal">JSON_VERSION</code></a> is 1.2.3)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-VERSION:CAPS"></a><h3>JSON_VERSION</h3>
-<pre class="programlisting">#define JSON_VERSION                    (0.16.0)
+<pre class="programlisting">#define JSON_VERSION                    (1.2.0)
 </pre>
-<p>
-Json version.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="JSON-VERSION-S:CAPS"></a><h3>JSON_VERSION_S</h3>
-<pre class="programlisting">#define JSON_VERSION_S                  "0.16.0"
-</pre>
-<p>
-Json version, encoded as a string, useful for printing and
-concatenation.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="JSON-VERSION-HEX:CAPS"></a><h3>JSON_VERSION_HEX</h3>
-<pre class="programlisting">#define             JSON_VERSION_HEX</pre>
-<p>
-Json version, encoded as an hexadecimal number, useful for
-integer comparisons.
-</p>
+<p>Json version.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="JSON-CHECK-VERSION:CAPS"></a><h3>JSON_CHECK_VERSION()</h3>
 <pre class="programlisting">#define             JSON_CHECK_VERSION(major,minor,micro)</pre>
-<p>
-Compile-time version checking. Evaluates to <code class="literal">TRUE</code> if the version
-of Json is greater than the required one.
-</p>
-<div class="variablelist"><table border="0" class="variablelist">
+<p>Compile-time version checking. Evaluates to <code class="literal">TRUE</code> if the version
+of Json is greater than the required one.</p>
+<div class="refsect3">
+<a name="id-1.5.6.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
 <colgroup>
-<col align="left" valign="top">
-<col>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
-<td>required major version</td>
+<td class="parameter_name"><p>major</p></td>
+<td class="parameter_description"><p>required major version</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
-<td>required minor version</td>
+<td class="parameter_name"><p>minor</p></td>
+<td class="parameter_description"><p>required minor version</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
-<td>required micro version</td>
+<td class="parameter_name"><p>micro</p></td>
+<td class="parameter_description"><p>required micro version</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="JSON-VERSION-MIN-REQUIRED:CAPS"></a><h3>JSON_VERSION_MIN_REQUIRED</h3>
+<pre class="programlisting"># define JSON_VERSION_MIN_REQUIRED      (JSON_VERSION_CUR_STABLE)
+</pre>
+<p>A macro that should be defined by the user prior to including
+the gdk.h header.
+The definition should be one of the predefined JSON version
+macros: <code class="literal">JSON_VERSION_1_0</code>, <code class="literal">JSON_VERSION_1_2</code>,...</p>
+<p>This macro defines the lower bound for the JSON-GLib API to use.</p>
+<p>If a function has been deprecated in a newer version of JSON-GLib,
+it is possible to use this symbol to avoid the compiler warnings
+without disabling warning for every deprecated function.</p>
+<p class="since">Since: <a class="link" href="ix10.html#api-index-1.0">1.0</a></p>
 </div>
-<div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18.1</div>
+<div class="refsect2">
+<a name="JSON-VERSION-MAX-ALLOWED:CAPS"></a><h3>JSON_VERSION_MAX_ALLOWED</h3>
+<pre class="programlisting">#  define JSON_VERSION_MAX_ALLOWED      (JSON_VERSION_MIN_REQUIRED)
+</pre>
+<p>A macro that should be defined by the user prior to including
+the json-glib.h header.</p>
+<p>The definition should be one of the predefined JSON-GLib version
+macros: <code class="literal">JSON_VERSION_1_0</code>, <code class="literal">JSON_VERSION_1_2</code>,...</p>
+<p>This macro defines the upper bound for the JSON API-GLib to use.</p>
+<p>If a function has been introduced in a newer version of JSON-GLib,
+it is possible to use this symbol to get compiler warnings when
+trying to use that function.</p>
+<p class="since">Since: <a class="link" href="ix10.html#api-index-1.0">1.0</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="json-glib-Versioning-information.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="JSON-VERSION-S:CAPS"></a><h3>JSON_VERSION_S</h3>
+<pre class="programlisting">#define JSON_VERSION_S                  "1.2.0"
+</pre>
+<p>JSON-GLib version, encoded as a string, useful for printing and
+concatenation.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="JSON-VERSION-HEX:CAPS"></a><h3>JSON_VERSION_HEX</h3>
+<pre class="programlisting">#define             JSON_VERSION_HEX</pre>
+<p>JSON-GLib version, encoded as an hexadecimal number, useful for
+integer comparisons.</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index e3ec149..cb2876a 100644 (file)
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
 <book xmlns="http://www.devhelp.net/book" title="JSON-GLib Reference Manual" link="index.html" author="" name="json-glib" version="2" language="c">
   <chapters>
     <sub name="JSON-GLib Overview" link="json-glib.html"/>
         <sub name="JsonGenerator" link="JsonGenerator.html"/>
         <sub name="JsonBuilder" link="JsonBuilder.html"/>
       </sub>
+      <sub name="General Purpose API" link="ch04.html">
+        <sub name="Utility API" link="json-glib-Utility-API.html"/>
+      </sub>
     </sub>
     <sub name="JSON-GLib Advanced API" link="json-advanced.html">
       <sub name="GObject Serialization" link="json-glib-GObject-Serialization.html"/>
       <sub name="Serializable Interface" link="json-glib-Serializable-Interface.html"/>
       <sub name="Boxed Types Serialization" link="json-glib-Boxed-Types-Serialization.html"/>
       <sub name="JSON GVariant Integration" link="json-glib-JSON-GVariant-Integration.html"/>
+      <sub name="Versioning information" link="json-glib-Versioning-information.html"/>
     </sub>
     <sub name="JSON-GLib Additional Reference" link="json-tools.html">
-      <sub name="Versioning information" link="json-glib-Versioning-information.html"/>
-      <sub name="Object Hierarchy" link="ch04.html"/>
+      <sub name="JSON-GLib Tools" link="tools.html">
+        <sub name="json-glib-format" link="json-format-tool.html"/>
+        <sub name="json-glib-validate" link="json-validate-tool.html"/>
+      </sub>
+      <sub name="Object Hierarchy" link="ch06.html"/>
     </sub>
     <sub name="Index" link="ix01.html"/>
     <sub name="Index of deprecated symbols" link="ix02.html"/>
     <sub name="Index of new symbols in 0.10" link="ix06.html"/>
     <sub name="Index of new symbols in 0.12" link="ix07.html"/>
     <sub name="Index of new symbols in 0.14" link="ix08.html"/>
+    <sub name="Index of new symbols in 0.16" link="ix09.html"/>
+    <sub name="Index of new symbols in 1.0" link="ix10.html"/>
+    <sub name="Index of new symbols in 1.2" link="ix11.html"/>
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
     <sub name="License" link="license.html"/>
   </chapters>
   <functions>
-    <keyword type="enum" name="enum JsonNodeType" link="json-glib-JSON-Node.html#JsonNodeType"/>
-    <keyword type="struct" name="JsonNode" link="json-glib-JSON-Node.html#JsonNode"/>
     <keyword type="macro" name="JSON_NODE_TYPE()" link="json-glib-JSON-Node.html#JSON-NODE-TYPE:CAPS"/>
     <keyword type="macro" name="JSON_NODE_HOLDS()" link="json-glib-JSON-Node.html#JSON-NODE-HOLDS:CAPS" since="0.10"/>
     <keyword type="macro" name="JSON_NODE_HOLDS_VALUE()" link="json-glib-JSON-Node.html#JSON-NODE-HOLDS-VALUE:CAPS" since="0.10"/>
     <keyword type="macro" name="JSON_NODE_HOLDS_OBJECT()" link="json-glib-JSON-Node.html#JSON-NODE-HOLDS-OBJECT:CAPS" since="0.10"/>
     <keyword type="macro" name="JSON_NODE_HOLDS_ARRAY()" link="json-glib-JSON-Node.html#JSON-NODE-HOLDS-ARRAY:CAPS" since="0.10"/>
     <keyword type="macro" name="JSON_NODE_HOLDS_NULL()" link="json-glib-JSON-Node.html#JSON-NODE-HOLDS-NULL:CAPS" since="0.10"/>
-    <keyword type="function" name="json_node_alloc ()" link="json-glib-JSON-Node.html#json-node-alloc" since="0.16"/>
-    <keyword type="function" name="json_node_init ()" link="json-glib-JSON-Node.html#json-node-init" since="0.16"/>
-    <keyword type="function" name="json_node_init_int ()" link="json-glib-JSON-Node.html#json-node-init-int" since="0.16"/>
-    <keyword type="function" name="json_node_init_double ()" link="json-glib-JSON-Node.html#json-node-init-double" since="0.16"/>
-    <keyword type="function" name="json_node_init_boolean ()" link="json-glib-JSON-Node.html#json-node-init-boolean" since="0.16"/>
-    <keyword type="function" name="json_node_init_string ()" link="json-glib-JSON-Node.html#json-node-init-string" since="0.16"/>
-    <keyword type="function" name="json_node_init_null ()" link="json-glib-JSON-Node.html#json-node-init-null" since="0.16"/>
-    <keyword type="function" name="json_node_init_object ()" link="json-glib-JSON-Node.html#json-node-init-object" since="0.16"/>
-    <keyword type="function" name="json_node_init_array ()" link="json-glib-JSON-Node.html#json-node-init-array" since="0.16"/>
-    <keyword type="function" name="json_node_new ()" link="json-glib-JSON-Node.html#json-node-new"/>
-    <keyword type="function" name="json_node_copy ()" link="json-glib-JSON-Node.html#json-node-copy"/>
-    <keyword type="function" name="json_node_free ()" link="json-glib-JSON-Node.html#json-node-free"/>
-    <keyword type="function" name="json_node_set_array ()" link="json-glib-JSON-Node.html#json-node-set-array"/>
-    <keyword type="function" name="json_node_take_array ()" link="json-glib-JSON-Node.html#json-node-take-array"/>
-    <keyword type="function" name="json_node_get_array ()" link="json-glib-JSON-Node.html#json-node-get-array"/>
-    <keyword type="function" name="json_node_dup_array ()" link="json-glib-JSON-Node.html#json-node-dup-array"/>
-    <keyword type="function" name="json_node_set_object ()" link="json-glib-JSON-Node.html#json-node-set-object"/>
-    <keyword type="function" name="json_node_take_object ()" link="json-glib-JSON-Node.html#json-node-take-object"/>
-    <keyword type="function" name="json_node_get_object ()" link="json-glib-JSON-Node.html#json-node-get-object"/>
-    <keyword type="function" name="json_node_dup_object ()" link="json-glib-JSON-Node.html#json-node-dup-object"/>
-    <keyword type="function" name="json_node_set_value ()" link="json-glib-JSON-Node.html#json-node-set-value"/>
-    <keyword type="function" name="json_node_get_value ()" link="json-glib-JSON-Node.html#json-node-get-value"/>
-    <keyword type="function" name="json_node_set_boolean ()" link="json-glib-JSON-Node.html#json-node-set-boolean"/>
-    <keyword type="function" name="json_node_get_boolean ()" link="json-glib-JSON-Node.html#json-node-get-boolean"/>
-    <keyword type="function" name="json_node_set_double ()" link="json-glib-JSON-Node.html#json-node-set-double"/>
-    <keyword type="function" name="json_node_get_double ()" link="json-glib-JSON-Node.html#json-node-get-double"/>
-    <keyword type="function" name="json_node_set_int ()" link="json-glib-JSON-Node.html#json-node-set-int"/>
-    <keyword type="function" name="json_node_get_int ()" link="json-glib-JSON-Node.html#json-node-get-int"/>
-    <keyword type="function" name="json_node_set_string ()" link="json-glib-JSON-Node.html#json-node-set-string"/>
-    <keyword type="function" name="json_node_get_string ()" link="json-glib-JSON-Node.html#json-node-get-string"/>
-    <keyword type="function" name="json_node_dup_string ()" link="json-glib-JSON-Node.html#json-node-dup-string"/>
-    <keyword type="function" name="json_node_set_parent ()" link="json-glib-JSON-Node.html#json-node-set-parent" since="0.8"/>
-    <keyword type="function" name="json_node_get_parent ()" link="json-glib-JSON-Node.html#json-node-get-parent"/>
-    <keyword type="function" name="json_node_type_name ()" link="json-glib-JSON-Node.html#json-node-type-name"/>
-    <keyword type="function" name="json_node_get_value_type ()" link="json-glib-JSON-Node.html#json-node-get-value-type" since="0.4"/>
-    <keyword type="function" name="json_node_get_node_type ()" link="json-glib-JSON-Node.html#json-node-get-node-type" since="0.8"/>
-    <keyword type="function" name="json_node_is_null ()" link="json-glib-JSON-Node.html#json-node-is-null" since="0.8"/>
-    <keyword type="struct" name="JsonArray" link="json-glib-JSON-Array.html#JsonArray"/>
-    <keyword type="function" name="json_array_new ()" link="json-glib-JSON-Array.html#json-array-new"/>
-    <keyword type="function" name="json_array_sized_new ()" link="json-glib-JSON-Array.html#json-array-sized-new"/>
-    <keyword type="function" name="json_array_ref ()" link="json-glib-JSON-Array.html#json-array-ref"/>
-    <keyword type="function" name="json_array_unref ()" link="json-glib-JSON-Array.html#json-array-unref"/>
-    <keyword type="function" name="json_array_add_element ()" link="json-glib-JSON-Array.html#json-array-add-element"/>
-    <keyword type="function" name="json_array_get_element ()" link="json-glib-JSON-Array.html#json-array-get-element"/>
-    <keyword type="function" name="json_array_dup_element ()" link="json-glib-JSON-Array.html#json-array-dup-element" since="0.6"/>
-    <keyword type="function" name="json_array_get_elements ()" link="json-glib-JSON-Array.html#json-array-get-elements"/>
-    <keyword type="function" name="json_array_get_length ()" link="json-glib-JSON-Array.html#json-array-get-length"/>
-    <keyword type="function" name="json_array_remove_element ()" link="json-glib-JSON-Array.html#json-array-remove-element"/>
-    <keyword type="function" name="JsonArrayForeach ()" link="json-glib-JSON-Array.html#JsonArrayForeach" since="0.8"/>
-    <keyword type="function" name="json_array_foreach_element ()" link="json-glib-JSON-Array.html#json-array-foreach-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_array_element ()" link="json-glib-JSON-Array.html#json-array-add-array-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_array_element ()" link="json-glib-JSON-Array.html#json-array-get-array-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_boolean_element ()" link="json-glib-JSON-Array.html#json-array-add-boolean-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_boolean_element ()" link="json-glib-JSON-Array.html#json-array-get-boolean-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_double_element ()" link="json-glib-JSON-Array.html#json-array-add-double-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_double_element ()" link="json-glib-JSON-Array.html#json-array-get-double-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_int_element ()" link="json-glib-JSON-Array.html#json-array-add-int-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_int_element ()" link="json-glib-JSON-Array.html#json-array-get-int-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_null_element ()" link="json-glib-JSON-Array.html#json-array-add-null-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_null_element ()" link="json-glib-JSON-Array.html#json-array-get-null-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_object_element ()" link="json-glib-JSON-Array.html#json-array-add-object-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_object_element ()" link="json-glib-JSON-Array.html#json-array-get-object-element" since="0.8"/>
-    <keyword type="function" name="json_array_add_string_element ()" link="json-glib-JSON-Array.html#json-array-add-string-element" since="0.8"/>
-    <keyword type="function" name="json_array_get_string_element ()" link="json-glib-JSON-Array.html#json-array-get-string-element" since="0.8"/>
-    <keyword type="struct" name="JsonObject" link="json-glib-JSON-Object.html#JsonObject"/>
-    <keyword type="function" name="json_object_new ()" link="json-glib-JSON-Object.html#json-object-new"/>
-    <keyword type="function" name="json_object_ref ()" link="json-glib-JSON-Object.html#json-object-ref"/>
-    <keyword type="function" name="json_object_unref ()" link="json-glib-JSON-Object.html#json-object-unref"/>
-    <keyword type="function" name="json_object_add_member ()" link="json-glib-JSON-Object.html#json-object-add-member" deprecated="0.8: Use json_object_set_member() instead"/>
-    <keyword type="function" name="json_object_set_member ()" link="json-glib-JSON-Object.html#json-object-set-member" since="0.8"/>
-    <keyword type="function" name="json_object_has_member ()" link="json-glib-JSON-Object.html#json-object-has-member"/>
-    <keyword type="function" name="json_object_get_member ()" link="json-glib-JSON-Object.html#json-object-get-member"/>
-    <keyword type="function" name="json_object_dup_member ()" link="json-glib-JSON-Object.html#json-object-dup-member" since="0.6"/>
-    <keyword type="function" name="json_object_get_members ()" link="json-glib-JSON-Object.html#json-object-get-members"/>
-    <keyword type="function" name="json_object_get_values ()" link="json-glib-JSON-Object.html#json-object-get-values"/>
-    <keyword type="function" name="json_object_get_size ()" link="json-glib-JSON-Object.html#json-object-get-size"/>
-    <keyword type="function" name="json_object_remove_member ()" link="json-glib-JSON-Object.html#json-object-remove-member"/>
-    <keyword type="function" name="JsonObjectForeach ()" link="json-glib-JSON-Object.html#JsonObjectForeach" since="0.8"/>
-    <keyword type="function" name="json_object_foreach_member ()" link="json-glib-JSON-Object.html#json-object-foreach-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_array_member ()" link="json-glib-JSON-Object.html#json-object-set-array-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_array_member ()" link="json-glib-JSON-Object.html#json-object-get-array-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_boolean_member ()" link="json-glib-JSON-Object.html#json-object-set-boolean-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_boolean_member ()" link="json-glib-JSON-Object.html#json-object-get-boolean-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_double_member ()" link="json-glib-JSON-Object.html#json-object-set-double-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_double_member ()" link="json-glib-JSON-Object.html#json-object-get-double-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_int_member ()" link="json-glib-JSON-Object.html#json-object-set-int-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_int_member ()" link="json-glib-JSON-Object.html#json-object-get-int-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_null_member ()" link="json-glib-JSON-Object.html#json-object-set-null-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_null_member ()" link="json-glib-JSON-Object.html#json-object-get-null-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_object_member ()" link="json-glib-JSON-Object.html#json-object-set-object-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_object_member ()" link="json-glib-JSON-Object.html#json-object-get-object-member" since="0.8"/>
-    <keyword type="function" name="json_object_set_string_member ()" link="json-glib-JSON-Object.html#json-object-set-string-member" since="0.8"/>
-    <keyword type="function" name="json_object_get_string_member ()" link="json-glib-JSON-Object.html#json-object-get-string-member" since="0.8"/>
+    <keyword type="function" name="json_node_alloc ()" link="json-glib-JSON-Node.html#json-node-alloc" since="0.16"/>
+    <keyword type="function" name="json_node_init ()" link="json-glib-JSON-Node.html#json-node-init" since="0.16"/>
+    <keyword type="function" name="json_node_init_int ()" link="json-glib-JSON-Node.html#json-node-init-int" since="0.16"/>
+    <keyword type="function" name="json_node_init_double ()" link="json-glib-JSON-Node.html#json-node-init-double" since="0.16"/>
+    <keyword type="function" name="json_node_init_boolean ()" link="json-glib-JSON-Node.html#json-node-init-boolean" since="0.16"/>
+    <keyword type="function" name="json_node_init_string ()" link="json-glib-JSON-Node.html#json-node-init-string" since="0.16"/>
+    <keyword type="function" name="json_node_init_null ()" link="json-glib-JSON-Node.html#json-node-init-null" since="0.16"/>
+    <keyword type="function" name="json_node_init_object ()" link="json-glib-JSON-Node.html#json-node-init-object" since="0.16"/>
+    <keyword type="function" name="json_node_init_array ()" link="json-glib-JSON-Node.html#json-node-init-array" since="0.16"/>
+    <keyword type="function" name="json_node_new ()" link="json-glib-JSON-Node.html#json-node-new"/>
+    <keyword type="function" name="json_node_copy ()" link="json-glib-JSON-Node.html#json-node-copy"/>
+    <keyword type="function" name="json_node_free ()" link="json-glib-JSON-Node.html#json-node-free"/>
+    <keyword type="function" name="json_node_ref ()" link="json-glib-JSON-Node.html#json-node-ref" since="1.2"/>
+    <keyword type="function" name="json_node_unref ()" link="json-glib-JSON-Node.html#json-node-unref" since="1.2"/>
+    <keyword type="function" name="json_node_is_immutable ()" link="json-glib-JSON-Node.html#json-node-is-immutable" since="1.2"/>
+    <keyword type="function" name="json_node_seal ()" link="json-glib-JSON-Node.html#json-node-seal" since="1.2"/>
+    <keyword type="function" name="json_node_hash ()" link="json-glib-JSON-Node.html#json-node-hash" since="1.2"/>
+    <keyword type="function" name="json_node_equal ()" link="json-glib-JSON-Node.html#json-node-equal" since="1.2"/>
+    <keyword type="function" name="json_node_set_array ()" link="json-glib-JSON-Node.html#json-node-set-array"/>
+    <keyword type="function" name="json_node_take_array ()" link="json-glib-JSON-Node.html#json-node-take-array"/>
+    <keyword type="function" name="json_node_get_array ()" link="json-glib-JSON-Node.html#json-node-get-array"/>
+    <keyword type="function" name="json_node_dup_array ()" link="json-glib-JSON-Node.html#json-node-dup-array"/>
+    <keyword type="function" name="json_node_set_object ()" link="json-glib-JSON-Node.html#json-node-set-object"/>
+    <keyword type="function" name="json_node_take_object ()" link="json-glib-JSON-Node.html#json-node-take-object"/>
+    <keyword type="function" name="json_node_get_object ()" link="json-glib-JSON-Node.html#json-node-get-object"/>
+    <keyword type="function" name="json_node_dup_object ()" link="json-glib-JSON-Node.html#json-node-dup-object"/>
+    <keyword type="function" name="json_node_set_value ()" link="json-glib-JSON-Node.html#json-node-set-value"/>
+    <keyword type="function" name="json_node_get_value ()" link="json-glib-JSON-Node.html#json-node-get-value"/>
+    <keyword type="function" name="json_node_set_boolean ()" link="json-glib-JSON-Node.html#json-node-set-boolean"/>
+    <keyword type="function" name="json_node_get_boolean ()" link="json-glib-JSON-Node.html#json-node-get-boolean"/>
+    <keyword type="function" name="json_node_set_double ()" link="json-glib-JSON-Node.html#json-node-set-double"/>
+    <keyword type="function" name="json_node_get_double ()" link="json-glib-JSON-Node.html#json-node-get-double"/>
+    <keyword type="function" name="json_node_set_int ()" link="json-glib-JSON-Node.html#json-node-set-int"/>
+    <keyword type="function" name="json_node_get_int ()" link="json-glib-JSON-Node.html#json-node-get-int"/>
+    <keyword type="function" name="json_node_set_string ()" link="json-glib-JSON-Node.html#json-node-set-string"/>
+    <keyword type="function" name="json_node_get_string ()" link="json-glib-JSON-Node.html#json-node-get-string"/>
+    <keyword type="function" name="json_node_dup_string ()" link="json-glib-JSON-Node.html#json-node-dup-string"/>
+    <keyword type="function" name="json_node_set_parent ()" link="json-glib-JSON-Node.html#json-node-set-parent" since="0.8"/>
+    <keyword type="function" name="json_node_get_parent ()" link="json-glib-JSON-Node.html#json-node-get-parent"/>
+    <keyword type="function" name="json_node_type_name ()" link="json-glib-JSON-Node.html#json-node-type-name"/>
+    <keyword type="function" name="json_node_get_value_type ()" link="json-glib-JSON-Node.html#json-node-get-value-type" since="0.4"/>
+    <keyword type="function" name="json_node_get_node_type ()" link="json-glib-JSON-Node.html#json-node-get-node-type" since="0.8"/>
+    <keyword type="function" name="json_node_is_null ()" link="json-glib-JSON-Node.html#json-node-is-null" since="0.8"/>
+    <keyword type="function" name="json_string_hash ()" link="json-glib-JSON-Node.html#json-string-hash" since="1.2"/>
+    <keyword type="function" name="json_string_equal ()" link="json-glib-JSON-Node.html#json-string-equal" since="1.2"/>
+    <keyword type="function" name="json_string_compare ()" link="json-glib-JSON-Node.html#json-string-compare" since="1.2"/>
+    <keyword type="enum" name="enum JsonNodeType" link="json-glib-JSON-Node.html#JsonNodeType"/>
+    <keyword type="struct" name="JsonNode" link="json-glib-JSON-Node.html#JsonNode-struct"/>
+    <keyword type="function" name="json_array_new ()" link="json-glib-JSON-Array.html#json-array-new"/>
+    <keyword type="function" name="json_array_sized_new ()" link="json-glib-JSON-Array.html#json-array-sized-new"/>
+    <keyword type="function" name="json_array_ref ()" link="json-glib-JSON-Array.html#json-array-ref"/>
+    <keyword type="function" name="json_array_unref ()" link="json-glib-JSON-Array.html#json-array-unref"/>
+    <keyword type="function" name="json_array_seal ()" link="json-glib-JSON-Array.html#json-array-seal" since="1.2"/>
+    <keyword type="function" name="json_array_is_immutable ()" link="json-glib-JSON-Array.html#json-array-is-immutable" since="1.2"/>
+    <keyword type="function" name="json_array_hash ()" link="json-glib-JSON-Array.html#json-array-hash" since="1.2"/>
+    <keyword type="function" name="json_array_equal ()" link="json-glib-JSON-Array.html#json-array-equal" since="1.2"/>
+    <keyword type="function" name="json_array_add_element ()" link="json-glib-JSON-Array.html#json-array-add-element"/>
+    <keyword type="function" name="json_array_get_element ()" link="json-glib-JSON-Array.html#json-array-get-element"/>
+    <keyword type="function" name="json_array_dup_element ()" link="json-glib-JSON-Array.html#json-array-dup-element" since="0.6"/>
+    <keyword type="function" name="json_array_get_elements ()" link="json-glib-JSON-Array.html#json-array-get-elements"/>
+    <keyword type="function" name="json_array_get_length ()" link="json-glib-JSON-Array.html#json-array-get-length"/>
+    <keyword type="function" name="json_array_remove_element ()" link="json-glib-JSON-Array.html#json-array-remove-element"/>
+    <keyword type="function" name="JsonArrayForeach ()" link="json-glib-JSON-Array.html#JsonArrayForeach" since="0.8"/>
+    <keyword type="function" name="json_array_foreach_element ()" link="json-glib-JSON-Array.html#json-array-foreach-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_array_element ()" link="json-glib-JSON-Array.html#json-array-add-array-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_array_element ()" link="json-glib-JSON-Array.html#json-array-get-array-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_boolean_element ()" link="json-glib-JSON-Array.html#json-array-add-boolean-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_boolean_element ()" link="json-glib-JSON-Array.html#json-array-get-boolean-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_double_element ()" link="json-glib-JSON-Array.html#json-array-add-double-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_double_element ()" link="json-glib-JSON-Array.html#json-array-get-double-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_int_element ()" link="json-glib-JSON-Array.html#json-array-add-int-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_int_element ()" link="json-glib-JSON-Array.html#json-array-get-int-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_null_element ()" link="json-glib-JSON-Array.html#json-array-add-null-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_null_element ()" link="json-glib-JSON-Array.html#json-array-get-null-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_object_element ()" link="json-glib-JSON-Array.html#json-array-add-object-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_object_element ()" link="json-glib-JSON-Array.html#json-array-get-object-element" since="0.8"/>
+    <keyword type="function" name="json_array_add_string_element ()" link="json-glib-JSON-Array.html#json-array-add-string-element" since="0.8"/>
+    <keyword type="function" name="json_array_get_string_element ()" link="json-glib-JSON-Array.html#json-array-get-string-element" since="0.8"/>
+    <keyword type="struct" name="JsonArray" link="json-glib-JSON-Array.html#JsonArray-struct"/>
+    <keyword type="function" name="json_object_new ()" link="json-glib-JSON-Object.html#json-object-new"/>
+    <keyword type="function" name="json_object_ref ()" link="json-glib-JSON-Object.html#json-object-ref"/>
+    <keyword type="function" name="json_object_unref ()" link="json-glib-JSON-Object.html#json-object-unref"/>
+    <keyword type="function" name="json_object_seal ()" link="json-glib-JSON-Object.html#json-object-seal" since="1.2"/>
+    <keyword type="function" name="json_object_is_immutable ()" link="json-glib-JSON-Object.html#json-object-is-immutable" since="1.2"/>
+    <keyword type="function" name="json_object_hash ()" link="json-glib-JSON-Object.html#json-object-hash" since="1.2"/>
+    <keyword type="function" name="json_object_equal ()" link="json-glib-JSON-Object.html#json-object-equal" since="1.2"/>
+    <keyword type="function" name="json_object_add_member ()" link="json-glib-JSON-Object.html#json-object-add-member" deprecated="0.8: Use json_object_set_member() instead"/>
+    <keyword type="function" name="json_object_set_member ()" link="json-glib-JSON-Object.html#json-object-set-member" since="0.8"/>
+    <keyword type="function" name="json_object_has_member ()" link="json-glib-JSON-Object.html#json-object-has-member"/>
+    <keyword type="function" name="json_object_get_member ()" link="json-glib-JSON-Object.html#json-object-get-member"/>
+    <keyword type="function" name="json_object_dup_member ()" link="json-glib-JSON-Object.html#json-object-dup-member" since="0.6"/>
+    <keyword type="function" name="json_object_get_members ()" link="json-glib-JSON-Object.html#json-object-get-members"/>
+    <keyword type="function" name="json_object_get_values ()" link="json-glib-JSON-Object.html#json-object-get-values"/>
+    <keyword type="function" name="json_object_get_size ()" link="json-glib-JSON-Object.html#json-object-get-size"/>
+    <keyword type="function" name="json_object_remove_member ()" link="json-glib-JSON-Object.html#json-object-remove-member"/>
+    <keyword type="function" name="JsonObjectForeach ()" link="json-glib-JSON-Object.html#JsonObjectForeach" since="0.8"/>
+    <keyword type="function" name="json_object_foreach_member ()" link="json-glib-JSON-Object.html#json-object-foreach-member" since="0.8"/>
+    <keyword type="function" name="json_object_iter_init ()" link="json-glib-JSON-Object.html#json-object-iter-init" since="1.2"/>
+    <keyword type="function" name="json_object_iter_next ()" link="json-glib-JSON-Object.html#json-object-iter-next" since="1.2"/>
+    <keyword type="function" name="json_object_set_array_member ()" link="json-glib-JSON-Object.html#json-object-set-array-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_array_member ()" link="json-glib-JSON-Object.html#json-object-get-array-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_boolean_member ()" link="json-glib-JSON-Object.html#json-object-set-boolean-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_boolean_member ()" link="json-glib-JSON-Object.html#json-object-get-boolean-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_double_member ()" link="json-glib-JSON-Object.html#json-object-set-double-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_double_member ()" link="json-glib-JSON-Object.html#json-object-get-double-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_int_member ()" link="json-glib-JSON-Object.html#json-object-set-int-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_int_member ()" link="json-glib-JSON-Object.html#json-object-get-int-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_null_member ()" link="json-glib-JSON-Object.html#json-object-set-null-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_null_member ()" link="json-glib-JSON-Object.html#json-object-get-null-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_object_member ()" link="json-glib-JSON-Object.html#json-object-set-object-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_object_member ()" link="json-glib-JSON-Object.html#json-object-get-object-member" since="0.8"/>
+    <keyword type="function" name="json_object_set_string_member ()" link="json-glib-JSON-Object.html#json-object-set-string-member" since="0.8"/>
+    <keyword type="function" name="json_object_get_string_member ()" link="json-glib-JSON-Object.html#json-object-get-string-member" since="0.8"/>
+    <keyword type="struct" name="JsonObject" link="json-glib-JSON-Object.html#JsonObject-struct"/>
+    <keyword type="struct" name="JsonObjectIter" link="json-glib-JSON-Object.html#JsonObjectIter" since="1.2"/>
+    <keyword type="function" name="json_parser_new ()" link="JsonParser.html#json-parser-new"/>
+    <keyword type="function" name="json_parser_new_immutable ()" link="JsonParser.html#json-parser-new-immutable" since="1.2"/>
+    <keyword type="function" name="json_parser_load_from_file ()" link="JsonParser.html#json-parser-load-from-file"/>
+    <keyword type="function" name="json_parser_load_from_data ()" link="JsonParser.html#json-parser-load-from-data"/>
+    <keyword type="function" name="json_parser_load_from_stream ()" link="JsonParser.html#json-parser-load-from-stream" since="0.12"/>
+    <keyword type="function" name="json_parser_load_from_stream_async ()" link="JsonParser.html#json-parser-load-from-stream-async" since="0.12"/>
+    <keyword type="function" name="json_parser_load_from_stream_finish ()" link="JsonParser.html#json-parser-load-from-stream-finish" since="0.12"/>
+    <keyword type="function" name="json_parser_get_root ()" link="JsonParser.html#json-parser-get-root"/>
+    <keyword type="function" name="json_parser_get_current_line ()" link="JsonParser.html#json-parser-get-current-line"/>
+    <keyword type="function" name="json_parser_get_current_pos ()" link="JsonParser.html#json-parser-get-current-pos"/>
+    <keyword type="function" name="json_parser_has_assignment ()" link="JsonParser.html#json-parser-has-assignment" since="0.4"/>
     <keyword type="enum" name="enum JsonParserError" link="JsonParser.html#JsonParserError"/>
     <keyword type="struct" name="struct JsonParser" link="JsonParser.html#JsonParser-struct"/>
     <keyword type="struct" name="struct JsonParserClass" link="JsonParser.html#JsonParserClass"/>
-    <keyword type="function" name="json_parser_new ()" link="JsonParser.html#json-parser-new"/>
-    <keyword type="function" name="json_parser_load_from_file ()" link="JsonParser.html#json-parser-load-from-file"/>
-    <keyword type="function" name="json_parser_load_from_data ()" link="JsonParser.html#json-parser-load-from-data"/>
-    <keyword type="function" name="json_parser_load_from_stream ()" link="JsonParser.html#json-parser-load-from-stream" since="0.12"/>
-    <keyword type="function" name="json_parser_load_from_stream_async ()" link="JsonParser.html#json-parser-load-from-stream-async" since="0.12"/>
-    <keyword type="function" name="json_parser_load_from_stream_finish ()" link="JsonParser.html#json-parser-load-from-stream-finish" since="0.12"/>
-    <keyword type="function" name="json_parser_get_root ()" link="JsonParser.html#json-parser-get-root"/>
-    <keyword type="function" name="json_parser_get_current_line ()" link="JsonParser.html#json-parser-get-current-line"/>
-    <keyword type="function" name="json_parser_get_current_pos ()" link="JsonParser.html#json-parser-get-current-pos"/>
-    <keyword type="function" name="json_parser_has_assignment ()" link="JsonParser.html#json-parser-has-assignment" since="0.4"/>
-    <keyword type="signal" name="The &quot;array-element&quot; signal" link="JsonParser.html#JsonParser-array-element"/>
-    <keyword type="signal" name="The &quot;array-end&quot; signal" link="JsonParser.html#JsonParser-array-end"/>
-    <keyword type="signal" name="The &quot;array-start&quot; signal" link="JsonParser.html#JsonParser-array-start"/>
-    <keyword type="signal" name="The &quot;error&quot; signal" link="JsonParser.html#JsonParser-error"/>
-    <keyword type="signal" name="The &quot;object-end&quot; signal" link="JsonParser.html#JsonParser-object-end"/>
-    <keyword type="signal" name="The &quot;object-member&quot; signal" link="JsonParser.html#JsonParser-object-member"/>
-    <keyword type="signal" name="The &quot;object-start&quot; signal" link="JsonParser.html#JsonParser-object-start"/>
-    <keyword type="signal" name="The &quot;parse-end&quot; signal" link="JsonParser.html#JsonParser-parse-end"/>
-    <keyword type="signal" name="The &quot;parse-start&quot; signal" link="JsonParser.html#JsonParser-parse-start"/>
+    <keyword type="property" name="The “immutable” property" link="JsonParser.html#JsonParser--immutable"/>
+    <keyword type="signal" name="The “array-element” signal" link="JsonParser.html#JsonParser-array-element"/>
+    <keyword type="signal" name="The “array-end” signal" link="JsonParser.html#JsonParser-array-end"/>
+    <keyword type="signal" name="The “array-start” signal" link="JsonParser.html#JsonParser-array-start"/>
+    <keyword type="signal" name="The “error” signal" link="JsonParser.html#JsonParser-error"/>
+    <keyword type="signal" name="The “object-end” signal" link="JsonParser.html#JsonParser-object-end"/>
+    <keyword type="signal" name="The “object-member” signal" link="JsonParser.html#JsonParser-object-member"/>
+    <keyword type="signal" name="The “object-start” signal" link="JsonParser.html#JsonParser-object-start"/>
+    <keyword type="signal" name="The “parse-end” signal" link="JsonParser.html#JsonParser-parse-end"/>
+    <keyword type="signal" name="The “parse-start” signal" link="JsonParser.html#JsonParser-parse-start"/>
+    <keyword type="function" name="json_reader_new ()" link="JsonReader.html#json-reader-new" since="0.12"/>
+    <keyword type="function" name="json_reader_set_root ()" link="JsonReader.html#json-reader-set-root" since="0.12"/>
+    <keyword type="function" name="json_reader_read_element ()" link="JsonReader.html#json-reader-read-element" since="0.12"/>
+    <keyword type="function" name="json_reader_end_element ()" link="JsonReader.html#json-reader-end-element" since="0.12"/>
+    <keyword type="function" name="json_reader_is_array ()" link="JsonReader.html#json-reader-is-array" since="0.12"/>
+    <keyword type="function" name="json_reader_count_elements ()" link="JsonReader.html#json-reader-count-elements" since="0.12"/>
+    <keyword type="function" name="json_reader_read_member ()" link="JsonReader.html#json-reader-read-member" since="0.12"/>
+    <keyword type="function" name="json_reader_end_member ()" link="JsonReader.html#json-reader-end-member" since="0.12"/>
+    <keyword type="function" name="json_reader_is_object ()" link="JsonReader.html#json-reader-is-object" since="0.12"/>
+    <keyword type="function" name="json_reader_count_members ()" link="JsonReader.html#json-reader-count-members" since="0.12"/>
+    <keyword type="function" name="json_reader_list_members ()" link="JsonReader.html#json-reader-list-members" since="0.14"/>
+    <keyword type="function" name="json_reader_get_member_name ()" link="JsonReader.html#json-reader-get-member-name" since="0.14"/>
+    <keyword type="function" name="json_reader_is_value ()" link="JsonReader.html#json-reader-is-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_value ()" link="JsonReader.html#json-reader-get-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_int_value ()" link="JsonReader.html#json-reader-get-int-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_double_value ()" link="JsonReader.html#json-reader-get-double-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_string_value ()" link="JsonReader.html#json-reader-get-string-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_boolean_value ()" link="JsonReader.html#json-reader-get-boolean-value" since="0.12"/>
+    <keyword type="function" name="json_reader_get_null_value ()" link="JsonReader.html#json-reader-get-null-value" since="0.12"/>
+    <keyword type="macro" name="JSON_READER_ERROR" link="JsonReader.html#JSON-READER-ERROR:CAPS" since="0.12"/>
+    <keyword type="function" name="json_reader_get_error ()" link="JsonReader.html#json-reader-get-error" since="0.12"/>
     <keyword type="struct" name="struct JsonReader" link="JsonReader.html#JsonReader-struct"/>
     <keyword type="struct" name="struct JsonReaderClass" link="JsonReader.html#JsonReaderClass" since="0.12"/>
-    <keyword type="function" name="json_reader_new ()" link="JsonReader.html#json-reader-new" since="0.12"/>
-    <keyword type="function" name="json_reader_set_root ()" link="JsonReader.html#json-reader-set-root" since="0.12"/>
-    <keyword type="function" name="json_reader_read_element ()" link="JsonReader.html#json-reader-read-element" since="0.12"/>
-    <keyword type="function" name="json_reader_end_element ()" link="JsonReader.html#json-reader-end-element" since="0.12"/>
-    <keyword type="function" name="json_reader_is_array ()" link="JsonReader.html#json-reader-is-array" since="0.12"/>
-    <keyword type="function" name="json_reader_count_elements ()" link="JsonReader.html#json-reader-count-elements" since="0.12"/>
-    <keyword type="function" name="json_reader_read_member ()" link="JsonReader.html#json-reader-read-member" since="0.12"/>
-    <keyword type="function" name="json_reader_end_member ()" link="JsonReader.html#json-reader-end-member" since="0.12"/>
-    <keyword type="function" name="json_reader_is_object ()" link="JsonReader.html#json-reader-is-object" since="0.12"/>
-    <keyword type="function" name="json_reader_count_members ()" link="JsonReader.html#json-reader-count-members" since="0.12"/>
-    <keyword type="function" name="json_reader_list_members ()" link="JsonReader.html#json-reader-list-members" since="0.14"/>
-    <keyword type="function" name="json_reader_get_member_name ()" link="JsonReader.html#json-reader-get-member-name" since="0.14"/>
-    <keyword type="function" name="json_reader_is_value ()" link="JsonReader.html#json-reader-is-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_value ()" link="JsonReader.html#json-reader-get-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_int_value ()" link="JsonReader.html#json-reader-get-int-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_double_value ()" link="JsonReader.html#json-reader-get-double-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_string_value ()" link="JsonReader.html#json-reader-get-string-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_boolean_value ()" link="JsonReader.html#json-reader-get-boolean-value" since="0.12"/>
-    <keyword type="function" name="json_reader_get_null_value ()" link="JsonReader.html#json-reader-get-null-value" since="0.12"/>
     <keyword type="enum" name="enum JsonReaderError" link="JsonReader.html#JsonReaderError" since="0.12"/>
-    <keyword type="macro" name="JSON_READER_ERROR" link="JsonReader.html#JSON-READER-ERROR:CAPS" since="0.12"/>
-    <keyword type="function" name="json_reader_get_error ()" link="JsonReader.html#json-reader-get-error" since="0.12"/>
-    <keyword type="property" name="The &quot;root&quot; property" link="JsonReader.html#JsonReader--root"/>
-    <keyword type="" name="Syntax of the JSONPath expressions" link="JsonPath.html#json-path-syntax"/>
+    <keyword type="property" name="The “root” property" link="JsonReader.html#JsonReader--root"/>
+    <keyword type="function" name="json_path_new ()" link="JsonPath.html#json-path-new" since="0.14"/>
+    <keyword type="macro" name="JSON_PATH_ERROR" link="JsonPath.html#JSON-PATH-ERROR:CAPS" since="0.14"/>
+    <keyword type="function" name="json_path_compile ()" link="JsonPath.html#json-path-compile" since="0.14"/>
+    <keyword type="function" name="json_path_match ()" link="JsonPath.html#json-path-match" since="0.14"/>
+    <keyword type="function" name="json_path_query ()" link="JsonPath.html#json-path-query" since="0.14"/>
     <keyword type="struct" name="JsonPath" link="JsonPath.html#JsonPath-struct"/>
     <keyword type="struct" name="JsonPathClass" link="JsonPath.html#JsonPathClass" since="0.14"/>
-    <keyword type="function" name="json_path_new ()" link="JsonPath.html#json-path-new" since="0.14"/>
-    <keyword type="macro" name="JSON_PATH_ERROR" link="JsonPath.html#JSON-PATH-ERROR:CAPS" since="0.14"/>
     <keyword type="enum" name="enum JsonPathError" link="JsonPath.html#JsonPathError" since="0.14"/>
-    <keyword type="function" name="json_path_compile ()" link="JsonPath.html#json-path-compile" since="0.14"/>
-    <keyword type="function" name="json_path_match ()" link="JsonPath.html#json-path-match" since="0.14"/>
-    <keyword type="function" name="json_path_query ()" link="JsonPath.html#json-path-query" since="0.14"/>
+    <keyword type="function" name="json_generator_new ()" link="JsonGenerator.html#json-generator-new"/>
+    <keyword type="function" name="json_generator_set_root ()" link="JsonGenerator.html#json-generator-set-root"/>
+    <keyword type="function" name="json_generator_get_root ()" link="JsonGenerator.html#json-generator-get-root" since="0.14"/>
+    <keyword type="function" name="json_generator_set_pretty ()" link="JsonGenerator.html#json-generator-set-pretty" since="0.14"/>
+    <keyword type="function" name="json_generator_get_pretty ()" link="JsonGenerator.html#json-generator-get-pretty" since="0.14"/>
+    <keyword type="function" name="json_generator_set_indent ()" link="JsonGenerator.html#json-generator-set-indent" since="0.14"/>
+    <keyword type="function" name="json_generator_get_indent ()" link="JsonGenerator.html#json-generator-get-indent" since="0.14"/>
+    <keyword type="function" name="json_generator_set_indent_char ()" link="JsonGenerator.html#json-generator-set-indent-char" since="0.14"/>
+    <keyword type="function" name="json_generator_get_indent_char ()" link="JsonGenerator.html#json-generator-get-indent-char" since="0.14"/>
+    <keyword type="function" name="json_generator_to_file ()" link="JsonGenerator.html#json-generator-to-file"/>
+    <keyword type="function" name="json_generator_to_data ()" link="JsonGenerator.html#json-generator-to-data"/>
+    <keyword type="function" name="json_generator_to_stream ()" link="JsonGenerator.html#json-generator-to-stream" since="0.12"/>
     <keyword type="struct" name="struct JsonGenerator" link="JsonGenerator.html#JsonGenerator-struct"/>
     <keyword type="struct" name="struct JsonGeneratorClass" link="JsonGenerator.html#JsonGeneratorClass"/>
-    <keyword type="function" name="json_generator_new ()" link="JsonGenerator.html#json-generator-new"/>
-    <keyword type="function" name="json_generator_set_root ()" link="JsonGenerator.html#json-generator-set-root"/>
-    <keyword type="function" name="json_generator_get_root ()" link="JsonGenerator.html#json-generator-get-root" since="0.14"/>
-    <keyword type="function" name="json_generator_set_pretty ()" link="JsonGenerator.html#json-generator-set-pretty" since="0.14"/>
-    <keyword type="function" name="json_generator_get_pretty ()" link="JsonGenerator.html#json-generator-get-pretty" since="0.14"/>
-    <keyword type="function" name="json_generator_set_indent ()" link="JsonGenerator.html#json-generator-set-indent" since="0.14"/>
-    <keyword type="function" name="json_generator_get_indent ()" link="JsonGenerator.html#json-generator-get-indent" since="0.14"/>
-    <keyword type="function" name="json_generator_set_indent_char ()" link="JsonGenerator.html#json-generator-set-indent-char" since="0.14"/>
-    <keyword type="function" name="json_generator_get_indent_char ()" link="JsonGenerator.html#json-generator-get-indent-char" since="0.14"/>
-    <keyword type="function" name="json_generator_to_file ()" link="JsonGenerator.html#json-generator-to-file"/>
-    <keyword type="function" name="json_generator_to_data ()" link="JsonGenerator.html#json-generator-to-data"/>
-    <keyword type="function" name="json_generator_to_stream ()" link="JsonGenerator.html#json-generator-to-stream" since="0.12"/>
-    <keyword type="property" name="The &quot;indent&quot; property" link="JsonGenerator.html#JsonGenerator--indent"/>
-    <keyword type="property" name="The &quot;indent-char&quot; property" link="JsonGenerator.html#JsonGenerator--indent-char"/>
-    <keyword type="property" name="The &quot;pretty&quot; property" link="JsonGenerator.html#JsonGenerator--pretty"/>
-    <keyword type="property" name="The &quot;root&quot; property" link="JsonGenerator.html#JsonGenerator--root"/>
+    <keyword type="property" name="The “indent” property" link="JsonGenerator.html#JsonGenerator--indent"/>
+    <keyword type="property" name="The “indent-char” property" link="JsonGenerator.html#JsonGenerator--indent-char"/>
+    <keyword type="property" name="The “pretty” property" link="JsonGenerator.html#JsonGenerator--pretty"/>
+    <keyword type="property" name="The “root” property" link="JsonGenerator.html#JsonGenerator--root"/>
+    <keyword type="function" name="json_builder_new ()" link="JsonBuilder.html#json-builder-new"/>
+    <keyword type="function" name="json_builder_new_immutable ()" link="JsonBuilder.html#json-builder-new-immutable" since="1.2"/>
+    <keyword type="function" name="json_builder_get_root ()" link="JsonBuilder.html#json-builder-get-root"/>
+    <keyword type="function" name="json_builder_reset ()" link="JsonBuilder.html#json-builder-reset"/>
+    <keyword type="function" name="json_builder_begin_array ()" link="JsonBuilder.html#json-builder-begin-array"/>
+    <keyword type="function" name="json_builder_end_array ()" link="JsonBuilder.html#json-builder-end-array"/>
+    <keyword type="function" name="json_builder_begin_object ()" link="JsonBuilder.html#json-builder-begin-object"/>
+    <keyword type="function" name="json_builder_set_member_name ()" link="JsonBuilder.html#json-builder-set-member-name"/>
+    <keyword type="function" name="json_builder_end_object ()" link="JsonBuilder.html#json-builder-end-object"/>
+    <keyword type="function" name="json_builder_add_value ()" link="JsonBuilder.html#json-builder-add-value"/>
+    <keyword type="function" name="json_builder_add_int_value ()" link="JsonBuilder.html#json-builder-add-int-value"/>
+    <keyword type="function" name="json_builder_add_double_value ()" link="JsonBuilder.html#json-builder-add-double-value"/>
+    <keyword type="function" name="json_builder_add_boolean_value ()" link="JsonBuilder.html#json-builder-add-boolean-value"/>
+    <keyword type="function" name="json_builder_add_string_value ()" link="JsonBuilder.html#json-builder-add-string-value"/>
+    <keyword type="function" name="json_builder_add_null_value ()" link="JsonBuilder.html#json-builder-add-null-value"/>
     <keyword type="struct" name="struct JsonBuilder" link="JsonBuilder.html#JsonBuilder-struct"/>
     <keyword type="struct" name="struct JsonBuilderClass" link="JsonBuilder.html#JsonBuilderClass" since="0.12"/>
-    <keyword type="function" name="json_builder_new ()" link="JsonBuilder.html#json-builder-new"/>
-    <keyword type="function" name="json_builder_get_root ()" link="JsonBuilder.html#json-builder-get-root"/>
-    <keyword type="function" name="json_builder_reset ()" link="JsonBuilder.html#json-builder-reset"/>
-    <keyword type="function" name="json_builder_begin_array ()" link="JsonBuilder.html#json-builder-begin-array"/>
-    <keyword type="function" name="json_builder_end_array ()" link="JsonBuilder.html#json-builder-end-array"/>
-    <keyword type="function" name="json_builder_begin_object ()" link="JsonBuilder.html#json-builder-begin-object"/>
-    <keyword type="function" name="json_builder_set_member_name ()" link="JsonBuilder.html#json-builder-set-member-name"/>
-    <keyword type="function" name="json_builder_end_object ()" link="JsonBuilder.html#json-builder-end-object"/>
-    <keyword type="function" name="json_builder_add_value ()" link="JsonBuilder.html#json-builder-add-value"/>
-    <keyword type="function" name="json_builder_add_int_value ()" link="JsonBuilder.html#json-builder-add-int-value"/>
-    <keyword type="function" name="json_builder_add_double_value ()" link="JsonBuilder.html#json-builder-add-double-value"/>
-    <keyword type="function" name="json_builder_add_boolean_value ()" link="JsonBuilder.html#json-builder-add-boolean-value"/>
-    <keyword type="function" name="json_builder_add_string_value ()" link="JsonBuilder.html#json-builder-add-string-value"/>
-    <keyword type="function" name="json_builder_add_null_value ()" link="JsonBuilder.html#json-builder-add-null-value"/>
-    <keyword type="function" name="json_gobject_serialize ()" link="json-glib-GObject-Serialization.html#json-gobject-serialize" since="0.10"/>
-    <keyword type="function" name="json_gobject_deserialize ()" link="json-glib-GObject-Serialization.html#json-gobject-deserialize" since="0.10"/>
-    <keyword type="function" name="json_gobject_to_data ()" link="json-glib-GObject-Serialization.html#json-gobject-to-data" since="0.10"/>
-    <keyword type="function" name="json_gobject_from_data ()" link="json-glib-GObject-Serialization.html#json-gobject-from-data" since="0.10"/>
-    <keyword type="function" name="json_construct_gobject ()" link="json-glib-GObject-Serialization.html#json-construct-gobject" deprecated="0.10: Use json_gobject_from_data() instead" since="0.4"/>
-    <keyword type="function" name="json_serialize_gobject ()" link="json-glib-GObject-Serialization.html#json-serialize-gobject" deprecated="0.10: Use json_gobject_to_data() instead"/>
+    <keyword type="property" name="The “immutable” property" link="JsonBuilder.html#JsonBuilder--immutable"/>
+    <keyword type="function" name="json_from_string ()" link="json-glib-Utility-API.html#json-from-string" since="1.2"/>
+    <keyword type="function" name="json_to_string ()" link="json-glib-Utility-API.html#json-to-string" since="1.2"/>
+    <keyword type="function" name="json_gobject_serialize ()" link="json-glib-GObject-Serialization.html#json-gobject-serialize" since="0.10"/>
+    <keyword type="function" name="json_gobject_deserialize ()" link="json-glib-GObject-Serialization.html#json-gobject-deserialize" since="0.10"/>
+    <keyword type="function" name="json_gobject_to_data ()" link="json-glib-GObject-Serialization.html#json-gobject-to-data" since="0.10"/>
+    <keyword type="function" name="json_gobject_from_data ()" link="json-glib-GObject-Serialization.html#json-gobject-from-data" since="0.10"/>
+    <keyword type="function" name="json_construct_gobject ()" link="json-glib-GObject-Serialization.html#json-construct-gobject" deprecated="0.10: Use json_gobject_from_data() instead" since="0.4"/>
+    <keyword type="function" name="json_serialize_gobject ()" link="json-glib-GObject-Serialization.html#json-serialize-gobject" deprecated="0.10: Use json_gobject_to_data() instead"/>
+    <keyword type="function" name="json_serializable_serialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-serialize-property"/>
+    <keyword type="function" name="json_serializable_deserialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-deserialize-property"/>
+    <keyword type="function" name="json_serializable_find_property ()" link="json-glib-Serializable-Interface.html#json-serializable-find-property" since="0.14"/>
+    <keyword type="function" name="json_serializable_get_property ()" link="json-glib-Serializable-Interface.html#json-serializable-get-property" since="0.14"/>
+    <keyword type="function" name="json_serializable_list_properties ()" link="json-glib-Serializable-Interface.html#json-serializable-list-properties" since="0.14"/>
+    <keyword type="function" name="json_serializable_set_property ()" link="json-glib-Serializable-Interface.html#json-serializable-set-property" since="0.14"/>
+    <keyword type="function" name="json_serializable_default_serialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" since="0.10"/>
+    <keyword type="function" name="json_serializable_default_deserialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" since="0.10"/>
     <keyword type="struct" name="struct JsonSerializableIface" link="json-glib-Serializable-Interface.html#JsonSerializableIface"/>
-    <keyword type="function" name="json_serializable_serialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-serialize-property"/>
-    <keyword type="function" name="json_serializable_deserialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-deserialize-property"/>
-    <keyword type="function" name="json_serializable_find_property ()" link="json-glib-Serializable-Interface.html#json-serializable-find-property" since="0.14"/>
-    <keyword type="function" name="json_serializable_get_property ()" link="json-glib-Serializable-Interface.html#json-serializable-get-property"/>
-    <keyword type="function" name="json_serializable_list_properties ()" link="json-glib-Serializable-Interface.html#json-serializable-list-properties" since="0.14"/>
-    <keyword type="function" name="json_serializable_set_property ()" link="json-glib-Serializable-Interface.html#json-serializable-set-property"/>
-    <keyword type="function" name="json_serializable_default_serialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-default-serialize-property" since="0.10"/>
-    <keyword type="function" name="json_serializable_default_deserialize_property ()" link="json-glib-Serializable-Interface.html#json-serializable-default-deserialize-property" since="0.10"/>
-    <keyword type="function" name="JsonBoxedSerializeFunc ()" link="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" since="0.10"/>
-    <keyword type="function" name="JsonBoxedDeserializeFunc ()" link="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" since="0.10"/>
-    <keyword type="function" name="json_boxed_register_serialize_func ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" since="0.10"/>
-    <keyword type="function" name="json_boxed_register_deserialize_func ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" since="0.10"/>
-    <keyword type="function" name="json_boxed_can_serialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" since="0.10"/>
-    <keyword type="function" name="json_boxed_can_deserialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" since="0.10"/>
-    <keyword type="function" name="json_boxed_serialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" since="0.10"/>
-    <keyword type="function" name="json_boxed_deserialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" since="0.10"/>
-    <keyword type="function" name="json_gvariant_serialize ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" since="0.14"/>
-    <keyword type="function" name="json_gvariant_serialize_data ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" since="0.14"/>
-    <keyword type="function" name="json_gvariant_deserialize ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" since="0.14"/>
-    <keyword type="function" name="json_gvariant_deserialize_data ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" since="0.14"/>
+    <keyword type="function" name="JsonBoxedSerializeFunc ()" link="json-glib-Boxed-Types-Serialization.html#JsonBoxedSerializeFunc" since="0.10"/>
+    <keyword type="function" name="JsonBoxedDeserializeFunc ()" link="json-glib-Boxed-Types-Serialization.html#JsonBoxedDeserializeFunc" since="0.10"/>
+    <keyword type="function" name="json_boxed_register_serialize_func ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-register-serialize-func" since="0.10"/>
+    <keyword type="function" name="json_boxed_register_deserialize_func ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-register-deserialize-func" since="0.10"/>
+    <keyword type="function" name="json_boxed_can_serialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-can-serialize" since="0.10"/>
+    <keyword type="function" name="json_boxed_can_deserialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-can-deserialize" since="0.10"/>
+    <keyword type="function" name="json_boxed_serialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-serialize" since="0.10"/>
+    <keyword type="function" name="json_boxed_deserialize ()" link="json-glib-Boxed-Types-Serialization.html#json-boxed-deserialize" since="0.10"/>
+    <keyword type="function" name="json_gvariant_serialize ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize" since="0.14"/>
+    <keyword type="function" name="json_gvariant_serialize_data ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-serialize-data" since="0.14"/>
+    <keyword type="function" name="json_gvariant_deserialize ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize" since="0.14"/>
+    <keyword type="function" name="json_gvariant_deserialize_data ()" link="json-glib-JSON-GVariant-Integration.html#json-gvariant-deserialize-data" since="0.14"/>
     <keyword type="macro" name="JSON_MAJOR_VERSION" link="json-glib-Versioning-information.html#JSON-MAJOR-VERSION:CAPS"/>
     <keyword type="macro" name="JSON_MINOR_VERSION" link="json-glib-Versioning-information.html#JSON-MINOR-VERSION:CAPS"/>
     <keyword type="macro" name="JSON_MICRO_VERSION" link="json-glib-Versioning-information.html#JSON-MICRO-VERSION:CAPS"/>
     <keyword type="macro" name="JSON_VERSION" link="json-glib-Versioning-information.html#JSON-VERSION:CAPS"/>
+    <keyword type="macro" name="JSON_CHECK_VERSION()" link="json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS"/>
+    <keyword type="macro" name="JSON_VERSION_MIN_REQUIRED" link="json-glib-Versioning-information.html#JSON-VERSION-MIN-REQUIRED:CAPS" since="1.0"/>
+    <keyword type="macro" name="JSON_VERSION_MAX_ALLOWED" link="json-glib-Versioning-information.html#JSON-VERSION-MAX-ALLOWED:CAPS" since="1.0"/>
     <keyword type="macro" name="JSON_VERSION_S" link="json-glib-Versioning-information.html#JSON-VERSION-S:CAPS"/>
     <keyword type="macro" name="JSON_VERSION_HEX" link="json-glib-Versioning-information.html#JSON-VERSION-HEX:CAPS"/>
-    <keyword type="macro" name="JSON_CHECK_VERSION()" link="json-glib-Versioning-information.html#JSON-CHECK-VERSION:CAPS"/>
     <keyword type="constant" name="JSON_NODE_OBJECT" link="json-glib-JSON-Node.html#JSON-NODE-OBJECT:CAPS"/>
     <keyword type="constant" name="JSON_NODE_ARRAY" link="json-glib-JSON-Node.html#JSON-NODE-ARRAY:CAPS"/>
     <keyword type="constant" name="JSON_NODE_VALUE" link="json-glib-JSON-Node.html#JSON-NODE-VALUE:CAPS"/>
     <keyword type="constant" name="JSON_PARSER_ERROR_MISSING_COLON" link="JsonParser.html#JSON-PARSER-ERROR-MISSING-COLON:CAPS"/>
     <keyword type="constant" name="JSON_PARSER_ERROR_INVALID_BAREWORD" link="JsonParser.html#JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS"/>
     <keyword type="constant" name="JSON_PARSER_ERROR_EMPTY_MEMBER_NAME" link="JsonParser.html#JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS"/>
+    <keyword type="constant" name="JSON_PARSER_ERROR_INVALID_DATA" link="JsonParser.html#JSON-PARSER-ERROR-INVALID-DATA:CAPS"/>
     <keyword type="constant" name="JSON_PARSER_ERROR_UNKNOWN" link="JsonParser.html#JSON-PARSER-ERROR-UNKNOWN:CAPS"/>
     <keyword type="constant" name="JSON_READER_ERROR_NO_ARRAY" link="JsonReader.html#JSON-READER-ERROR-NO-ARRAY:CAPS"/>
     <keyword type="constant" name="JSON_READER_ERROR_INVALID_INDEX" link="JsonReader.html#JSON-READER-ERROR-INVALID-INDEX:CAPS"/>
index ec41e53..6c0dc65 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part I. JSON-GLib Overview</title>
+<title>Part I. JSON-GLib Overview: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="next" href="json-base.html" title="Part II. JSON-GLib Reference">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-base.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-base.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
@@ -32,7 +32,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index cfa5740..187c2f4 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part III. Reading and writing</title>
+<title>Part III. Reading and writing: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="json-glib-JSON-Object.html" title="JSON Object">
 <link rel="next" href="ch02.html" title="Parser">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-glib-JSON-Object.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="json-glib-JSON-Object.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <span class="refentrytitle"><a href="JsonBuilder.html">JsonBuilder</a></span><span class="refpurpose"> — Generates JSON trees</span>
 </dt>
 </dl></dd>
+<dt><span class="chapter"><a href="ch04.html">General Purpose API</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="json-glib-Utility-API.html">Utility API</a></span><span class="refpurpose"> — Various utility functions</span>
+</dt></dl></dd>
 </dl>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
index 5199173..43a8a1b 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part V. JSON-GLib Additional Reference</title>
+<title>Part V. JSON-GLib Additional Reference: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
-<link rel="prev" href="json-glib-JSON-GVariant-Integration.html" title="JSON GVariant Integration">
-<link rel="next" href="json-glib-Versioning-information.html" title="Versioning information">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="prev" href="json-glib-Versioning-information.html" title="Versioning information">
+<link rel="next" href="tools.html" title="JSON-GLib Tools">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="json-glib-JSON-GVariant-Integration.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td><a accesskey="n" href="json-glib-Versioning-information.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="json-glib-Versioning-information.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="tools.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl class="toc">
+<dt><span class="chapter"><a href="tools.html">JSON-GLib Tools</a></span></dt>
+<dd><dl>
 <dt>
-<span class="refentrytitle"><a href="json-glib-Versioning-information.html">Versioning information</a></span><span class="refpurpose"> — JSON-GLib version checking</span>
+<span class="refentrytitle"><a href="json-format-tool.html">json-glib-format</a></span><span class="refpurpose"> — JSON-GLib formatting tool</span>
 </dt>
-<dt><span class="chapter"><a href="ch04.html">Object Hierarchy</a></span></dt>
+<dt>
+<span class="refentrytitle"><a href="json-validate-tool.html">json-glib-validate</a></span><span class="refpurpose"> — JSON-GLib validation tool</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch06.html">Object Hierarchy</a></span></dt>
 </dl>
 </div>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/json-validate-tool.html b/doc/reference/html/json-validate-tool.html
new file mode 100644 (file)
index 0000000..82d6979
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>json-glib-validate: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="tools.html" title="JSON-GLib Tools">
+<link rel="prev" href="json-format-tool.html" title="json-glib-format">
+<link rel="next" href="ch06.html" title="Object Hierarchy">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-format-tool.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch06.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div lang="en" class="refentry">
+<a name="json-validate-tool"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">json-glib-validate</span></h2>
+<p>json-glib-validate — JSON-GLib validation tool</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="cmdsynopsis"><p><code class="command">json-glib-validate</code>  [<code class="option">-h</code>, <code class="option">--help</code>]  URI  [
+       URI... 
+    ]</p></div>
+</div>
+<div class="refsect1">
+<a name="id-1.6.2.3.5"></a><h2>Description</h2>
+<p><span class="command"><strong>json-glib-validate</strong></span> offers a simple command line
+interface to validate JSON data. It lets you list URIs that point to JSON
+data and checks that the data conforms to the JSON syntax.</p>
+<p>
+The resources to operate on are specified by the <em class="replaceable"><code>URI</code></em>
+argument.
+</p>
+<p>
+If the JSON data is valid, <span class="command"><strong>json-glib-validate</strong></span> will terminate
+with an exit code of 0; if the data is invalid, an error will be printed on
+<em class="replaceable"><code>stderr</code></em> and <span class="command"><strong>json-glib-validate</strong></span> will
+terminate with a nonzero exit code.</p>
+</div>
+<div class="refsect1">
+<a name="id-1.6.2.3.6"></a><h2>Commands</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><code class="option">-h</code>, <code class="option">--help</code></span></p></td>
+<td><p>
+Prints help and exits.
+</p></td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/left-insensitive.png b/doc/reference/html/left-insensitive.png
new file mode 100644 (file)
index 0000000..3269393
Binary files /dev/null and b/doc/reference/html/left-insensitive.png differ
index 2d05b3d..2abde03 100644 (file)
Binary files a/doc/reference/html/left.png and b/doc/reference/html/left.png differ
index dd45df8..afe9fd6 100644 (file)
@@ -2,21 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Appendix A. License</title>
+<title>Appendix A. License: JSON-GLib Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="up" href="index.html" title="JSON-GLib Reference Manual">
 <link rel="prev" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="annotation-glossary.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">JSON-GLib Reference Manual</th>
-<td> </td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="annotation-glossary.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
 </tr></table>
 <div class="appendix">
 <div class="titlepage"><div><div><h1 class="title">
@@ -52,7 +52,6 @@
     </p>
 </div>
 <div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18.1</div>
+<hr>Generated by GTK-Doc V1.24</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/reference/html/right-insensitive.png b/doc/reference/html/right-insensitive.png
new file mode 100644 (file)
index 0000000..4c95785
Binary files /dev/null and b/doc/reference/html/right-insensitive.png differ
index 92832e3..76260ec 100644 (file)
Binary files a/doc/reference/html/right.png and b/doc/reference/html/right.png differ
index d6f6c26..3675420 100644 (file)
@@ -1,15 +1,23 @@
+body
+{
+  font-family: cantarell, sans-serif;
+}
 .synopsis, .classsynopsis
 {
   /* tango:aluminium 1/2 */
   background: #eeeeec;
-  border: solid 1px #d3d7cf;
+  background: rgba(238, 238, 236, 0.5);
+  border: solid 1px rgb(238, 238, 236);
   padding: 0.5em;
 }
 .programlisting
 {
   /* tango:sky blue 0/1 */
+  /* fallback for no rgba support */
   background: #e6f3ff;
   border: solid 1px #729fcf;
+  background: rgba(114, 159, 207, 0.1);
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0.5em;
 }
 .variablelist
   vertical-align: top;
 }
 
-@media screen {
-  sup a.footnote
-  {
-    position: relative;
-    top: 0em ! important;
-    
-  }
-  /* this is needed so that the local anchors are displayed below the naviagtion */
-  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
-  {
-    display: inline-block;
-    position: relative;
-    top:-5em;
-  }
-  /* this seems to be a bug in the xsl style sheets when generating indexes */
-  div.index div.index
-  {
-    top: 0em;
-  }
-  /* make space for the fixed navigation bar and add space at the bottom so that
-   * link targets appear somewhat close to top
-   */
-  body
-  {
-    padding-top: 3.2em;
-    padding-bottom: 20em;
-  }
-  /* style and size the navigation bar */
-  table.navigation#top
-  {
-    position: fixed;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-    z-index: 10;
-  }
-  .navigation a, .navigation a:visited
-  {
-    /* tango:scarlet red 3 */
-    color: #a40000;
-  }
-  .navigation a:hover
-  {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
-  }
-  td.shortcuts
-  {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
-    font-size: 80%;
-    white-space: nowrap;
-  }
-}
-@media print {
-  table.navigation {
-    visibility: collapse;
-    display: none;
-  }
-  div.titlepage table.navigation {
-    visibility: visible;
-    display: table;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-  }
-}
-
-.navigation .title
-{
-  font-size: 200%;
-}
-
 div.gallery-float
 {
   float: left;
@@ -132,6 +57,72 @@ a:hover
   color: #729fcf;
 }
 
+div.informaltable table
+{
+  border-collapse: separate;
+  border-spacing: 1em 0.3em;
+  border: none;
+}
+
+div.informaltable table td, div.informaltable table th
+{
+  vertical-align: top;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+  text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+  color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
+td p
+{
+  margin: 0.25em;
+}
+
 div.table table
 {
   border-collapse: collapse;
@@ -154,14 +145,44 @@ div.table table th
   background-color: #d3d7cf;
 }
 
+h4
+{
+  color: #555753;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
 hr
 {
-  /* tango:aluminium 3 */
-  color: #babdb6;
-  background: #babdb6;
+  /* tango:aluminium 1 */
+  color: #d3d7cf;
+  background: #d3d7cf;
   border: none 0px;
   height: 1px;
   clear: both;
+  margin: 2.0em 0em 2.0em 0em;
+}
+
+dl.toc dt
+{
+  padding-bottom: 0.25em;
+}
+
+dl.toc > dt
+{
+  padding-top: 0.25em;
+  padding-bottom: 0.25em;
+  font-weight: bold;
+}
+
+dl.toc > dl
+{
+  padding-bottom: 0.5em;
+}
+
+.parameter
+{
+  font-style: normal;
 }
 
 .footer
@@ -173,31 +194,70 @@ hr
   font-size: 80%;
 }
 
+.informalfigure,
+.figure
+{
+  margin: 1em;
+}
+
+.informalexample,
+.example
+{
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
 .warning
 {
   /* tango:orange 0/1 */
   background: #ffeed9;
+  background: rgba(252, 175, 62, 0.1);
   border-color: #ffb04f;
+  border-color: rgba(252, 175, 62, 0.2);
 }
 .note
 {
   /* tango:chameleon 0/0.5 */
   background: #d8ffb2;
+  background: rgba(138, 226, 52, 0.1);
   border-color: #abf562;
+  border-color: rgba(138, 226, 52, 0.2);
 }
-.note, .warning
+div.blockquote
+{
+  border-color: #eeeeec;
+}
+.note, .warning, div.blockquote
 {
   padding: 0.5em;
   border-width: 1px;
   border-style: solid;
+  margin: 2em;
 }
-.note h3, .warning h3
+.note p, .warning p
 {
-  margin-top: 0.0em
+  margin: 0;
 }
-.note p, .warning p
+
+div.warning h3.title,
+div.note h3.title
+{
+  display: none;
+}
+
+p + div.section
 {
-  margin-bottom: 0.0em
+  margin-top: 1em;
+}
+
+div.refnamediv,
+div.refsynopsisdiv,
+div.refsect1,
+div.refsect2,
+div.toc,
+div.section
+{
+  margin-bottom: 1em;
 }
 
 /* blob links */
@@ -210,33 +270,52 @@ h2 .extralinks, h3 .extralinks
   font-weight: normal;
 }
 
+.lineart
+{
+  color: #d3d7cf;
+  font-weight: normal;
+}
+
 .annotation
 {
   /* tango:aluminium 5 */
   color: #555753;
-  font-size: 80%;
   font-weight: normal;
 }
 
+.structfield
+{
+  font-style: normal;
+  font-weight: normal;
+}
+
+acronym,abbr 
+{
+  border-bottom: 1px dotted gray;
+}
+
 /* code listings */
 
-.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
-.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
-.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
-.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
-.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .normal,
+.listing_code .programlisting .normal a,
+.listing_code .programlisting .number,
+.listing_code .programlisting .cbracket,
+.listing_code .programlisting .symbol     { color: #555753; }
+.listing_code .programlisting .comment,
 .listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
-.listing_code .programlisting .normal     { color: #000000; }
-.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .function,
+.listing_code .programlisting .function a,
 .listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
-.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
-.listing_code .programlisting .type       { color: #000000; }
-.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
-.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+.listing_code .programlisting .string     { color: #ad7fa8; } /* tango: plum */
+.listing_code .programlisting .keyword,
+.listing_code .programlisting .usertype,
+.listing_code .programlisting .type,
+.listing_code .programlisting .type a     { color: #4e9a06; } /* tango: chameleon 3  */
 
 .listing_frame {
   /* tango:sky blue 1 */
   border: solid 1px #729fcf;
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0px;
 }
 
@@ -248,19 +327,153 @@ h2 .extralinks, h3 .extralinks
 .listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
+  background: rgba(114, 159, 207, 0.2);
   /* tango:aluminium 6 */
   color: #2e3436;
 }
 .listing_code {
   /* tango:sky blue 0 */
   background: #e6f3ff;
+  background: rgba(114, 159, 207, 0.1);
 }
 .listing_code .programlisting {
   /* override from previous */
   border: none 0px;
   padding: 0px;
+  background: none;
 }
 .listing_lines pre, .listing_code pre {
   margin: 0px;
 }
 
+@media screen {
+  /* these have a <sup> as a first child, but since there are no parent selectors
+   * we can't use that. */
+  a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 2.5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
+    border-spacing: 5px;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    z-index: 10;
+  }
+  table.navigation#top td
+  {
+    padding-left: 6px;
+    padding-right: 6px;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:sky blue 3 */
+    color: #204a87;
+  }
+  .navigation a:hover
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+  }
+  td.shortcuts
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+  .navigation .title
+  {
+    font-size: 80%;
+    max-width: none;
+    margin: 0px;
+    font-weight: normal;
+  }
+}
+@media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
+  .listing_lines { display: none; }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
diff --git a/doc/reference/html/tools.html b/doc/reference/html/tools.html
new file mode 100644 (file)
index 0000000..9ef3642
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>JSON-GLib Tools: JSON-GLib Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="JSON-GLib Reference Manual">
+<link rel="up" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
+<link rel="prev" href="json-tools.html" title="Part V. JSON-GLib Additional Reference">
+<link rel="next" href="json-format-tool.html" title="json-glib-format">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="json-tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="json-tools.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="json-format-tool.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="tools"></a>JSON-GLib Tools</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="json-format-tool.html">json-glib-format</a></span><span class="refpurpose"> — JSON-GLib formatting tool</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="json-validate-tool.html">json-glib-validate</a></span><span class="refpurpose"> — JSON-GLib validation tool</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/html/up-insensitive.png b/doc/reference/html/up-insensitive.png
new file mode 100644 (file)
index 0000000..f404986
Binary files /dev/null and b/doc/reference/html/up-insensitive.png differ
index 85b3e2a..80b4b37 100644 (file)
Binary files a/doc/reference/html/up.png and b/doc/reference/html/up.png differ
index 23a9de0..ed5ce65 100644 (file)
       <xi:include href="xml/json-builder.xml"/>
     </chapter>
 
+    <chapter>
+      <title>General Purpose API</title>
+      <xi:include href="xml/json-utils.xml"/>
+    </chapter>
+
   </part>
 
   <part id="json-advanced">
     <xi:include href="xml/json-serializable.xml"/>
     <xi:include href="xml/json-gboxed.xml"/>
     <xi:include href="xml/json-gvariant.xml"/>
+    <xi:include href="xml/json-version.xml"/>
   </part>
 
   <part id="json-tools">
     <title>JSON-GLib Additional Reference</title>
 
-    <xi:include href="xml/json-version.xml"/>
+    <chapter id="tools">
+        <title>JSON-GLib Tools</title>
+        <xi:include href="json-glib-format.xml"/>
+        <xi:include href="json-glib-validate.xml"/>
+    </chapter>
 
     <chapter>
       <title>Object Hierarchy</title>
     <xi:include href="xml/api-index-0.14.xml"><xi:fallback/></xi:include>
   </index>
 
+  <index role="0.16">
+    <title>Index of new symbols in 0.16</title>
+    <xi:include href="xml/api-index-0.16.xml"><xi:fallback/></xi:include>
+  </index>
+
+  <index role="1.0">
+    <title>Index of new symbols in 1.0</title>
+    <xi:include href="xml/api-index-1.0.xml"><xi:fallback/></xi:include>
+  </index>
+
+  <index role="1.2">
+    <title>Index of new symbols in 1.2</title>
+    <xi:include href="xml/api-index-1.2.xml"><xi:fallback/></xi:include>
+  </index>
+
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback/></xi:include>
 
   <appendix id="license">
diff --git a/doc/reference/json-glib-format.1 b/doc/reference/json-glib-format.1
new file mode 100644 (file)
index 0000000..4d3bd36
--- /dev/null
@@ -0,0 +1,60 @@
+'\" t
+.\"     Title: json-glib-format
+.\"    Author: Emmanuele Bassi
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 03/22/2016
+.\"    Manual: User Commands
+.\"    Source: JSON-GLib
+.\"  Language: English
+.\"
+.TH "JSON\-GLIB\-FORMAT" "1" "" "JSON-GLib" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+json-glib-format \- JSON\-GLib formatting tool
+.SH "SYNOPSIS"
+.HP \w'\fBjson\-glib\-format\fR\ 'u
+\fBjson\-glib\-format\fR [\fB\-h\fR,\ \fB\-\-help\fR] [\fB\-\-prettify\fR] [\fB\-\-indent\-spaces\fR\ \fISPACES\fR] URI [URI...]
+.SH "DESCRIPTION"
+.PP
+\fBjson\-glib\-format\fR
+offers a simple command line interface to format JSON data\&. It reads a list or URIs, applies the spacified formatting rules on the JSON data, and outputs the formatted JSON to the standard output\&.
+.PP
+The resources to operate on are specified by the
+\fIURI\fR
+argument\&.
+.SH "COMMANDS"
+.PP
+\fB\-h\fR, \fB\-\-help\fR
+.RS 4
+Prints help and exits\&.
+.RE
+.PP
+\fB\-p\fR, \fB\-\-prettify\fR
+.RS 4
+Prettifies the output, by adding spaces and indentation\&. This argument is useful to improve the readability of JSON data, at the expense of its size\&.
+.RE
+.PP
+\fB\-\-indent\-spaces\fR \fISPACES\fR
+.RS 4
+Changes the number of spaces using to indent the JSON data from the default of 2\&. This argument is only considered if
+\fB\-\-prettify\fR
+is used\&.
+.RE
diff --git a/doc/reference/json-glib-format.xml b/doc/reference/json-glib-format.xml
new file mode 100644 (file)
index 0000000..d4ba59e
--- /dev/null
@@ -0,0 +1,81 @@
+<refentry id="json-format-tool" lang="en">
+
+<refentryinfo>
+  <title>json-glib-format</title>
+  <productname>JSON-GLib</productname>
+  <authorgroup>
+    <author>
+      <contrib>Developer</contrib>
+      <firstname>Emmanuele</firstname>
+      <surname>Bassi</surname>
+    </author>
+  </authorgroup>
+</refentryinfo>
+
+<refmeta>
+  <refentrytitle>json-glib-format</refentrytitle>
+  <manvolnum>1</manvolnum>
+  <refmiscinfo class="manual">User Commands</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+  <refname>json-glib-format</refname>
+  <refpurpose>JSON-GLib formatting tool</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <cmdsynopsis>
+    <command>json-glib-format</command>
+    <arg><option>-h</option>, <option>--help</option></arg>
+    <arg><option>--prettify</option></arg>
+    <arg><option>--indent-spaces</option> <replaceable>SPACES</replaceable></arg>
+    <arg choice="plain">URI</arg>
+    <arg>
+      <arg choice="plain" rep="repeat">URI</arg>
+    </arg>
+  </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+<para><command>json-glib-format</command> offers a simple command line
+interface to format JSON data. It reads a list or URIs, applies the
+spacified formatting rules on the JSON data, and outputs the formatted
+JSON to the standard output.</para>
+
+<para>
+The resources to operate on are specified by the <replaceable>URI</replaceable>
+argument.
+</para>
+
+</refsect1>
+
+<refsect1><title>Commands</title>
+<variablelist>
+
+<varlistentry>
+<term><option>-h</option>, <option>--help</option></term>
+<listitem><para>
+Prints help and exits.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-p</option>, <option>--prettify</option></term>
+<listitem><para>
+Prettifies the output, by adding spaces and indentation. This argument is
+useful to improve the readability of JSON data, at the expense of its size.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>--indent-spaces</option> <replaceable>SPACES</replaceable></term>
+<listitem><para>
+Changes the number of spaces using to indent the JSON data from the default of 2.
+This argument is only considered if <option>--prettify</option> is used.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</refsect1>
+</refentry>
index 86876cf..4f1e471 100644 (file)
@@ -5,6 +5,10 @@ JsonObject
 json_object_new
 json_object_ref
 json_object_unref
+json_object_seal
+json_object_is_immutable
+json_object_hash
+json_object_equal
 
 <SUBSECTION>
 json_object_add_member
@@ -18,6 +22,9 @@ json_object_get_size
 json_object_remove_member
 JsonObjectForeach
 json_object_foreach_member
+JsonObjectIter
+json_object_iter_init
+json_object_iter_next
 
 <SUBSECTION>
 json_object_set_array_member
@@ -48,6 +55,10 @@ json_array_new
 json_array_sized_new
 json_array_ref
 json_array_unref
+json_array_seal
+json_array_is_immutable
+json_array_hash
+json_array_equal
 
 <SUBSECTION>
 json_array_add_element
@@ -103,6 +114,12 @@ json_node_init_array
 json_node_new
 json_node_copy
 json_node_free
+json_node_ref
+json_node_unref
+json_node_is_immutable
+json_node_seal
+json_node_hash
+json_node_equal
 
 <SUBSECTION>
 json_node_set_array
@@ -137,6 +154,11 @@ json_node_get_value_type
 json_node_get_node_type
 json_node_is_null
 
+<SUBSECTION>
+json_string_hash
+json_string_equal
+json_string_compare
+
 <SUBSECTION Private>
 JSON_DEPRECATED
 JSON_DEPRECATED_FOR
@@ -153,6 +175,7 @@ JsonParserError
 JsonParser
 JsonParserClass
 json_parser_new
+json_parser_new_immutable
 json_parser_load_from_file
 json_parser_load_from_data
 json_parser_load_from_stream
@@ -294,6 +317,27 @@ JSON_VERSION_HEX
 
 <SUBSECTION>
 JSON_CHECK_VERSION
+JSON_VERSION_MIN_REQUIRED
+JSON_VERSION_MAX_ALLOWED
+
+<SUBSECTION Standard>
+JSON_VERSION_CUR_STABLE
+JSON_VERSION_PREV_STABLE
+JSON_VERSION_1_0
+JSON_AVAILABLE_IN_1_0
+JSON_DEPRECATED_IN_1_0
+JSON_DEPRECATED_IN_1_0_FOR
+JSON_VERSION_1_2
+JSON_AVAILABLE_IN_1_2
+JSON_DEPRECATED_IN_1_2
+JSON_DEPRECATED_IN_1_2_FOR
+
+<SUBSECTION Private>
+JSON_ENCODE_VERSION
+JSON_DEPRECATED
+JSON_DEPRECATED_FOR
+JSON_UNAVAILABLE
+_JSON_EXTERN
 </SECTION>
 
 <SECTION>
@@ -301,6 +345,7 @@ JSON_CHECK_VERSION
 JsonBuilder
 JsonBuilderClass
 json_builder_new
+json_builder_new_immutable
 json_builder_get_root
 json_builder_reset
 <SUBSECTION>
@@ -390,3 +435,9 @@ JSON_IS_PATH
 json_path_get_type
 json_path_error_quark
 </SECTION>
+
+<SECTION>
+<FILE>json-utils</FILE>
+json_from_string
+json_to_string
+</SECTION>
diff --git a/doc/reference/json-glib-validate.1 b/doc/reference/json-glib-validate.1
new file mode 100644 (file)
index 0000000..29dabd8
--- /dev/null
@@ -0,0 +1,56 @@
+'\" t
+.\"     Title: json-glib-validate
+.\"    Author: Emmanuele Bassi
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 03/22/2016
+.\"    Manual: User Commands
+.\"    Source: JSON-GLib
+.\"  Language: English
+.\"
+.TH "JSON\-GLIB\-VALIDATE" "1" "" "JSON-GLib" "User Commands"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+json-glib-validate \- JSON\-GLib validation tool
+.SH "SYNOPSIS"
+.HP \w'\fBjson\-glib\-validate\fR\ 'u
+\fBjson\-glib\-validate\fR [\fB\-h\fR,\ \fB\-\-help\fR] URI [URI...]
+.SH "DESCRIPTION"
+.PP
+\fBjson\-glib\-validate\fR
+offers a simple command line interface to validate JSON data\&. It lets you list URIs that point to JSON data and checks that the data conforms to the JSON syntax\&.
+.PP
+The resources to operate on are specified by the
+\fIURI\fR
+argument\&.
+.PP
+If the JSON data is valid,
+\fBjson\-glib\-validate\fR
+will terminate with an exit code of 0; if the data is invalid, an error will be printed on
+\fIstderr\fR
+and
+\fBjson\-glib\-validate\fR
+will terminate with a nonzero exit code\&.
+.SH "COMMANDS"
+.PP
+\fB\-h\fR, \fB\-\-help\fR
+.RS 4
+Prints help and exits\&.
+.RE
diff --git a/doc/reference/json-glib-validate.xml b/doc/reference/json-glib-validate.xml
new file mode 100644 (file)
index 0000000..1cd5c6d
--- /dev/null
@@ -0,0 +1,67 @@
+<refentry id="json-validate-tool" lang="en">
+
+<refentryinfo>
+  <title>json-glib-validate</title>
+  <productname>JSON-GLib</productname>
+  <authorgroup>
+    <author>
+      <contrib>Developer</contrib>
+      <firstname>Emmanuele</firstname>
+      <surname>Bassi</surname>
+    </author>
+  </authorgroup>
+</refentryinfo>
+
+<refmeta>
+  <refentrytitle>json-glib-validate</refentrytitle>
+  <manvolnum>1</manvolnum>
+  <refmiscinfo class="manual">User Commands</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+  <refname>json-glib-validate</refname>
+  <refpurpose>JSON-GLib validation tool</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <cmdsynopsis>
+    <command>json-glib-validate</command>
+    <arg><option>-h</option>, <option>--help</option></arg>
+    <arg choice="plain">URI</arg>
+    <arg>
+      <arg choice="plain" rep="repeat">URI</arg>
+    </arg>
+  </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+<para><command>json-glib-validate</command> offers a simple command line
+interface to validate JSON data. It lets you list URIs that point to JSON
+data and checks that the data conforms to the JSON syntax.</para>
+
+<para>
+The resources to operate on are specified by the <replaceable>URI</replaceable>
+argument.
+</para>
+
+<para>
+If the JSON data is valid, <command>json-glib-validate</command> will terminate
+with an exit code of 0; if the data is invalid, an error will be printed on
+<replaceable>stderr</replaceable> and <command>json-glib-validate</command> will
+terminate with a nonzero exit code.</para>
+</refsect1>
+
+<refsect1><title>Commands</title>
+<variablelist>
+
+<varlistentry>
+<term><option>-h</option>, <option>--help</option></term>
+<listitem><para>
+Prints help and exits.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</refsect1>
+</refentry>
index d937207..074ebe7 100644 (file)
@@ -1,6 +1,8 @@
-#include <json-glib/json-glib.h>
+json_array_get_type
 json_builder_get_type
 json_generator_get_type
+json_node_get_type
+json_object_get_type
 json_parser_get_type
 json_path_get_type
 json_reader_get_type
index d87f66d..9ccd0b0 100644 (file)
@@ -25,6 +25,7 @@ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 SETUP_FILES = \
        $(content_files)                \
+       $(expand_content_files)         \
        $(DOC_MAIN_SGML_FILE)           \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
@@ -49,9 +50,13 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+gtkdoc-check.test: Makefile
+       $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+               echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+               chmod +x $@
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
 
-if ENABLE_GTK_DOC
 if GTK_DOC_BUILD_HTML
 HTML_BUILD_STAMP=html-build.stamp
 else
@@ -63,9 +68,11 @@ else
 PDF_BUILD_STAMP=
 endif
 
-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-else
-all-local:
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+if ENABLE_GTK_DOC
+all-local: all-gtk-doc
 endif
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
@@ -80,11 +87,13 @@ GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
 
 setup-build.stamp:
        -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+           files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
            if test "x$$files" != "x" ; then \
                for file in $$files ; do \
+                   destdir=`dirname $(abs_builddir)/$$file`; \
+                   test -d "$$destdir" || mkdir -p "$$destdir"; \
                    test -f $(abs_srcdir)/$$file && \
-                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+                       cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
                done; \
            fi; \
        fi
@@ -101,7 +110,7 @@ GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
 GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
        $(GTK_DOC_V_SCAN)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
@@ -110,7 +119,7 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
        $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
            scanobj_options=""; \
            gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-           if test "$(?)" = "0"; then \
+           if test "$$?" = "0"; then \
                if test "x$(V)" = "x1"; then \
                    scanobj_options="--verbose"; \
                fi; \
@@ -154,17 +163,17 @@ GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
 GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
 
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
        mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkhtml_options="$$mkhtml_options --verbose"; \
          fi; \
        fi; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
        fi; \
        cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
@@ -186,11 +195,11 @@ GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
 GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
 
-pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
        $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
        mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkpdf_options="$$mkpdf_options --verbose"; \
          fi; \
@@ -212,12 +221,18 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 clean-local:
        @rm -f *~ *.bak
        @rm -rf .libs
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+         rm -f $(DOC_MODULE).types; \
+       fi
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
+         rm -f $(DOC_MODULE)-sections.txt; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
            $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
        @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
        fi
 
 maintainer-clean-local:
@@ -256,15 +271,17 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
-if ENABLE_GTK_DOC
+if HAVE_GTK_DOC
 dist-check-gtkdoc: docs
 else
 dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist"
+       @echo "*** gtk-doc is needed to run 'make dist'.         ***"
+       @echo "*** gtk-doc was not found when 'configure' ran.   ***"
+       @echo "*** please install gtk-doc and rerun 'configure'. ***"
        @false
 endif
 
-dist-hook: dist-check-gtkdoc dist-hook-local
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
        @mkdir $(distdir)/html
        @cp ./html/* $(distdir)/html
        @-cp ./$(DOC_MODULE).pdf $(distdir)/
index adee031..d066388 100644 (file)
@@ -15,29 +15,53 @@ and/or use gtk-doc annotations.  -->
              shared-library="libjson-glib-1.0.so.0"
              c:identifier-prefixes="Json"
              c:symbol-prefixes="json">
+    <alias name="Array_autoptr" c:type="JsonArray_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Builder_autoptr" c:type="JsonBuilder_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Generator_autoptr" c:type="JsonGenerator_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Node_autoptr" c:type="JsonNode_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Object_autoptr" c:type="JsonObject_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Parser_autoptr" c:type="JsonParser_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Path_autoptr" c:type="JsonPath_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Reader_autoptr" c:type="JsonReader_autoptr">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
     <record name="Array"
             c:type="JsonArray"
             glib:type-name="JsonArray"
             glib:get-type="json_array_get_type"
             c:symbol-prefix="array">
-      <doc xml:whitespace="preserve">A JSON array type. The contents of the #JsonArray structure are private
+      <doc xml:space="preserve">A JSON array type. The contents of the #JsonArray structure are private
 and should only be accessed by the provided API</doc>
       <constructor name="new" c:identifier="json_array_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonArray.</doc>
+        <doc xml:space="preserve">Creates a new #JsonArray.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
+          <doc xml:space="preserve">the newly created #JsonArray</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
       </constructor>
       <constructor name="sized_new" c:identifier="json_array_sized_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonArray with @n_elements slots already allocated.</doc>
+        <doc xml:space="preserve">Creates a new #JsonArray with @n_elements slots already allocated.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
+          <doc xml:space="preserve">the newly created #JsonArray</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <parameter name="n_elements" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of slots to pre-allocate</doc>
+            <doc xml:space="preserve">number of slots to pre-allocate</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -45,7 +69,7 @@ and should only be accessed by the provided API</doc>
       <method name="add_array_element"
               c:identifier="json_array_add_array_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an array into @array. The @array takes ownership
+        <doc xml:space="preserve">Conveniently adds an array into @array. The @array takes ownership
 of the newly added #JsonArray
 
 See also: json_array_add_element(), json_node_take_array()</doc>
@@ -54,11 +78,14 @@ See also: json_array_add_element(), json_node_take_array()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
-          <parameter name="value" transfer-ownership="full" allow-none="1">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+          <parameter name="value"
+                     transfer-ownership="full"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </parameter>
         </parameters>
@@ -66,7 +93,7 @@ See also: json_array_add_element(), json_node_take_array()</doc>
       <method name="add_boolean_element"
               c:identifier="json_array_add_boolean_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a boolean @value into @array
+        <doc xml:space="preserve">Conveniently adds a boolean @value into @array
 
 See also: json_array_add_element(), json_node_set_boolean()</doc>
         <return-value transfer-ownership="none">
@@ -74,11 +101,11 @@ See also: json_array_add_element(), json_node_set_boolean()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a boolean value</doc>
+            <doc xml:space="preserve">a boolean value</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
@@ -86,7 +113,7 @@ See also: json_array_add_element(), json_node_set_boolean()</doc>
       <method name="add_double_element"
               c:identifier="json_array_add_double_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a floating point @value into @array
+        <doc xml:space="preserve">Conveniently adds a floating point @value into @array
 
 See also: json_array_add_element(), json_node_set_double()</doc>
         <return-value transfer-ownership="none">
@@ -94,28 +121,28 @@ See also: json_array_add_element(), json_node_set_double()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a floating point value</doc>
+            <doc xml:space="preserve">a floating point value</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
       </method>
       <method name="add_element" c:identifier="json_array_add_element">
-        <doc xml:whitespace="preserve">Appends @node inside @array. The array will take ownership of the
+        <doc xml:space="preserve">Appends @node inside @array. The array will take ownership of the
 #JsonNode.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="node" transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -123,7 +150,7 @@ See also: json_array_add_element(), json_node_set_double()</doc>
       <method name="add_int_element"
               c:identifier="json_array_add_int_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an integer @value into @array
+        <doc xml:space="preserve">Conveniently adds an integer @value into @array
 
 See also: json_array_add_element(), json_node_set_int()</doc>
         <return-value transfer-ownership="none">
@@ -131,11 +158,11 @@ See also: json_array_add_element(), json_node_set_int()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an integer value</doc>
+            <doc xml:space="preserve">an integer value</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
@@ -143,7 +170,7 @@ See also: json_array_add_element(), json_node_set_int()</doc>
       <method name="add_null_element"
               c:identifier="json_array_add_null_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a null element into @array
+        <doc xml:space="preserve">Conveniently adds a null element into @array
 
 See also: json_array_add_element(), %JSON_NODE_NULL</doc>
         <return-value transfer-ownership="none">
@@ -151,7 +178,7 @@ See also: json_array_add_element(), %JSON_NODE_NULL</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
         </parameters>
@@ -159,7 +186,7 @@ See also: json_array_add_element(), %JSON_NODE_NULL</doc>
       <method name="add_object_element"
               c:identifier="json_array_add_object_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an object into @array. The @array takes ownership
+        <doc xml:space="preserve">Conveniently adds an object into @array. The @array takes ownership
 of the newly added #JsonObject
 
 See also: json_array_add_element(), json_node_take_object()</doc>
@@ -168,11 +195,11 @@ See also: json_array_add_element(), json_node_take_object()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </parameter>
         </parameters>
@@ -180,7 +207,7 @@ See also: json_array_add_element(), json_node_take_object()</doc>
       <method name="add_string_element"
               c:identifier="json_array_add_string_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a string @value into @array
+        <doc xml:space="preserve">Conveniently adds a string @value into @array
 
 See also: json_array_add_element(), json_node_set_string()</doc>
         <return-value transfer-ownership="none">
@@ -188,11 +215,11 @@ See also: json_array_add_element(), json_node_set_string()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string value</doc>
+            <doc xml:space="preserve">a string value</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -200,27 +227,47 @@ See also: json_array_add_element(), json_node_set_string()</doc>
       <method name="dup_element"
               c:identifier="json_array_dup_element"
               version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of the
+        <doc xml:space="preserve">Retrieves a copy of the #JsonNode containing the value of the
 element at @index_ inside a #JsonArray</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a copy of the #JsonNode at the requested index. Use json_node_free() when done.</doc>
+          <doc xml:space="preserve">a copy of the #JsonNode at the requested
+  index. Use json_node_unref() when done.</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
+      <method name="equal" c:identifier="json_array_equal" version="1.2">
+        <doc xml:space="preserve">Check whether @a and @b are equal #JsonArrays, meaning they have the same
+number of elements, and the values of elements in corresponding positions
+are equal.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON array</doc>
+            <type name="Array" c:type="gconstpointer"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve">another JSON array</doc>
+            <type name="Array" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
+      </method>
       <method name="foreach_element"
               c:identifier="json_array_foreach_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Iterates over all elements of @array and calls @func on
+        <doc xml:space="preserve">Iterates over all elements of @array and calls @func on
 each one of them.
 
 It is safe to change the value of a #JsonNode of the @array
@@ -231,18 +278,18 @@ remove elements from the @array.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="func"
                      transfer-ownership="none"
                      scope="call"
                      closure="1">
-            <doc xml:whitespace="preserve">the function to be called on each element</doc>
+            <doc xml:space="preserve">the function to be called on each element</doc>
             <type name="ArrayForeach" c:type="JsonArrayForeach"/>
           </parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function</doc>
+            <doc xml:space="preserve">data to be passed to the function</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -250,21 +297,21 @@ remove elements from the @array.</doc>
       <method name="get_array_element"
               c:identifier="json_array_get_array_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the array from the element at @index_
+        <doc xml:space="preserve">Conveniently retrieves the array from the element at @index_
 inside @array
 
 See also: json_array_get_element(), json_node_get_array()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the array</doc>
+          <doc xml:space="preserve">the array</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -272,21 +319,21 @@ See also: json_array_get_element(), json_node_get_array()</doc>
       <method name="get_boolean_element"
               c:identifier="json_array_get_boolean_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the boolean value of the element at @index_
+        <doc xml:space="preserve">Conveniently retrieves the boolean value of the element at @index_
 inside @array
 
 See also: json_array_get_element(), json_node_get_boolean()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
+          <doc xml:space="preserve">the integer value</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -294,54 +341,57 @@ See also: json_array_get_element(), json_node_get_boolean()</doc>
       <method name="get_double_element"
               c:identifier="json_array_get_double_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the floating point value of the element at
+        <doc xml:space="preserve">Conveniently retrieves the floating point value of the element at
 @index_ inside @array
 
 See also: json_array_get_element(), json_node_get_double()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value</doc>
+          <doc xml:space="preserve">the floating point value</doc>
           <type name="gdouble" c:type="gdouble"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_element" c:identifier="json_array_get_element">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of the element at @index_
+        <doc xml:space="preserve">Retrieves the #JsonNode containing the value of the element at @index_
 inside a #JsonArray.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the #JsonNode at the requested index</doc>
+          <doc xml:space="preserve">a pointer to the #JsonNode at the requested index</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_elements" c:identifier="json_array_get_elements">
-        <doc xml:whitespace="preserve">Gets the elements of a #JsonArray as a list of #JsonNode&lt;!-- --&gt;s.</doc>
+        <doc xml:space="preserve">Gets the elements of a #JsonArray as a list of #JsonNode instances.</doc>
         <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList containing the elements of the array. The contents of the list are owned by the array and should never be modified or freed. Use g_list_free() on the returned list when done using it</doc>
+          <doc xml:space="preserve">a #GList
+  containing the elements of the array. The contents of the list are
+  owned by the array and should never be modified or freed. Use
+  g_list_free() on the returned list when done using it</doc>
           <type name="GLib.List" c:type="GList*">
             <type name="Node"/>
           </type>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
         </parameters>
@@ -349,34 +399,34 @@ inside a #JsonArray.</doc>
       <method name="get_int_element"
               c:identifier="json_array_get_int_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the integer value of the element at @index_
+        <doc xml:space="preserve">Conveniently retrieves the integer value of the element at @index_
 inside @array
 
 See also: json_array_get_element(), json_node_get_int()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
+          <doc xml:space="preserve">the integer value</doc>
           <type name="gint64" c:type="gint64"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_length" c:identifier="json_array_get_length">
-        <doc xml:whitespace="preserve">Retrieves the length of a #JsonArray</doc>
+        <doc xml:space="preserve">Retrieves the length of a #JsonArray</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the length of the array</doc>
+          <doc xml:space="preserve">the length of the array</doc>
           <type name="guint" c:type="guint"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
         </parameters>
@@ -384,20 +434,20 @@ See also: json_array_get_element(), json_node_get_int()</doc>
       <method name="get_null_element"
               c:identifier="json_array_get_null_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves whether the element at @index_ is set to null
+        <doc xml:space="preserve">Conveniently retrieves whether the element at @index_ is set to null
 
 See also: json_array_get_element(), JSON_NODE_TYPE(), %JSON_NODE_NULL</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the element is null</doc>
+          <doc xml:space="preserve">%TRUE if the element is null</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -405,21 +455,21 @@ See also: json_array_get_element(), JSON_NODE_TYPE(), %JSON_NODE_NULL</doc>
       <method name="get_object_element"
               c:identifier="json_array_get_object_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the object from the element at @index_
+        <doc xml:space="preserve">Conveniently retrieves the object from the element at @index_
 inside @array
 
 See also: json_array_get_element(), json_node_get_object()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object</doc>
+          <doc xml:space="preserve">the object</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -427,57 +477,107 @@ See also: json_array_get_element(), json_node_get_object()</doc>
       <method name="get_string_element"
               c:identifier="json_array_get_string_element"
               version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the string value of the element at @index_
+        <doc xml:space="preserve">Conveniently retrieves the string value of the element at @index_
 inside @array
 
 See also: json_array_get_element(), json_node_get_string()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value; the returned string is owned by the #JsonArray and should not be modified or freed</doc>
+          <doc xml:space="preserve">the string value; the returned string is owned by
+  the #JsonArray and should not be modified or freed</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <doc xml:space="preserve">the index of the element to retrieve</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
+      <method name="hash" c:identifier="json_array_hash" version="1.2">
+        <doc xml:space="preserve">Calculate a hash value for the given @key (a #JsonArray).
+
+The hash is calculated over the array and all its elements, recursively. If
+the array is immutable, this is a fast operation; otherwise, it scales
+proportionally with the length of the array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">hash value for @key</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON array to hash</doc>
+            <type name="Array" c:type="gconstpointer"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_immutable"
+              c:identifier="json_array_is_immutable"
+              version="1.2">
+        <doc xml:space="preserve">Check whether the given @array has been marked as immutable by calling
+json_array_seal() on it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if the @array is immutable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="array" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonArray</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="ref" c:identifier="json_array_ref">
-        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonArray.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the passed #JsonArray, with the reference count increased by one.</doc>
+        <doc xml:space="preserve">Increase by one the reference count of a #JsonArray.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">the passed #JsonArray, with the reference count
+  increased by one.</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="remove_element" c:identifier="json_array_remove_element">
-        <doc xml:whitespace="preserve">Removes the #JsonNode inside @array at @index_ freeing its allocated
+        <doc xml:space="preserve">Removes the #JsonNode inside @array at @index_ freeing its allocated
 resources.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the element to be removed</doc>
+            <doc xml:space="preserve">the position of the element to be removed</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
+      <method name="seal" c:identifier="json_array_seal" version="1.2">
+        <doc xml:space="preserve">Seals the #JsonArray, making it immutable to further changes. This will
+recursively seal all elements in the array too.
+
+If the @array is already immutable, this is a no-op.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="array" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonArray</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="unref" c:identifier="json_array_unref">
-        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonArray. If the
+        <doc xml:space="preserve">Decreases by one the reference count of a #JsonArray. If the
 reference count reaches zero, the array is destroyed and all
 its allocated resources are freed.</doc>
         <return-value transfer-ownership="none">
@@ -485,14 +585,14 @@ its allocated resources are freed.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </instance-parameter>
         </parameters>
       </method>
     </record>
     <callback name="ArrayForeach" c:type="JsonArrayForeach" version="0.8">
-      <doc xml:whitespace="preserve">The function to be passed to json_array_foreach_element(). You
+      <doc xml:space="preserve">The function to be passed to json_array_foreach_element(). You
 should not add or remove elements to and from @array within
 this function. It is safe to change the value of @element_node.</doc>
       <return-value transfer-ownership="none">
@@ -500,19 +600,19 @@ this function. It is safe to change the value of @element_node.</doc>
       </return-value>
       <parameters>
         <parameter name="array" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterated #JsonArray</doc>
+          <doc xml:space="preserve">the iterated #JsonArray</doc>
           <type name="Array" c:type="JsonArray*"/>
         </parameter>
         <parameter name="index_" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the index of the element</doc>
+          <doc xml:space="preserve">the index of the element</doc>
           <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="element_node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode containing the value at @index_</doc>
+          <doc xml:space="preserve">a #JsonNode containing the value at @index_</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
         <parameter name="user_data" transfer-ownership="none" closure="3">
-          <doc xml:whitespace="preserve">data passed to the function</doc>
+          <doc xml:space="preserve">data passed to the function</doc>
           <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
@@ -521,14 +621,14 @@ this function. It is safe to change the value of @element_node.</doc>
               c:type="JsonBoxedDeserializeFunc"
               version="0.10"
               introspectable="0">
-      <doc xml:whitespace="preserve">Deserializes the contents of the passed #JsonNode into a #GBoxed</doc>
+      <doc xml:space="preserve">Deserializes the contents of the passed #JsonNode into a #GBoxed</doc>
       <return-value>
-        <doc xml:whitespace="preserve">the newly created boxed type</doc>
+        <doc xml:space="preserve">the newly created boxed type</doc>
         <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode</doc>
+          <doc xml:space="preserve">a #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
       </parameters>
@@ -536,14 +636,14 @@ this function. It is safe to change the value of @element_node.</doc>
     <callback name="BoxedSerializeFunc"
               c:type="JsonBoxedSerializeFunc"
               version="0.10">
-      <doc xml:whitespace="preserve">Serializes the passed #GBoxed and stores it inside a #JsonNode</doc>
+      <doc xml:space="preserve">Serializes the passed #GBoxed and stores it inside a #JsonNode</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
+        <doc xml:space="preserve">the newly created #JsonNode</doc>
         <type name="Node" c:type="JsonNode*"/>
       </return-value>
       <parameters>
         <parameter name="boxed" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GBoxed</doc>
+          <doc xml:space="preserve">a #GBoxed</doc>
           <type name="gpointer" c:type="gconstpointer"/>
         </parameter>
       </parameters>
@@ -556,252 +656,275 @@ this function. It is safe to change the value of @element_node.</doc>
            glib:type-name="JsonBuilder"
            glib:get-type="json_builder_get_type"
            glib:type-struct="BuilderClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
-private data and shouls be accessed using the provided API</doc>
+      <doc xml:space="preserve">The `JsonBuilder` structure contains only private data and should be
+accessed using the provided API</doc>
       <constructor name="new" c:identifier="json_builder_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonBuilder. You can use this object to generate a
-JSON tree and obtain the root #JsonNode&lt;!-- --&gt;s.</doc>
+        <doc xml:space="preserve">Creates a new #JsonBuilder. You can use this object to generate a
+JSON tree and obtain the root #JsonNode.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve">the newly created #JsonBuilder instance</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_immutable"
+                   c:identifier="json_builder_new_immutable"
+                   version="1.2">
+        <doc xml:space="preserve">Creates a new #JsonBuilder instance with its #JsonBuilder:immutable property
+set to %TRUE to create immutable output trees.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonBuilder instance</doc>
+          <doc xml:space="preserve">a new #JsonBuilder</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
       </constructor>
       <method name="add_boolean_value"
               c:identifier="json_builder_add_boolean_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets @value as member of the
 most recent opened object, otherwise @value is added as element of the most
 recent opened array.
 
 See also: json_builder_add_value()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <doc xml:space="preserve">the value of the member or element</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
       </method>
       <method name="add_double_value"
               c:identifier="json_builder_add_double_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets @value as member of the
 most recent opened object, otherwise @value is added as element of the most
 recent opened array.
 
 See also: json_builder_add_value()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <doc xml:space="preserve">the value of the member or element</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
       </method>
       <method name="add_int_value" c:identifier="json_builder_add_int_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets @value as member of the
 most recent opened object, otherwise @value is added as element of the most
 recent opened array.
 
 See also: json_builder_add_value()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <doc xml:space="preserve">the value of the member or element</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
       </method>
       <method name="add_null_value" c:identifier="json_builder_add_null_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets null as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets null as member of the
 most recent opened object, otherwise null is added as element of the most
 recent opened array.
 
 See also: json_builder_add_value()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="add_string_value"
               c:identifier="json_builder_add_string_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets @value as member of the
 most recent opened object, otherwise @value is added as element of the most
 recent opened array.
 
 See also: json_builder_add_value()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <doc xml:space="preserve">the value of the member or element</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="add_value" c:identifier="json_builder_add_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @node as member of the
+        <doc xml:space="preserve">If called after json_builder_set_member_name(), sets @node as member of the
 most recent opened object, otherwise @node is added as element of the most
-recent opened array.</doc>
+recent opened array.
+
+The builder will take ownership of the #JsonNode.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
+          <parameter name="node" transfer-ownership="full">
+            <doc xml:space="preserve">the value of the member or element</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
       </method>
       <method name="begin_array" c:identifier="json_builder_begin_array">
-        <doc xml:whitespace="preserve">Opens a subarray inside the given @builder. When done adding members to
+        <doc xml:space="preserve">Opens a subarray inside the given @builder. When done adding members to
 the subarray, json_builder_end_array() must be called.
 
 Can be called for first or only if the call is associated to an object member
 or an array element.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="begin_object" c:identifier="json_builder_begin_object">
-        <doc xml:whitespace="preserve">Opens a subobject inside the given @builder. When done adding members to
+        <doc xml:space="preserve">Opens a subobject inside the given @builder. When done adding members to
 the subobject, json_builder_end_object() must be called.
 
 Can be called for first or only if the call is associated to an object member
 or an array element.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="end_array" c:identifier="json_builder_end_array">
-        <doc xml:whitespace="preserve">Closes the subarray inside the given @builder that was opened by the most
+        <doc xml:space="preserve">Closes the subarray inside the given @builder that was opened by the most
 recent call to json_builder_begin_array().
 
 Cannot be called after json_builder_set_member_name().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="end_object" c:identifier="json_builder_end_object">
-        <doc xml:whitespace="preserve">Closes the subobject inside the given @builder that was opened by the most
+        <doc xml:space="preserve">Closes the subobject inside the given @builder that was opened by the most
 recent call to json_builder_begin_object().
 
 Cannot be called after json_builder_set_member_name().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_root" c:identifier="json_builder_get_root">
-        <doc xml:whitespace="preserve">Returns the root of the current constructed tree, if the build is complete
+        <doc xml:space="preserve">Returns the root of the current constructed tree, if the build is complete
 (ie: all opened objects, object members and arrays are being closed).</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonNode, or %NULL if the build is not complete. Free the returned value with json_node_free().</doc>
+          <doc xml:space="preserve">the #JsonNode, or %NULL if the build is not complete.
+  Free the returned value with json_node_unref().</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="reset" c:identifier="json_builder_reset">
-        <doc xml:whitespace="preserve">Resets the state of the @builder back to its initial state.</doc>
+        <doc xml:space="preserve">Resets the state of the @builder back to its initial state.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="set_member_name"
               c:identifier="json_builder_set_member_name">
-        <doc xml:whitespace="preserve">Set the name of the next member in an object. The next call must add a value,
+        <doc xml:space="preserve">Set the name of the next member in an object. The next call must add a value,
 open an object or an array.
 
 Can be called only if the call is associated to an object.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <doc xml:space="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
           <type name="Builder" c:type="JsonBuilder*"/>
         </return-value>
         <parameters>
           <instance-parameter name="builder" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonBuilder</doc>
+            <doc xml:space="preserve">a #JsonBuilder</doc>
             <type name="Builder" c:type="JsonBuilder*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
+      <property name="immutable"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve">Whether the #JsonNode tree built by the #JsonBuilder should be immutable
+when created. Making the output immutable on creation avoids the expense
+of traversing it to make it immutable later.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
       <field name="parent_instance" readable="0" private="1">
         <type name="GObject.Object" c:type="GObject"/>
       </field>
@@ -813,8 +936,7 @@ Can be called only if the call is associated to an object.</doc>
             c:type="JsonBuilderClass"
             glib:is-gtype-struct-for="Builder"
             version="0.12">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
-private data</doc>
+      <doc xml:space="preserve">The `JsonBuilderClass` structure contains only private data</doc>
       <field name="parent_class" readable="0" private="1">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -842,28 +964,28 @@ private data</doc>
            glib:type-name="JsonGenerator"
            glib:get-type="json_generator_get_type"
            glib:type-struct="GeneratorClass">
-      <doc xml:whitespace="preserve">JSON data streams generator. The contents of the #JsonGenerator structure
+      <doc xml:space="preserve">JSON data streams generator. The contents of the #JsonGenerator structure
 are private and should only be accessed via the provided API.</doc>
       <constructor name="new" c:identifier="json_generator_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonGenerator. You can use this object to generate a
+        <doc xml:space="preserve">Creates a new #JsonGenerator. You can use this object to generate a
 JSON data stream starting from a data object model composed by
-#JsonNode&lt;!-- --&gt;s.</doc>
+#JsonNodes.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonGenerator instance</doc>
+          <doc xml:space="preserve">the newly created #JsonGenerator instance</doc>
           <type name="Generator" c:type="JsonGenerator*"/>
         </return-value>
       </constructor>
       <method name="get_indent"
               c:identifier="json_generator_get_indent"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves the value set using json_generator_set_indent().</doc>
+        <doc xml:space="preserve">Retrieves the value set using json_generator_set_indent().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of repetitions per indentation level</doc>
+          <doc xml:space="preserve">the number of repetitions per indentation level</doc>
           <type name="guint" c:type="guint"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
         </parameters>
@@ -871,14 +993,14 @@ JSON data stream starting from a data object model composed by
       <method name="get_indent_char"
               c:identifier="json_generator_get_indent_char"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves the value set using json_generator_set_indent_char().</doc>
+        <doc xml:space="preserve">Retrieves the value set using json_generator_set_indent_char().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the character to be used when indenting</doc>
+          <doc xml:space="preserve">the character to be used when indenting</doc>
           <type name="gunichar" c:type="gunichar"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
         </parameters>
@@ -886,14 +1008,15 @@ JSON data stream starting from a data object model composed by
       <method name="get_pretty"
               c:identifier="json_generator_get_pretty"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves the value set using json_generator_set_pretty().</doc>
+        <doc xml:space="preserve">Retrieves the value set using json_generator_set_pretty().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the generated JSON should be pretty-printed, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if the generated JSON should be pretty-printed, and
+  %FALSE otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
         </parameters>
@@ -901,15 +1024,16 @@ JSON data stream starting from a data object model composed by
       <method name="get_root"
               c:identifier="json_generator_get_root"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the root #JsonNode set using
+        <doc xml:space="preserve">Retrieves a pointer to the root #JsonNode set using
 json_generator_set_root().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode, or %NULL. The returned node is owned by the #JsonGenerator and it should not be freed</doc>
+          <doc xml:space="preserve">a #JsonNode, or %NULL. The returned node
+  is owned by the #JsonGenerator and it should not be freed</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
         </parameters>
@@ -917,17 +1041,18 @@ json_generator_set_root().</doc>
       <method name="set_indent"
               c:identifier="json_generator_set_indent"
               version="0.14">
-        <doc xml:whitespace="preserve">Sets the number of repetitions for each indentation level.</doc>
+        <doc xml:space="preserve">Sets the number of repetitions for each indentation level.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="indent_level" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of repetitions of the indentation character that should be applied when pretty printing</doc>
+            <doc xml:space="preserve">the number of repetitions of the indentation character
+  that should be applied when pretty printing</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -935,17 +1060,17 @@ json_generator_set_root().</doc>
       <method name="set_indent_char"
               c:identifier="json_generator_set_indent_char"
               version="0.14">
-        <doc xml:whitespace="preserve">Sets the character to be used when indenting</doc>
+        <doc xml:space="preserve">Sets the character to be used when indenting</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="indent_char" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a Unicode character to be used when indenting</doc>
+            <doc xml:space="preserve">a Unicode character to be used when indenting</doc>
             <type name="gunichar" c:type="gunichar"/>
           </parameter>
         </parameters>
@@ -953,7 +1078,7 @@ json_generator_set_root().</doc>
       <method name="set_pretty"
               c:identifier="json_generator_set_pretty"
               version="0.14">
-        <doc xml:whitespace="preserve">Sets whether the generated JSON should be pretty printed, using the
+        <doc xml:space="preserve">Sets whether the generated JSON should be pretty printed, using the
 indentation character specified in the #JsonGenerator:indent-char
 property and the spacing specified in #JsonGenerator:indent property.</doc>
         <return-value transfer-ownership="none">
@@ -961,70 +1086,72 @@ property and the spacing specified in #JsonGenerator:indent property.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="is_pretty" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the generated string should be pretty printed</doc>
+            <doc xml:space="preserve">whether the generated string should be pretty printed</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_root" c:identifier="json_generator_set_root">
-        <doc xml:whitespace="preserve">Sets @node as the root of the JSON data stream to be serialized by
+        <doc xml:space="preserve">Sets @node as the root of the JSON data stream to be serialized by
 the #JsonGenerator.
 
-&lt;note&gt;The node is copied by the generator object, so it can be safely
-freed after calling this function.&lt;/note&gt;</doc>
+The passed @node is copied by the generator object, so it can be
+safely freed after calling this function.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
       </method>
       <method name="to_data" c:identifier="json_generator_to_data">
-        <doc xml:whitespace="preserve">Generates a JSON data stream from @generator and returns it as a
+        <doc xml:space="preserve">Generates a JSON data stream from @generator and returns it as a
 buffer.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated buffer holding a JSON data stream. Use g_free() to free the allocated resources.</doc>
+          <doc xml:space="preserve">a newly allocated buffer holding a JSON data stream.
+  Use g_free() to free the allocated resources.</doc>
           <type name="utf8" c:type="gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="length"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the length of the returned buffer, or %NULL</doc>
+            <doc xml:space="preserve">return location for the length of the returned
+  buffer, or %NULL</doc>
             <type name="gsize" c:type="gsize*"/>
           </parameter>
         </parameters>
       </method>
       <method name="to_file" c:identifier="json_generator_to_file" throws="1">
-        <doc xml:whitespace="preserve">Creates a JSON data stream and puts it inside @filename, overwriting the
+        <doc xml:space="preserve">Creates a JSON data stream and puts it inside @filename, overwriting the
 current file contents. This operation is atomic.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if saving was successful.</doc>
+          <doc xml:space="preserve">%TRUE if saving was successful.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">path to the target file</doc>
+            <doc xml:space="preserve">path to the target file</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -1033,41 +1160,43 @@ current file contents. This operation is atomic.</doc>
               c:identifier="json_generator_to_stream"
               version="0.12"
               throws="1">
-        <doc xml:whitespace="preserve">Outputs JSON data and streams it (synchronously) to @stream.</doc>
+        <doc xml:space="preserve">Outputs JSON data and streams it (synchronously) to @stream.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the write operation was successful, and %FALSE on failure. In case of error, the #GError will be filled accordingly</doc>
+          <doc xml:space="preserve">%TRUE if the write operation was successful, and %FALSE
+  on failure. In case of error, the #GError will be filled accordingly</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="generator" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonGenerator</doc>
+            <doc xml:space="preserve">a #JsonGenerator</doc>
             <type name="Generator" c:type="JsonGenerator*"/>
           </instance-parameter>
           <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GOutputStream</doc>
+            <doc xml:space="preserve">a #GOutputStream</doc>
             <type name="Gio.OutputStream" c:type="GOutputStream*"/>
           </parameter>
           <parameter name="cancellable"
                      transfer-ownership="none"
+                     nullable="1"
                      allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
             <type name="Gio.Cancellable" c:type="GCancellable*"/>
           </parameter>
         </parameters>
       </method>
       <property name="indent" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Number of spaces to be used to indent when pretty printing.</doc>
+        <doc xml:space="preserve">Number of spaces to be used to indent when pretty printing.</doc>
         <type name="guint" c:type="guint"/>
       </property>
       <property name="indent-char"
                 version="0.6"
                 writable="1"
                 transfer-ownership="none">
-        <doc xml:whitespace="preserve">The character that should be used when indenting in pretty print.</doc>
+        <doc xml:space="preserve">The character that should be used when indenting in pretty print.</doc>
         <type name="guint" c:type="guint"/>
       </property>
       <property name="pretty" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the output should be "pretty-printed", with indentation and
+        <doc xml:space="preserve">Whether the output should be "pretty-printed", with indentation and
 newlines. The indentation level can be controlled by using the
 JsonGenerator:indent property</doc>
         <type name="gboolean" c:type="gboolean"/>
@@ -1076,7 +1205,7 @@ JsonGenerator:indent property</doc>
                 version="0.4"
                 writable="1"
                 transfer-ownership="none">
-        <doc xml:whitespace="preserve">The root #JsonNode to be used when constructing a JSON data
+        <doc xml:space="preserve">The root #JsonNode to be used when constructing a JSON data
 stream.</doc>
         <type name="Node"/>
       </property>
@@ -1090,7 +1219,7 @@ stream.</doc>
     <record name="GeneratorClass"
             c:type="JsonGeneratorClass"
             glib:is-gtype-struct-for="Generator">
-      <doc xml:whitespace="preserve">#JsonGenerator class</doc>
+      <doc xml:space="preserve">#JsonGenerator class</doc>
       <field name="parent_class" readable="0" private="1">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -1127,149 +1256,196 @@ stream.</doc>
             c:type="JsonGeneratorPrivate"
             disguised="1">
     </record>
+    <constant name="MAJOR_VERSION" value="1" c:type="JSON_MAJOR_VERSION">
+      <doc xml:space="preserve">Json major version component (e.g. 1 if %JSON_VERSION is 1.2.3)</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MICRO_VERSION" value="0" c:type="JSON_MICRO_VERSION">
+      <doc xml:space="preserve">Json micro version component (e.g. 3 if %JSON_VERSION is 1.2.3)</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINOR_VERSION" value="2" c:type="JSON_MINOR_VERSION">
+      <doc xml:space="preserve">Json minor version component (e.g. 2 if %JSON_VERSION is 1.2.3)</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
     <record name="Node"
             c:type="JsonNode"
             glib:type-name="JsonNode"
             glib:get-type="json_node_get_type"
             c:symbol-prefix="node">
-      <doc xml:whitespace="preserve">A generic container of JSON data types. The contents of the #JsonNode
+      <doc xml:space="preserve">A generic container of JSON data types. The contents of the #JsonNode
 structure are private and should only be accessed via the provided
 functions and never directly.</doc>
+      <constructor name="alloc" c:identifier="json_node_alloc" version="0.16">
+        <doc xml:space="preserve">Allocates a new #JsonNode. Use json_node_init() and its variants
+to initialize the returned value.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve">the newly allocated #JsonNode. Use
+  json_node_free() to free the resources allocated by this function</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </constructor>
       <constructor name="new" c:identifier="json_node_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonNode of @type.
+        <doc xml:space="preserve">Creates a new #JsonNode of @type.
 
 This is a convenience function for json_node_alloc() and json_node_init(),
 and it's the equivalent of:
 
-|[
-  return json_node_init (json_node_alloc (), type);
+|[&lt;!-- language="C" --&gt;
+     json_node_init (json_node_alloc (), type);
 ]|</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
+          <doc xml:space="preserve">the newly created #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <parameter name="type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNodeType</doc>
+            <doc xml:space="preserve">a #JsonNodeType</doc>
             <type name="NodeType" c:type="JsonNodeType"/>
           </parameter>
         </parameters>
       </constructor>
       <method name="copy" c:identifier="json_node_copy">
-        <doc xml:whitespace="preserve">Copies @node. If the node contains complex data types then the reference
-count of the objects is increased.</doc>
+        <doc xml:space="preserve">Copies @node. If the node contains complex data types, their reference
+counts are increased, regardless of whether the node is mutable or
+immutable.
+
+The copy will be immutable if, and only if, @node is immutable. However,
+there should be no need to copy an immutable node.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the copied #JsonNode</doc>
+          <doc xml:space="preserve">the copied #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="dup_array" c:identifier="json_node_dup_array">
-        <doc xml:whitespace="preserve">Retrieves the #JsonArray stored inside a #JsonNode and returns it
+        <doc xml:space="preserve">Retrieves the #JsonArray stored inside a #JsonNode and returns it
 with its reference count increased by one.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonArray with its reference count increased.</doc>
+          <doc xml:space="preserve">the #JsonArray with its reference
+  count increased.</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="dup_object" c:identifier="json_node_dup_object">
-        <doc xml:whitespace="preserve">Retrieves the #JsonObject inside @node. The reference count of
+        <doc xml:space="preserve">Retrieves the #JsonObject inside @node. The reference count of
 the returned object is increased.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonObject</doc>
+          <doc xml:space="preserve">the #JsonObject</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="dup_string" c:identifier="json_node_dup_string">
-        <doc xml:whitespace="preserve">Gets a copy of the string value stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Gets a copy of the string value stored inside a #JsonNode</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated string containing a copy of the #JsonNode contents. Use g_free() to free the allocated resources</doc>
+          <doc xml:space="preserve">a newly allocated string containing a copy
+  of the #JsonNode contents. Use g_free() to free the allocated resources</doc>
           <type name="utf8" c:type="gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
+      <method name="equal" c:identifier="json_node_equal" version="1.2">
+        <doc xml:space="preserve">Check whether @a and @b are equal #JsonNodes, meaning they have the same
+type and same values (checked recursively). Note that integer values are
+compared numerically, ignoring type, so a double value 4.0 is equal to the
+integer value 4.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON node</doc>
+            <type name="Node" c:type="gconstpointer"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve">another JSON node</doc>
+            <type name="Node" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
+      </method>
       <method name="free" c:identifier="json_node_free">
-        <doc xml:whitespace="preserve">Frees the resources allocated by @node.</doc>
+        <doc xml:space="preserve">Frees the resources allocated by @node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_array" c:identifier="json_node_get_array">
-        <doc xml:whitespace="preserve">Retrieves the #JsonArray stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Retrieves the #JsonArray stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonArray</doc>
+          <doc xml:space="preserve">the #JsonArray</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_boolean" c:identifier="json_node_get_boolean">
-        <doc xml:whitespace="preserve">Gets the boolean value stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Gets the boolean value stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boolean value.</doc>
+          <doc xml:space="preserve">a boolean value.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_double" c:identifier="json_node_get_double">
-        <doc xml:whitespace="preserve">Gets the double value stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Gets the double value stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a double value.</doc>
+          <doc xml:space="preserve">a double value.</doc>
           <type name="gdouble" c:type="gdouble"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_int" c:identifier="json_node_get_int">
-        <doc xml:whitespace="preserve">Gets the integer value stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Gets the integer value stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">an integer value.</doc>
+          <doc xml:space="preserve">an integer value.</doc>
           <type name="gint64" c:type="gint64"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
@@ -1277,73 +1453,74 @@ the returned object is increased.</doc>
       <method name="get_node_type"
               c:identifier="json_node_get_node_type"
               version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNodeType of @node</doc>
+        <doc xml:space="preserve">Retrieves the #JsonNodeType of @node</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the node</doc>
+          <doc xml:space="preserve">the type of the node</doc>
           <type name="NodeType" c:type="JsonNodeType"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_object" c:identifier="json_node_get_object">
-        <doc xml:whitespace="preserve">Retrieves the #JsonObject stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Retrieves the #JsonObject stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonObject</doc>
+          <doc xml:space="preserve">the #JsonObject</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_parent" c:identifier="json_node_get_parent">
-        <doc xml:whitespace="preserve">Retrieves the parent #JsonNode of @node.</doc>
+        <doc xml:space="preserve">Retrieves the parent #JsonNode of @node.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the parent node, or %NULL if @node is the root node</doc>
+          <doc xml:space="preserve">the parent node, or %NULL if @node is
+  the root node</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_string" c:identifier="json_node_get_string">
-        <doc xml:whitespace="preserve">Gets the string value stored inside a #JsonNode</doc>
+        <doc xml:space="preserve">Gets the string value stored inside a #JsonNode</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string value.</doc>
+          <doc xml:space="preserve">a string value.</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_value" c:identifier="json_node_get_value">
-        <doc xml:whitespace="preserve">Retrieves a value from a #JsonNode and copies into @value. When done
+        <doc xml:space="preserve">Retrieves a value from a #JsonNode and copies into @value. When done
 using it, call g_value_unset() on the #GValue.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value"
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for an uninitialized value</doc>
+            <doc xml:space="preserve">return location for an uninitialized value</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
         </parameters>
@@ -1351,34 +1528,52 @@ using it, call g_value_unset() on the #GValue.</doc>
       <method name="get_value_type"
               c:identifier="json_node_get_value_type"
               version="0.4">
-        <doc xml:whitespace="preserve">Returns the #GType of the payload of the node.</doc>
+        <doc xml:space="preserve">Returns the #GType of the payload of the node.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GType for the payload.</doc>
+          <doc xml:space="preserve">a #GType for the payload.</doc>
           <type name="GType" c:type="GType"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
+      <method name="hash" c:identifier="json_node_hash" version="1.2">
+        <doc xml:space="preserve">Calculate a hash value for the given @key (a #JsonNode).
+
+The hash is calculated over the node and its value, recursively. If the node
+is immutable, this is a fast operation; otherwise, it scales proportionally
+with the size of the node’s value (for example, with the number of members
+in the #JsonObject if this node contains an object).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">hash value for @key</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON node to hash</doc>
+            <type name="Node" c:type="gconstpointer"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="init" c:identifier="json_node_init" version="0.16">
-        <doc xml:whitespace="preserve">Initializes a @node to a specific @type.
+        <doc xml:space="preserve">Initializes a @node to a specific @type.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of JSON node to initialize @node to</doc>
+            <doc xml:space="preserve">the type of JSON node to initialize @node to</doc>
             <type name="NodeType" c:type="JsonNodeType"/>
           </parameter>
         </parameters>
@@ -1386,23 +1581,26 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_array"
               c:identifier="json_node_init_array"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_ARRAY and sets @array into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_ARRAY and sets @array into it.
 
 This function will take a reference on @array.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
-          <parameter name="array" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the #JsonArray to initialize @node with, or %NULL</doc>
+          <parameter name="array"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">the #JsonArray to initialize @node with, or %NULL</doc>
             <type name="Array" c:type="JsonArray*"/>
           </parameter>
         </parameters>
@@ -1410,21 +1608,21 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_boolean"
               c:identifier="json_node_init_boolean"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a boolean value</doc>
+            <doc xml:space="preserve">a boolean value</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
@@ -1432,41 +1630,41 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_double"
               c:identifier="json_node_init_double"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a floating point value</doc>
+            <doc xml:space="preserve">a floating point value</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
       </method>
       <method name="init_int" c:identifier="json_node_init_int" version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an integer</doc>
+            <doc xml:space="preserve">an integer</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
@@ -1474,17 +1672,17 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_null"
               c:identifier="json_node_init_null"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_NULL.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_NULL.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
@@ -1492,23 +1690,26 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_object"
               c:identifier="json_node_init_object"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_OBJECT and sets @object into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_OBJECT and sets @object into it.
 
 This function will take a reference on @object.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
-          <parameter name="object" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the #JsonObject to initialize @node with, or %NULL</doc>
+          <parameter name="object"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">the #JsonObject to initialize @node with, or %NULL</doc>
             <type name="Object" c:type="JsonObject*"/>
           </parameter>
         </parameters>
@@ -1516,119 +1717,184 @@ the given type, and any data contained will be cleared.</doc>
       <method name="init_string"
               c:identifier="json_node_init_string"
               version="0.16">
-        <doc xml:whitespace="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
+        <doc xml:space="preserve">Initializes @node to %JSON_NODE_VALUE and sets @value into it.
 
 If the node has already been initialized once, it will be reset to
 the given type, and any data contained will be cleared.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initialized #JsonNode</doc>
+          <doc xml:space="preserve">the initialized #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #JsonNode to initialize</doc>
+            <doc xml:space="preserve">the #JsonNode to initialize</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
-          <parameter name="value" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a string value</doc>
+          <parameter name="value"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">a string value</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </method>
+      <method name="is_immutable"
+              c:identifier="json_node_is_immutable"
+              version="1.2">
+        <doc xml:space="preserve">Check whether the given @node has been marked as immutable by calling
+json_node_seal() on it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if the @node is immutable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="is_null" c:identifier="json_node_is_null" version="0.8">
-        <doc xml:whitespace="preserve">Checks whether @node is a %JSON_NODE_NULL
+        <doc xml:space="preserve">Checks whether @node is a %JSON_NODE_NULL.
 
-&lt;note&gt;A null node is not the same as a %NULL #JsonNode&lt;/note&gt;</doc>
+A %JSON_NODE_NULL node is not the same as a %NULL #JsonNode; a
+%JSON_NODE_NULL represents a 'null' value in the JSON tree.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the node is null</doc>
+          <doc xml:space="preserve">%TRUE if the node is null</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="json_node_ref" version="1.2">
+        <doc xml:space="preserve">Increment the reference count of @node.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve">a pointer to @node</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="seal" c:identifier="json_node_seal" version="1.2">
+        <doc xml:space="preserve">Seals the #JsonNode, making it immutable to further changes. In order to be
+sealed, the @node must have a type and value set. The value will be
+recursively sealed — if the node holds an object, that #JsonObject will be
+sealed, etc.
+
+If the @node is already immutable, this is a no-op.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="set_array" c:identifier="json_node_set_array">
-        <doc xml:whitespace="preserve">Sets @array inside @node and increases the #JsonArray reference count</doc>
+        <doc xml:space="preserve">Sets @array inside @node and increases the #JsonArray reference count.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_boolean" c:identifier="json_node_set_boolean">
-        <doc xml:whitespace="preserve">Sets @value as the boolean content of the @node, replacing any existing
-content.</doc>
+        <doc xml:space="preserve">Sets @value as the boolean content of the @node, replacing any existing
+content.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a boolean value</doc>
+            <doc xml:space="preserve">a boolean value</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_double" c:identifier="json_node_set_double">
-        <doc xml:whitespace="preserve">Sets @value as the double content of the @node, replacing any existing
-content.</doc>
+        <doc xml:space="preserve">Sets @value as the double content of the @node, replacing any existing
+content.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a double value</doc>
+            <doc xml:space="preserve">a double value</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_int" c:identifier="json_node_set_int">
-        <doc xml:whitespace="preserve">Sets @value as the integer content of the @node, replacing any existing
-content.</doc>
+        <doc xml:space="preserve">Sets @value as the integer content of the @node, replacing any existing
+content.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an integer value</doc>
+            <doc xml:space="preserve">an integer value</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_object" c:identifier="json_node_set_object">
-        <doc xml:whitespace="preserve">Sets @objects inside @node. The reference count of @object is increased.</doc>
+        <doc xml:space="preserve">Sets @objects inside @node. The reference count of @object is increased.
+
+If @object is %NULL, the node’s existing object is cleared.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+          <parameter name="object"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </parameter>
         </parameters>
@@ -1636,121 +1902,153 @@ content.</doc>
       <method name="set_parent"
               c:identifier="json_node_set_parent"
               version="0.8">
-        <doc xml:whitespace="preserve">Sets the parent #JsonNode of @node</doc>
+        <doc xml:space="preserve">Sets the parent #JsonNode of @node.
+
+It is an error to call this with an immutable @parent. @node may be
+immutable.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="parent" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parent #JsonNode of @node</doc>
+            <doc xml:space="preserve">the parent #JsonNode of @node</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_string" c:identifier="json_node_set_string">
-        <doc xml:whitespace="preserve">Sets @value as the string content of the @node, replacing any existing
-content.</doc>
+        <doc xml:space="preserve">Sets @value as the string content of the @node, replacing any existing
+content.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string value</doc>
+            <doc xml:space="preserve">a string value</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_value" c:identifier="json_node_set_value">
-        <doc xml:whitespace="preserve">Sets @value inside @node. The passed #GValue is copied into the #JsonNode</doc>
+        <doc xml:space="preserve">Sets @value inside @node. The passed #GValue is copied into the #JsonNode.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #GValue to set</doc>
+            <doc xml:space="preserve">the #GValue to set</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
         </parameters>
       </method>
       <method name="take_array" c:identifier="json_node_take_array">
-        <doc xml:whitespace="preserve">Sets @array into @node without increasing the #JsonArray reference count.</doc>
+        <doc xml:space="preserve">Sets @array into @node without increasing the #JsonArray reference count.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="array" transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array" c:type="JsonArray*"/>
           </parameter>
         </parameters>
       </method>
       <method name="take_object" c:identifier="json_node_take_object">
-        <doc xml:whitespace="preserve">Sets @object inside @node. The reference count of @object is not increased.</doc>
+        <doc xml:space="preserve">Sets @object inside @node. The reference count of @object is not increased.
+
+It is an error to call this on an immutable node.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
+            <doc xml:space="preserve">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
           <parameter name="object" transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </parameter>
         </parameters>
       </method>
       <method name="type_name" c:identifier="json_node_type_name">
-        <doc xml:whitespace="preserve">Retrieves the user readable name of the data type contained by @node.</doc>
+        <doc xml:space="preserve">Retrieves the user readable name of the data type contained by @node.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string containing the name of the type. The returned string is owned by the node and should never be modified or freed</doc>
+          <doc xml:space="preserve">a string containing the name of the type. The returned string
+  is owned by the node and should never be modified or freed</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </instance-parameter>
         </parameters>
       </method>
-      <function name="alloc" c:identifier="json_node_alloc" version="0.16">
-        <doc xml:whitespace="preserve">Allocates a new #JsonNode. Use json_node_init() and its variants
-to initialize the returned value.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly allocated #JsonNode. Use json_node_free() to free the resources allocated by this function</doc>
-          <type name="Node" c:type="JsonNode*"/>
+      <method name="unref" c:identifier="json_node_unref" version="1.2">
+        <doc xml:space="preserve">Decrement the reference count of @node. If it reaches zero, the node is
+freed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
-      </function>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="full">
+            <doc xml:space="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
     </record>
-    <enumeration name="NodeType" c:type="JsonNodeType">
-      <doc xml:whitespace="preserve">Indicates the content of a #JsonNode.</doc>
-      <member name="object" value="0" c:identifier="JSON_NODE_OBJECT">
-        <doc xml:whitespace="preserve">The node contains a #JsonObject</doc>
+    <enumeration name="NodeType"
+                 glib:type-name="JsonNodeType"
+                 glib:get-type="json_node_type_get_type"
+                 c:type="JsonNodeType">
+      <doc xml:space="preserve">Indicates the content of a #JsonNode.</doc>
+      <member name="object"
+              value="0"
+              c:identifier="JSON_NODE_OBJECT"
+              glib:nick="object">
+        <doc xml:space="preserve">The node contains a #JsonObject</doc>
       </member>
-      <member name="array" value="1" c:identifier="JSON_NODE_ARRAY">
-        <doc xml:whitespace="preserve">The node contains a #JsonArray</doc>
+      <member name="array"
+              value="1"
+              c:identifier="JSON_NODE_ARRAY"
+              glib:nick="array">
+        <doc xml:space="preserve">The node contains a #JsonArray</doc>
       </member>
-      <member name="value" value="2" c:identifier="JSON_NODE_VALUE">
-        <doc xml:whitespace="preserve">The node contains a fundamental type</doc>
+      <member name="value"
+              value="2"
+              c:identifier="JSON_NODE_VALUE"
+              glib:nick="value">
+        <doc xml:space="preserve">The node contains a fundamental type</doc>
       </member>
-      <member name="null" value="3" c:identifier="JSON_NODE_NULL">
-        <doc xml:whitespace="preserve">Special type, for nodes containing null</doc>
+      <member name="null"
+              value="3"
+              c:identifier="JSON_NODE_NULL"
+              glib:nick="null">
+        <doc xml:space="preserve">Special type, for nodes containing null</doc>
       </member>
     </enumeration>
     <record name="Object"
@@ -1758,38 +2056,39 @@ to initialize the returned value.</doc>
             glib:type-name="JsonObject"
             glib:get-type="json_object_get_type"
             c:symbol-prefix="object">
-      <doc xml:whitespace="preserve">A JSON object type. The contents of the #JsonObject structure are private
+      <doc xml:space="preserve">A JSON object type. The contents of the #JsonObject structure are private
 and should only be accessed by the provided API</doc>
       <constructor name="new" c:identifier="json_object_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonObject, an JSON object type representation.</doc>
+        <doc xml:space="preserve">Creates a new #JsonObject, an JSON object type representation.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonObject</doc>
+          <doc xml:space="preserve">the newly created #JsonObject</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
       </constructor>
       <method name="add_member"
               c:identifier="json_object_add_member"
-              deprecated="Use json_object_set_member() instead"
+              deprecated="1"
               deprecated-version="0.8">
-        <doc xml:whitespace="preserve">Adds a member named @member_name and containing @node into a #JsonObject.
+        <doc xml:space="preserve">Adds a member named @member_name and containing @node into a #JsonObject.
 The object will take ownership of the #JsonNode.
 
 This function will return if the @object already contains a member
 @member_name.</doc>
+        <doc-deprecated xml:space="preserve">Use json_object_set_member() instead</doc-deprecated>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="node" transfer-ownership="full">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -1797,27 +2096,46 @@ This function will return if the @object already contains a member
       <method name="dup_member"
               c:identifier="json_object_dup_member"
               version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of @member_name
+        <doc xml:space="preserve">Retrieves a copy of the #JsonNode containing the value of @member_name
 inside a #JsonObject</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a copy of the node for the requested object member or %NULL. Use json_node_free() when done.</doc>
+          <doc xml:space="preserve">a copy of the node for the requested
+  object member or %NULL. Use json_node_unref() when done.</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
+            <doc xml:space="preserve">the name of the JSON object member to access</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
+      <method name="equal" c:identifier="json_object_equal" version="1.2">
+        <doc xml:space="preserve">Check whether @a and @b are equal #JsonObjects, meaning they have the same
+set of members, and the values of corresponding members are equal.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON object</doc>
+            <type name="Object" c:type="gconstpointer"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve">another JSON object</doc>
+            <type name="Object" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
+      </method>
       <method name="foreach_member"
               c:identifier="json_object_foreach_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Iterates over all members of @object and calls @func on
+        <doc xml:space="preserve">Iterates over all members of @object and calls @func on
 each one of them.
 
 It is safe to change the value of a #JsonNode of the @object
@@ -1828,18 +2146,18 @@ remove members from the @object.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="func"
                      transfer-ownership="none"
                      scope="call"
                      closure="1">
-            <doc xml:whitespace="preserve">the function to be called on each member</doc>
+            <doc xml:space="preserve">the function to be called on each member</doc>
             <type name="ObjectForeach" c:type="JsonObjectForeach"/>
           </parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function</doc>
+            <doc xml:space="preserve">data to be passed to the function</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -1847,21 +2165,21 @@ remove members from the @object.</doc>
       <method name="get_array_member"
               c:identifier="json_object_get_array_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the array
+        <doc xml:space="preserve">Convenience function that retrieves the array
 stored in @member_name of @object
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the array inside the object's member</doc>
+          <doc xml:space="preserve">the array inside the object's member</doc>
           <type name="Array" c:type="JsonArray*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -1869,21 +2187,21 @@ See also: json_object_get_member()</doc>
       <method name="get_boolean_member"
               c:identifier="json_object_get_boolean_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the boolean value
+        <doc xml:space="preserve">Convenience function that retrieves the boolean value
 stored in @member_name of @object
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the boolean value of the object's member</doc>
+          <doc xml:space="preserve">the boolean value of the object's member</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -1891,21 +2209,21 @@ See also: json_object_get_member()</doc>
       <method name="get_double_member"
               c:identifier="json_object_get_double_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the floating point value
+        <doc xml:space="preserve">Convenience function that retrieves the floating point value
 stored in @member_name of @object
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value of the object's member</doc>
+          <doc xml:space="preserve">the floating point value of the object's member</doc>
           <type name="gdouble" c:type="gdouble"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -1913,55 +2231,60 @@ See also: json_object_get_member()</doc>
       <method name="get_int_member"
               c:identifier="json_object_get_int_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the integer value
+        <doc xml:space="preserve">Convenience function that retrieves the integer value
 stored in @member_name of @object
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value of the object's member</doc>
+          <doc xml:space="preserve">the integer value of the object's member</doc>
           <type name="gint64" c:type="gint64"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_member" c:identifier="json_object_get_member">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of @member_name inside
+        <doc xml:space="preserve">Retrieves the #JsonNode containing the value of @member_name inside
 a #JsonObject.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the node for the requested object member, or %NULL</doc>
+          <doc xml:space="preserve">a pointer to the node for the requested object
+  member, or %NULL</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
+            <doc xml:space="preserve">the name of the JSON object member to access</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_members" c:identifier="json_object_get_members">
-        <doc xml:whitespace="preserve">Retrieves all the names of the members of a #JsonObject. You can
+        <doc xml:space="preserve">Retrieves all the names of the members of a #JsonObject. You can
 obtain the value for each member using json_object_get_member().</doc>
         <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList of member names. The content of the list is owned by the #JsonObject and should never be modified or freed. When you have finished using the returned list, use g_list_free() to free the resources it has allocated.</doc>
+          <doc xml:space="preserve">a #GList
+  of member names. The content of the list is owned by the #JsonObject
+  and should never be modified or freed. When you have finished using
+  the returned list, use g_list_free() to free the resources it has
+  allocated.</doc>
           <type name="GLib.List" c:type="GList*">
             <type name="utf8"/>
           </type>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
         </parameters>
@@ -1969,21 +2292,21 @@ obtain the value for each member using json_object_get_member().</doc>
       <method name="get_null_member"
               c:identifier="json_object_get_null_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that checks whether the value
+        <doc xml:space="preserve">Convenience function that checks whether the value
 stored in @member_name of @object is null
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the value is null</doc>
+          <doc xml:space="preserve">%TRUE if the value is null</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -1991,34 +2314,36 @@ See also: json_object_get_member()</doc>
       <method name="get_object_member"
               c:identifier="json_object_get_object_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the object
-stored in @member_name of @object
+        <doc xml:space="preserve">Convenience function that retrieves the object
+stored in @member_name of @object. It is an error to specify a @member_name
+which does not exist.
 
 See also: json_object_get_member()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object inside the object's member</doc>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve">the object inside the object’s
+   member, or %NULL if the value for the member is `null`</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_size" c:identifier="json_object_get_size">
-        <doc xml:whitespace="preserve">Retrieves the number of members of a #JsonObject.</doc>
+        <doc xml:space="preserve">Retrieves the number of members of a #JsonObject.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of members</doc>
+          <doc xml:space="preserve">the number of members</doc>
           <type name="guint" c:type="guint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
         </parameters>
@@ -2026,90 +2351,142 @@ See also: json_object_get_member()</doc>
       <method name="get_string_member"
               c:identifier="json_object_get_string_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the string value
+        <doc xml:space="preserve">Convenience function that retrieves the string value
 stored in @member_name of @object
 
 See also: json_object_get_member()</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value of the object's member</doc>
+          <doc xml:space="preserve">the string value of the object's member</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_values" c:identifier="json_object_get_values">
-        <doc xml:whitespace="preserve">Retrieves all the values of the members of a #JsonObject.</doc>
+        <doc xml:space="preserve">Retrieves all the values of the members of a #JsonObject.</doc>
         <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList of #JsonNode&lt;!-- --&gt;s. The content of the list is owned by the #JsonObject and should never be modified or freed. When you have finished using the returned list, use g_list_free() to free the resources it has allocated.</doc>
+          <doc xml:space="preserve">a #GList of
+  #JsonNodes. The content of the list is owned by the #JsonObject
+  and should never be modified or freed. When you have finished using the
+  returned list, use g_list_free() to free the resources it has allocated.</doc>
           <type name="GLib.List" c:type="GList*">
             <type name="Node"/>
           </type>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="has_member" c:identifier="json_object_has_member">
-        <doc xml:whitespace="preserve">Checks whether @object has a member named @member_name.</doc>
+        <doc xml:space="preserve">Checks whether @object has a member named @member_name.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the JSON object has the requested member</doc>
+          <doc xml:space="preserve">%TRUE if the JSON object has the requested member</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a JSON object member</doc>
+            <doc xml:space="preserve">the name of a JSON object member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
+      <method name="hash" c:identifier="json_object_hash" version="1.2">
+        <doc xml:space="preserve">Calculate a hash value for the given @key (a #JsonObject).
+
+The hash is calculated over the object and all its members, recursively. If
+the object is immutable, this is a fast operation; otherwise, it scales
+proportionally with the number of members in the object.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">hash value for @key</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve">a JSON object to hash</doc>
+            <type name="Object" c:type="gconstpointer"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_immutable"
+              c:identifier="json_object_is_immutable"
+              version="1.2">
+        <doc xml:space="preserve">Check whether the given @object has been marked as immutable by calling
+json_object_seal() on it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if the @object is immutable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonObject</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="ref" c:identifier="json_object_ref">
-        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonObject.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the passed #JsonObject, with the reference count increased by one.</doc>
+        <doc xml:space="preserve">Increase by one the reference count of a #JsonObject.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">the passed #JsonObject, with the reference count
+  increased by one.</doc>
           <type name="Object" c:type="JsonObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="remove_member" c:identifier="json_object_remove_member">
-        <doc xml:whitespace="preserve">Removes @member_name from @object, freeing its allocated resources.</doc>
+        <doc xml:space="preserve">Removes @member_name from @object, freeing its allocated resources.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member to remove</doc>
+            <doc xml:space="preserve">the name of the member to remove</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
+      <method name="seal" c:identifier="json_object_seal" version="1.2">
+        <doc xml:space="preserve">Seals the #JsonObject, making it immutable to further changes. This will
+recursively seal all members of the object too.
+
+If the @object is already immutable, this is a no-op.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonObject</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
       <method name="set_array_member"
               c:identifier="json_object_set_array_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an array @value of
+        <doc xml:space="preserve">Convenience function for setting an array @value of
 @member_name inside @object.
 
 The @object will take ownership of the passed #JsonArray
@@ -2120,15 +2497,15 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="full">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="Array" c:type="JsonArray*"/>
           </parameter>
         </parameters>
@@ -2136,7 +2513,7 @@ See also: json_object_set_member()</doc>
       <method name="set_boolean_member"
               c:identifier="json_object_set_boolean_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a boolean @value of
+        <doc xml:space="preserve">Convenience function for setting a boolean @value of
 @member_name inside @object.
 
 See also: json_object_set_member()</doc>
@@ -2145,15 +2522,15 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
@@ -2161,7 +2538,7 @@ See also: json_object_set_member()</doc>
       <method name="set_double_member"
               c:identifier="json_object_set_double_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a floating point @value
+        <doc xml:space="preserve">Convenience function for setting a floating point @value
 of @member_name inside @object.
 
 See also: json_object_set_member()</doc>
@@ -2170,15 +2547,15 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
@@ -2186,7 +2563,7 @@ See also: json_object_set_member()</doc>
       <method name="set_int_member"
               c:identifier="json_object_set_int_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an integer @value of
+        <doc xml:space="preserve">Convenience function for setting an integer @value of
 @member_name inside @object.
 
 See also: json_object_set_member()</doc>
@@ -2195,15 +2572,15 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
@@ -2211,7 +2588,7 @@ See also: json_object_set_member()</doc>
       <method name="set_member"
               c:identifier="json_object_set_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Sets @node as the value of @member_name inside @object.
+        <doc xml:space="preserve">Sets @node as the value of @member_name inside @object.
 
 If @object already contains a member called @member_name then
 the member's current value is overwritten. Otherwise, a new
@@ -2221,15 +2598,15 @@ member is added to @object.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="node" transfer-ownership="full">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -2237,7 +2614,7 @@ member is added to @object.</doc>
       <method name="set_null_member"
               c:identifier="json_object_set_null_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a null @value of
+        <doc xml:space="preserve">Convenience function for setting a null @value of
 @member_name inside @object.
 
 See also: json_object_set_member()</doc>
@@ -2246,11 +2623,11 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -2258,7 +2635,7 @@ See also: json_object_set_member()</doc>
       <method name="set_object_member"
               c:identifier="json_object_set_object_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an object @value of
+        <doc xml:space="preserve">Convenience function for setting an object @value of
 @member_name inside @object.
 
 The @object will take ownership of the passed #JsonObject
@@ -2269,15 +2646,15 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="full">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="Object" c:type="JsonObject*"/>
           </parameter>
         </parameters>
@@ -2285,7 +2662,7 @@ See also: json_object_set_member()</doc>
       <method name="set_string_member"
               c:identifier="json_object_set_string_member"
               version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a string @value of
+        <doc xml:space="preserve">Convenience function for setting a string @value of
 @member_name inside @object.
 
 See also: json_object_set_member()</doc>
@@ -2294,21 +2671,21 @@ See also: json_object_set_member()</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
+            <doc xml:space="preserve">the name of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
+            <doc xml:space="preserve">the value of the member</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </method>
       <method name="unref" c:identifier="json_object_unref">
-        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonObject. If the
+        <doc xml:space="preserve">Decreases by one the reference count of a #JsonObject. If the
 reference count reaches zero, the object is destroyed and all
 its allocated resources are freed.</doc>
         <return-value transfer-ownership="none">
@@ -2316,14 +2693,14 @@ its allocated resources are freed.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object" c:type="JsonObject*"/>
           </instance-parameter>
         </parameters>
       </method>
     </record>
     <callback name="ObjectForeach" c:type="JsonObjectForeach" version="0.8">
-      <doc xml:whitespace="preserve">The function to be passed to json_object_foreach_member(). You
+      <doc xml:space="preserve">The function to be passed to json_object_foreach_member(). You
 should not add or remove members to and from @object within
 this function. It is safe to change the value of @member_node.</doc>
       <return-value transfer-ownership="none">
@@ -2331,23 +2708,114 @@ this function. It is safe to change the value of @member_node.</doc>
       </return-value>
       <parameters>
         <parameter name="object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterated #JsonObject</doc>
+          <doc xml:space="preserve">the iterated #JsonObject</doc>
           <type name="Object" c:type="JsonObject*"/>
         </parameter>
         <parameter name="member_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the member</doc>
+          <doc xml:space="preserve">the name of the member</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
         <parameter name="member_node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode containing the @member_name value</doc>
+          <doc xml:space="preserve">a #JsonNode containing the @member_name value</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
         <parameter name="user_data" transfer-ownership="none" closure="3">
-          <doc xml:whitespace="preserve">data passed to the function</doc>
+          <doc xml:space="preserve">data passed to the function</doc>
           <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
+    <record name="ObjectIter" c:type="JsonObjectIter" version="1.2">
+      <doc xml:space="preserve">An iterator used to iterate over the members of a #JsonObject. This must
+be allocated on the stack and initialised using json_object_iter_init().
+The order in which members are returned by the iterator is undefined. The
+iterator is invalidated if its #JsonObject is modified during iteration.
+
+All the fields in the #JsonObjectIter structure are private and should
+never be accessed directly.</doc>
+      <field name="priv_pointer" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="6">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <field name="priv_int" readable="0" private="1">
+        <array zero-terminated="0" c:type="int" fixed-size="2">
+          <type name="gint" c:type="int"/>
+        </array>
+      </field>
+      <field name="priv_boolean" readable="0" private="1">
+        <array zero-terminated="0" c:type="gboolean" fixed-size="1">
+          <type name="gboolean" c:type="gboolean"/>
+        </array>
+      </field>
+      <method name="init" c:identifier="json_object_iter_init" version="1.2">
+        <doc xml:space="preserve">Initialise the @iter and associate it with @object.
+
+|[&lt;!-- language="C" --&gt;
+JsonObjectIter iter;
+const gchar *member_name;
+JsonNode *member_node;
+
+json_object_iter_init (&amp;iter, some_object);
+while (json_object_iter_next (&amp;iter, &amp;member_name, &amp;member_node))
+  {
+    // Do something with @member_name and @member_node.
+  }
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve">an uninitialised #JsonObjectIter</doc>
+            <type name="ObjectIter" c:type="JsonObjectIter*"/>
+          </instance-parameter>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve">the #JsonObject to iterate over</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="next" c:identifier="json_object_iter_next" version="1.2">
+        <doc xml:space="preserve">Advance @iter and retrieve the next member in the object. If the end of the
+object is reached, %FALSE is returned and @member_name and @member_node are
+set to invalid values. After that point, the @iter is invalid.
+
+The order in which members are returned by the iterator is undefined. The
+iterator is invalidated if its #JsonObject is modified during iteration.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve">%TRUE if @member_name and @member_node are valid; %FALSE if the end
+   of the object has been reached</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonObjectIter</doc>
+            <type name="ObjectIter" c:type="JsonObjectIter*"/>
+          </instance-parameter>
+          <parameter name="member_name"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="none"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve">return
+   location for the member name, or %NULL to ignore</doc>
+            <type name="utf8" c:type="const gchar**"/>
+          </parameter>
+          <parameter name="member_node"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="none"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve">return
+   location for the member value, or %NULL to ignore</doc>
+            <type name="Node" c:type="JsonNode**"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
     <class name="Parser"
            c:symbol-prefix="parser"
            c:type="JsonParser"
@@ -2355,22 +2823,28 @@ this function. It is safe to change the value of @member_node.</doc>
            glib:type-name="JsonParser"
            glib:get-type="json_parser_get_type"
            glib:type-struct="ParserClass">
-      <doc xml:whitespace="preserve">JSON data streams parser. The contents of the #JsonParser structure are
+      <doc xml:space="preserve">JSON data streams parser. The contents of the #JsonParser structure are
 private and should only be accessed via the provided API.</doc>
       <constructor name="new" c:identifier="json_parser_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonParser instance. You can use the #JsonParser to
+        <doc xml:space="preserve">Creates a new #JsonParser instance. You can use the #JsonParser to
 load a JSON stream from either a file or a buffer and then walk the
 hierarchy using the data types API.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonParser. Use g_object_unref() to release all the memory it allocates.</doc>
+          <doc xml:space="preserve">the newly created #JsonParser. Use g_object_unref()
+  to release all the memory it allocates.</doc>
           <type name="Parser" c:type="JsonParser*"/>
         </return-value>
       </constructor>
-      <function name="error_quark" c:identifier="json_parser_error_quark">
-        <return-value transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
+      <constructor name="new_immutable"
+                   c:identifier="json_parser_new_immutable"
+                   version="1.2">
+        <doc xml:space="preserve">Creates a new #JsonParser instance with its #JsonParser:immutable property
+set to %TRUE to create immutable output trees.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve">a new #JsonParser</doc>
+          <type name="Parser" c:type="JsonParser*"/>
         </return-value>
-      </function>
+      </constructor>
       <virtual-method name="array_element">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -2484,50 +2958,52 @@ hierarchy using the data types API.</doc>
       </virtual-method>
       <method name="get_current_line"
               c:identifier="json_parser_get_current_line">
-        <doc xml:whitespace="preserve">Retrieves the line currently parsed, starting from 1.
+        <doc xml:space="preserve">Retrieves the line currently parsed, starting from 1.
 
 This function has defined behaviour only while parsing; calling this
 function from outside the signal handlers emitted by #JsonParser will
 yield 0.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the currently parsed line, or 0.</doc>
+          <doc xml:space="preserve">the currently parsed line, or 0.</doc>
           <type name="guint" c:type="guint"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_current_pos"
               c:identifier="json_parser_get_current_pos">
-        <doc xml:whitespace="preserve">Retrieves the current position inside the current line, starting
+        <doc xml:space="preserve">Retrieves the current position inside the current line, starting
 from 0.
 
 This function has defined behaviour only while parsing; calling this
 function from outside the signal handlers emitted by #JsonParser will
 yield 0.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position in the current line, or 0.</doc>
+          <doc xml:space="preserve">the position in the current line, or 0.</doc>
           <type name="guint" c:type="guint"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_root" c:identifier="json_parser_get_root">
-        <doc xml:whitespace="preserve">Retrieves the top level node from the parsed JSON stream.</doc>
+        <doc xml:space="preserve">Retrieves the top level node from the parsed JSON stream.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the root #JsonNode . The returned node is owned by the #JsonParser and should never be modified or freed.</doc>
+          <doc xml:space="preserve">the root #JsonNode . The returned
+  node is owned by the #JsonParser and should never be modified
+  or freed.</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
         </parameters>
@@ -2535,7 +3011,7 @@ yield 0.</doc>
       <method name="has_assignment"
               c:identifier="json_parser_has_assignment"
               version="0.4">
-        <doc xml:whitespace="preserve">A JSON data stream might sometimes contain an assignment, like:
+        <doc xml:space="preserve">A JSON data stream might sometimes contain an assignment, like:
 
 |[
   var _json_data = { "member_name" : [ ...
@@ -2548,20 +3024,25 @@ hand value of the assignment. #JsonParser will record, though, the
 existence of the assignment in the data stream and the variable name
 used.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if there was an assignment, %FALSE otherwise. If @variable_name is not %NULL it will be set to the name of the variable used in the assignment. The string is owned by #JsonParser and should never be modified or freed.</doc>
+          <doc xml:space="preserve">%TRUE if there was an assignment, %FALSE otherwise. If
+  @variable_name is not %NULL it will be set to the name of the variable
+  used in the assignment. The string is owned by #JsonParser and should
+  never be modified or freed.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="variable_name"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="none"
+                     optional="1"
                      allow-none="1">
-            <doc xml:whitespace="preserve">Return location for the variable name, or %NULL</doc>
+            <doc xml:space="preserve">Return location for the variable
+  name, or %NULL</doc>
             <type name="utf8" c:type="gchar**"/>
           </parameter>
         </parameters>
@@ -2569,24 +3050,25 @@ used.</doc>
       <method name="load_from_data"
               c:identifier="json_parser_load_from_data"
               throws="1">
-        <doc xml:whitespace="preserve">Loads a JSON stream from a buffer and parses it. You can call this function
+        <doc xml:space="preserve">Loads a JSON stream from a buffer and parses it. You can call this function
 multiple times with the same #JsonParser object, but the contents of the
 parser will be destroyed each time.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the buffer was succesfully parser. In case of error, @error is set accordingly and %FALSE is returned</doc>
+          <doc xml:space="preserve">%TRUE if the buffer was succesfully parser. In case
+  of error, @error is set accordingly and %FALSE is returned</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the buffer to parse</doc>
+            <doc xml:space="preserve">the buffer to parse</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the length of the buffer, or -1</doc>
+            <doc xml:space="preserve">the length of the buffer, or -1</doc>
             <type name="gssize" c:type="gssize"/>
           </parameter>
         </parameters>
@@ -2594,19 +3076,20 @@ parser will be destroyed each time.</doc>
       <method name="load_from_file"
               c:identifier="json_parser_load_from_file"
               throws="1">
-        <doc xml:whitespace="preserve">Loads a JSON stream from the content of @filename and parses it. See
+        <doc xml:space="preserve">Loads a JSON stream from the content of @filename and parses it. See
 json_parser_load_from_data().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the file was successfully loaded and parsed. In case of error, @error is set accordingly and %FALSE is returned</doc>
+          <doc xml:space="preserve">%TRUE if the file was successfully loaded and parsed.
+  In case of error, @error is set accordingly and %FALSE is returned</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the path for the file to parse</doc>
+            <doc xml:space="preserve">the path for the file to parse</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -2615,29 +3098,31 @@ json_parser_load_from_data().</doc>
               c:identifier="json_parser_load_from_stream"
               version="0.12"
               throws="1">
-        <doc xml:whitespace="preserve">Loads the contents of an input stream and parses them.
+        <doc xml:space="preserve">Loads the contents of an input stream and parses them.
 
 If @cancellable is not %NULL, then the operation can be cancelled by
 triggering the @cancellable object from another thread. If the
 operation was cancelled, the error %G_IO_ERROR_CANCELLED will be set
 on the passed @error.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the data stream was successfully read and parsed, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if the data stream was successfully read and
+  parsed, and %FALSE otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an open #GInputStream</doc>
+            <doc xml:space="preserve">an open #GInputStream</doc>
             <type name="Gio.InputStream" c:type="GInputStream*"/>
           </parameter>
           <parameter name="cancellable"
                      transfer-ownership="none"
+                     nullable="1"
                      allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
             <type name="Gio.Cancellable" c:type="GCancellable*"/>
           </parameter>
         </parameters>
@@ -2645,7 +3130,7 @@ on the passed @error.</doc>
       <method name="load_from_stream_async"
               c:identifier="json_parser_load_from_stream_async"
               version="0.12">
-        <doc xml:whitespace="preserve">Asynchronously reads the contents of @stream.
+        <doc xml:space="preserve">Asynchronously reads the contents of @stream.
 
 For more details, see json_parser_load_from_stream() which is the
 synchronous version of this call.
@@ -2658,29 +3143,31 @@ of the operation.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GInputStream</doc>
+            <doc xml:space="preserve">a #GInputStream</doc>
             <type name="Gio.InputStream" c:type="GInputStream*"/>
           </parameter>
           <parameter name="cancellable"
                      transfer-ownership="none"
+                     nullable="1"
                      allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
             <type name="Gio.Cancellable" c:type="GCancellable*"/>
           </parameter>
           <parameter name="callback"
                      transfer-ownership="none"
+                     nullable="1"
                      allow-none="1"
                      scope="async"
                      closure="3">
-            <doc xml:whitespace="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
+            <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
           </parameter>
           <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
+            <doc xml:space="preserve">the data to pass to @callback</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -2689,23 +3176,35 @@ of the operation.</doc>
               c:identifier="json_parser_load_from_stream_finish"
               version="0.12"
               throws="1">
-        <doc xml:whitespace="preserve">Finishes an asynchronous stream loading started with
+        <doc xml:space="preserve">Finishes an asynchronous stream loading started with
 json_parser_load_from_stream_async().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the content of the stream was successfully retrieves and parsed, and %FALSE otherwise. In case of error, the #GError will be filled accordingly.</doc>
+          <doc xml:space="preserve">%TRUE if the content of the stream was successfully retrieves
+  and parsed, and %FALSE otherwise. In case of error, the #GError will be
+  filled accordingly.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="parser" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonParser</doc>
+            <doc xml:space="preserve">a #JsonParser</doc>
             <type name="Parser" c:type="JsonParser*"/>
           </instance-parameter>
           <parameter name="result" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
+            <doc xml:space="preserve">a #GAsyncResult</doc>
             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
           </parameter>
         </parameters>
       </method>
+      <property name="immutable"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve">Whether the #JsonNode tree built by the #JsonParser should be immutable
+when created. Making the output immutable on creation avoids the expense
+of traversing it to make it immutable later.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
       <field name="parent_instance" readable="0" private="1">
         <type name="GObject.Object" c:type="GObject"/>
       </field>
@@ -2713,7 +3212,7 @@ json_parser_load_from_stream_async().</doc>
         <type name="ParserPrivate" c:type="JsonParserPrivate*"/>
       </field>
       <glib:signal name="array-element" when="last">
-        <doc xml:whitespace="preserve">The ::array-element signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::array-element signal is emitted each time the #JsonParser
 has successfully parsed a single element of a #JsonArray. The
 array and element index are passed to the signal handlers.</doc>
         <return-value transfer-ownership="none">
@@ -2721,63 +3220,63 @@ array and element index are passed to the signal handlers.</doc>
         </return-value>
         <parameters>
           <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <doc xml:space="preserve">a #JsonArray</doc>
             <type name="Array"/>
           </parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the newly parsed element</doc>
+            <doc xml:space="preserve">the index of the newly parsed element</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="array-end" when="last">
-        <doc xml:whitespace="preserve">The ::array-end signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::array-end signal is emitted each time the #JsonParser
 has successfully parsed an entire #JsonArray</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parsed #JsonArray</doc>
+            <doc xml:space="preserve">the parsed #JsonArray</doc>
             <type name="Array"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="array-start" when="last">
-        <doc xml:whitespace="preserve">The ::array-start signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::array-start signal is emitted each time the #JsonParser
 starts parsing a #JsonArray</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </glib:signal>
       <glib:signal name="error" when="last">
-        <doc xml:whitespace="preserve">The ::error signal is emitted each time a #JsonParser encounters
+        <doc xml:space="preserve">The ::error signal is emitted each time a #JsonParser encounters
 an error in a JSON stream.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="error" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to the #GError</doc>
+            <doc xml:space="preserve">a pointer to the #GError</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="object-end" when="last">
-        <doc xml:whitespace="preserve">The ::object-end signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::object-end signal is emitted each time the #JsonParser
 has successfully parsed an entire #JsonObject.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parsed #JsonObject</doc>
+            <doc xml:space="preserve">the parsed #JsonObject</doc>
             <type name="Object"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="object-member" when="last">
-        <doc xml:whitespace="preserve">The ::object-member signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::object-member signal is emitted each time the #JsonParser
 has successfully parsed a single member of a #JsonObject. The
 object and member are passed to the signal handlers.</doc>
         <return-value transfer-ownership="none">
@@ -2785,31 +3284,31 @@ object and member are passed to the signal handlers.</doc>
         </return-value>
         <parameters>
           <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <doc xml:space="preserve">a #JsonObject</doc>
             <type name="Object"/>
           </parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the newly parsed member</doc>
+            <doc xml:space="preserve">the name of the newly parsed member</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="object-start" when="last">
-        <doc xml:whitespace="preserve">The ::object-start signal is emitted each time the #JsonParser
+        <doc xml:space="preserve">The ::object-start signal is emitted each time the #JsonParser
 starts parsing a #JsonObject.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </glib:signal>
       <glib:signal name="parse-end" when="last">
-        <doc xml:whitespace="preserve">The ::parse-end signal is emitted when the parser successfully
+        <doc xml:space="preserve">The ::parse-end signal is emitted when the parser successfully
 finished parsing a JSON data stream</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </glib:signal>
       <glib:signal name="parse-start" when="last">
-        <doc xml:whitespace="preserve">The ::parse-start signal is emitted when the parser began parsing
+        <doc xml:space="preserve">The ::parse-start signal is emitted when the parser began parsing
 a JSON data stream.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -2819,7 +3318,7 @@ a JSON data stream.</doc>
     <record name="ParserClass"
             c:type="JsonParserClass"
             glib:is-gtype-struct-for="Parser">
-      <doc xml:whitespace="preserve">#JsonParser class.</doc>
+      <doc xml:space="preserve">#JsonParser class.</doc>
       <field name="parent_class" readable="0" private="1">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -3009,43 +3508,67 @@ a JSON data stream.</doc>
         </callback>
       </field>
     </record>
-    <enumeration name="ParserError" c:type="JsonParserError">
-      <doc xml:whitespace="preserve">Error enumeration for #JsonParser
+    <enumeration name="ParserError"
+                 glib:type-name="JsonParserError"
+                 glib:get-type="json_parser_error_get_type"
+                 c:type="JsonParserError"
+                 glib:error-domain="json-parser-error-quark">
+      <doc xml:space="preserve">Error enumeration for #JsonParser
 
 This enumeration can be extended at later date</doc>
-      <member name="parse" value="0" c:identifier="JSON_PARSER_ERROR_PARSE">
-        <doc xml:whitespace="preserve">parse error</doc>
+      <member name="parse"
+              value="0"
+              c:identifier="JSON_PARSER_ERROR_PARSE"
+              glib:nick="parse">
+        <doc xml:space="preserve">parse error</doc>
       </member>
       <member name="trailing_comma"
               value="1"
-              c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA">
-        <doc xml:whitespace="preserve">unexpected trailing comma</doc>
+              c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA"
+              glib:nick="trailing-comma">
+        <doc xml:space="preserve">unexpected trailing comma</doc>
       </member>
       <member name="missing_comma"
               value="2"
-              c:identifier="JSON_PARSER_ERROR_MISSING_COMMA">
-        <doc xml:whitespace="preserve">expected comma</doc>
+              c:identifier="JSON_PARSER_ERROR_MISSING_COMMA"
+              glib:nick="missing-comma">
+        <doc xml:space="preserve">expected comma</doc>
       </member>
       <member name="missing_colon"
               value="3"
-              c:identifier="JSON_PARSER_ERROR_MISSING_COLON">
-        <doc xml:whitespace="preserve">expected colon</doc>
+              c:identifier="JSON_PARSER_ERROR_MISSING_COLON"
+              glib:nick="missing-colon">
+        <doc xml:space="preserve">expected colon</doc>
       </member>
       <member name="invalid_bareword"
               value="4"
-              c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD">
-        <doc xml:whitespace="preserve">invalid bareword</doc>
+              c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD"
+              glib:nick="invalid-bareword">
+        <doc xml:space="preserve">invalid bareword</doc>
       </member>
       <member name="empty_member_name"
               value="5"
-              c:identifier="JSON_PARSER_ERROR_EMPTY_MEMBER_NAME">
-        <doc xml:whitespace="preserve">empty member name (Since: 0.16)</doc>
+              c:identifier="JSON_PARSER_ERROR_EMPTY_MEMBER_NAME"
+              glib:nick="empty-member-name">
+        <doc xml:space="preserve">empty member name (Since: 0.16)</doc>
       </member>
-      <member name="unknown"
+      <member name="invalid_data"
               value="6"
-              c:identifier="JSON_PARSER_ERROR_UNKNOWN">
-        <doc xml:whitespace="preserve">unknown error</doc>
+              c:identifier="JSON_PARSER_ERROR_INVALID_DATA"
+              glib:nick="invalid-data">
+        <doc xml:space="preserve">invalid data (Since: 0.18)</doc>
+      </member>
+      <member name="unknown"
+              value="7"
+              c:identifier="JSON_PARSER_ERROR_UNKNOWN"
+              glib:nick="unknown">
+        <doc xml:space="preserve">unknown error</doc>
       </member>
+      <function name="quark" c:identifier="json_parser_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
     </enumeration>
     <record name="ParserPrivate" c:type="JsonParserPrivate" disguised="1">
     </record>
@@ -3057,45 +3580,42 @@ This enumeration can be extended at later date</doc>
            glib:type-name="JsonPath"
            glib:get-type="json_path_get_type"
            glib:type-struct="PathClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonPath&lt;/structname&gt; structure is an opaque object
-whose members cannot be directly accessed except through the provided
-API.</doc>
+      <doc xml:space="preserve">The `JsonPath` structure is an opaque object whose members cannot be
+directly accessed except through the provided API.</doc>
       <constructor name="new" c:identifier="json_path_new" version="0.14">
-        <doc xml:whitespace="preserve">Creates a new #JsonPath instance.
+        <doc xml:space="preserve">Creates a new #JsonPath instance.
 
 Once created, the #JsonPath object should be used with json_path_compile()
 and json_path_match().</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonPath instance. Use g_object_unref() to free the allocated resources when done</doc>
+          <doc xml:space="preserve">the newly created #JsonPath instance. Use
+  g_object_unref() to free the allocated resources when done</doc>
           <type name="Path" c:type="JsonPath*"/>
         </return-value>
       </constructor>
-      <function name="error_quark" c:identifier="json_path_error_quark">
-        <return-value transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </return-value>
-      </function>
       <function name="query"
                 c:identifier="json_path_query"
                 version="0.14"
                 throws="1">
-        <doc xml:whitespace="preserve">Queries a JSON tree using a JSONPath expression.
+        <doc xml:space="preserve">Queries a JSON tree using a JSONPath expression.
 
 This function is a simple wrapper around json_path_new(),
 json_path_compile() and json_path_match(). It implicitly
 creates a #JsonPath instance, compiles @expression and
 matches it against the JSON tree pointed by @root.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly-created #JsonNode of type %JSON_NODE_ARRAY containing an array of matching #JsonNode&lt;!-- --&gt;s. Use json_node_free() when done</doc>
+          <doc xml:space="preserve">a newly-created #JsonNode of type
+  %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
+  Use json_node_unref() when done</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <parameter name="expression" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a JSONPath expression</doc>
+            <doc xml:space="preserve">a JSONPath expression</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
           <parameter name="root" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the root of a JSON tree</doc>
+            <doc xml:space="preserve">the root of a JSON tree</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3104,41 +3624,45 @@ matches it against the JSON tree pointed by @root.</doc>
               c:identifier="json_path_compile"
               version="0.14"
               throws="1">
-        <doc xml:whitespace="preserve">Validates and decomposes @expression.
+        <doc xml:space="preserve">Validates and decomposes @expression.
 
 A JSONPath expression must be compiled before calling json_path_match().</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success; on error, @error will be set with the %JSON_PATH_ERROR domain and a code from the #JsonPathError enumeration, and %FALSE will be returned</doc>
+          <doc xml:space="preserve">%TRUE on success; on error, @error will be set with
+  the %JSON_PATH_ERROR domain and a code from the #JsonPathError
+  enumeration, and %FALSE will be returned</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="path" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonPath</doc>
+            <doc xml:space="preserve">a #JsonPath</doc>
             <type name="Path" c:type="JsonPath*"/>
           </instance-parameter>
           <parameter name="expression" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a JSONPath expression</doc>
+            <doc xml:space="preserve">a JSONPath expression</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </method>
       <method name="match" c:identifier="json_path_match" version="0.14">
-        <doc xml:whitespace="preserve">Matches the JSON tree pointed by @root using the expression compiled
+        <doc xml:space="preserve">Matches the JSON tree pointed by @root using the expression compiled
 into the #JsonPath.
 
-The matching #JsonNode&lt;!-- --&gt;s will be copied into a #JsonArray and
+The matching #JsonNodes will be copied into a #JsonArray and
 returned wrapped in a #JsonNode.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly-created #JsonNode of type %JSON_NODE_ARRAY containing an array of matching #JsonNode&lt;!-- --&gt;s. Use json_node_free() when done</doc>
+          <doc xml:space="preserve">a newly-created #JsonNode of type
+  %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
+  Use json_node_unref() when done</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="path" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a compiled #JsonPath</doc>
+            <doc xml:space="preserve">a compiled #JsonPath</doc>
             <type name="Path" c:type="JsonPath*"/>
           </instance-parameter>
           <parameter name="root" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3149,16 +3673,27 @@ returned wrapped in a #JsonNode.</doc>
             disguised="1"
             glib:is-gtype-struct-for="Path"
             version="0.14">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonPathClass&lt;/structname&gt; structure is an opaque
-object class whose members cannot be directly accessed.</doc>
+      <doc xml:space="preserve">The `JsonPathClass` structure is an opaque object class whose members
+cannot be directly accessed.</doc>
     </record>
-    <enumeration name="PathError" version="0.14" c:type="JsonPathError">
-      <doc xml:whitespace="preserve">Error code enumeration for the %JSON_PATH_ERROR domain.</doc>
-      <member name="path_error_invalid_query"
+    <enumeration name="PathError"
+                 version="0.14"
+                 glib:type-name="JsonPathError"
+                 glib:get-type="json_path_error_get_type"
+                 c:type="JsonPathError"
+                 glib:error-domain="json-path-error-quark">
+      <doc xml:space="preserve">Error code enumeration for the %JSON_PATH_ERROR domain.</doc>
+      <member name="query"
               value="0"
-              c:identifier="JSON_PATH_ERROR_INVALID_QUERY">
-        <doc xml:whitespace="preserve">Invalid query</doc>
+              c:identifier="JSON_PATH_ERROR_INVALID_QUERY"
+              glib:nick="query">
+        <doc xml:space="preserve">Invalid query</doc>
       </member>
+      <function name="quark" c:identifier="json_path_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
     </enumeration>
     <class name="Reader"
            c:symbol-prefix="reader"
@@ -3168,39 +3703,39 @@ object class whose members cannot be directly accessed.</doc>
            glib:type-name="JsonReader"
            glib:get-type="json_reader_get_type"
            glib:type-struct="ReaderClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReader&lt;/structname&gt; structure contains only
-private data and should only be accessed using the provided API</doc>
+      <doc xml:space="preserve">The `JsonReader` structure contains only private data and should
+be accessed using the provided API</doc>
       <constructor name="new" c:identifier="json_reader_new" version="0.12">
-        <doc xml:whitespace="preserve">Creates a new #JsonReader. You can use this object to read the contents of
+        <doc xml:space="preserve">Creates a new #JsonReader. You can use this object to read the contents of
 the JSON tree starting from @node</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonReader. Use g_object_unref() to release the allocated resources when done</doc>
+          <doc xml:space="preserve">the newly created #JsonReader. Use g_object_unref() to
+  release the allocated resources when done</doc>
           <type name="Reader" c:type="JsonReader*"/>
         </return-value>
         <parameters>
-          <parameter name="node" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #JsonNode, or %NULL</doc>
+          <parameter name="node"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">a #JsonNode, or %NULL</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
       </constructor>
-      <function name="error_quark" c:identifier="json_reader_error_quark">
-        <return-value transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </return-value>
-      </function>
       <method name="count_elements"
               c:identifier="json_reader_count_elements"
               version="0.12">
-        <doc xml:whitespace="preserve">Counts the elements of the current position, if @reader is
+        <doc xml:space="preserve">Counts the elements of the current position, if @reader is
 positioned on an array</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of elements, or -1. In case of failure the #JsonReader is set in an error state</doc>
+          <doc xml:space="preserve">the number of elements, or -1. In case of failure
+  the #JsonReader is set in an error state</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3208,15 +3743,16 @@ positioned on an array</doc>
       <method name="count_members"
               c:identifier="json_reader_count_members"
               version="0.12">
-        <doc xml:whitespace="preserve">Counts the members of the current position, if @reader is
+        <doc xml:space="preserve">Counts the members of the current position, if @reader is
 positioned on an object</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of members, or -1. In case of failure the #JsonReader is set in an error state</doc>
+          <doc xml:space="preserve">the number of members, or -1. In case of failure
+  the #JsonReader is set in an error state</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3224,7 +3760,7 @@ positioned on an object</doc>
       <method name="end_element"
               c:identifier="json_reader_end_element"
               version="0.12">
-        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
+        <doc xml:space="preserve">Moves the cursor back to the previous node after being positioned
 inside an array
 
 This function resets the error state of @reader, if any was set</doc>
@@ -3233,7 +3769,7 @@ This function resets the error state of @reader, if any was set</doc>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3241,7 +3777,7 @@ This function resets the error state of @reader, if any was set</doc>
       <method name="end_member"
               c:identifier="json_reader_end_member"
               version="0.12">
-        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
+        <doc xml:space="preserve">Moves the cursor back to the previous node after being positioned
 inside an object
 
 This function resets the error state of @reader, if any was set</doc>
@@ -3250,7 +3786,7 @@ This function resets the error state of @reader, if any was set</doc>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3258,14 +3794,14 @@ This function resets the error state of @reader, if any was set</doc>
       <method name="get_boolean_value"
               c:identifier="json_reader_get_boolean_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the boolean value of the current position of @reader</doc>
+        <doc xml:space="preserve">Retrieves the boolean value of the current position of @reader</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the boolean value</doc>
+          <doc xml:space="preserve">the boolean value</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3273,14 +3809,14 @@ This function resets the error state of @reader, if any was set</doc>
       <method name="get_double_value"
               c:identifier="json_reader_get_double_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the floating point value of the current position of @reader</doc>
+        <doc xml:space="preserve">Retrieves the floating point value of the current position of @reader</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value</doc>
+          <doc xml:space="preserve">the floating point value</doc>
           <type name="gdouble" c:type="gdouble"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3288,15 +3824,15 @@ This function resets the error state of @reader, if any was set</doc>
       <method name="get_error"
               c:identifier="json_reader_get_error"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the #GError currently set on @reader, if the #JsonReader
+        <doc xml:space="preserve">Retrieves the #GError currently set on @reader, if the #JsonReader
 is in error state</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the pointer to the error, or %NULL</doc>
+          <doc xml:space="preserve">the pointer to the error, or %NULL</doc>
           <type name="GLib.Error" c:type="const GError*"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3304,14 +3840,14 @@ is in error state</doc>
       <method name="get_int_value"
               c:identifier="json_reader_get_int_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the integer value of the current position of @reader</doc>
+        <doc xml:space="preserve">Retrieves the integer value of the current position of @reader</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
+          <doc xml:space="preserve">the integer value</doc>
           <type name="gint64" c:type="gint64"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3319,14 +3855,14 @@ is in error state</doc>
       <method name="get_member_name"
               c:identifier="json_reader_get_member_name"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves the name of the current member.</doc>
+        <doc xml:space="preserve">Retrieves the name of the current member.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the member, or %NULL</doc>
+          <doc xml:space="preserve">the name of the member, or %NULL</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3334,14 +3870,14 @@ is in error state</doc>
       <method name="get_null_value"
               c:identifier="json_reader_get_null_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the value of the current position of @reader is 'null'</doc>
+        <doc xml:space="preserve">Checks whether the value of the current position of @reader is 'null'</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if 'null' is set, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if 'null' is set, and %FALSE otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3349,14 +3885,14 @@ is in error state</doc>
       <method name="get_string_value"
               c:identifier="json_reader_get_string_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the string value of the current position of @reader</doc>
+        <doc xml:space="preserve">Retrieves the string value of the current position of @reader</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value</doc>
+          <doc xml:space="preserve">the string value</doc>
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3364,14 +3900,16 @@ is in error state</doc>
       <method name="get_value"
               c:identifier="json_reader_get_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode of the current position of @reader</doc>
+        <doc xml:space="preserve">Retrieves the #JsonNode of the current position of @reader</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode, or %NULL. The returned node is owned by the #JsonReader and it should not be modified or freed directly</doc>
+          <doc xml:space="preserve">a #JsonNode, or %NULL. The returned node
+  is owned by the #JsonReader and it should not be modified or freed
+  directly</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3379,14 +3917,15 @@ is in error state</doc>
       <method name="is_array"
               c:identifier="json_reader_is_array"
               version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an array</doc>
+        <doc xml:space="preserve">Checks whether the @reader is currently on an array</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an array, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if the #JsonReader is on an array, and %FALSE
+  otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3394,14 +3933,15 @@ is in error state</doc>
       <method name="is_object"
               c:identifier="json_reader_is_object"
               version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an object</doc>
+        <doc xml:space="preserve">Checks whether the @reader is currently on an object</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an object, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if the #JsonReader is on an object, and %FALSE
+  otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3409,14 +3949,15 @@ is in error state</doc>
       <method name="is_value"
               c:identifier="json_reader_is_value"
               version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on a value</doc>
+        <doc xml:space="preserve">Checks whether the @reader is currently on a value</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on a value, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE if the #JsonReader is on a value, and %FALSE
+  otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3424,17 +3965,19 @@ is in error state</doc>
       <method name="list_members"
               c:identifier="json_reader_list_members"
               version="0.14">
-        <doc xml:whitespace="preserve">Retrieves a list of member names from the current position, if @reader
+        <doc xml:space="preserve">Retrieves a list of member names from the current position, if @reader
 is positioned on an object.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated, %NULL-terminated array of strings holding the members name. Use g_strfreev() when done.</doc>
+          <doc xml:space="preserve">a newly allocated, %NULL-terminated
+  array of strings holding the members name. Use g_strfreev() when
+  done.</doc>
           <array c:type="gchar**">
             <type name="utf8"/>
           </array>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
         </parameters>
@@ -3442,7 +3985,7 @@ is positioned on an object.</doc>
       <method name="read_element"
               c:identifier="json_reader_read_element"
               version="0.12">
-        <doc xml:whitespace="preserve">Advances the cursor of @reader to the element @index_ of the array
+        <doc xml:space="preserve">Advances the cursor of @reader to the element @index_ of the array
 or the object at the current position.
 
 You can use the json_reader_get_value* family of functions to retrieve
@@ -3468,18 +4011,32 @@ json_reader_end_element (reader);
 
 If @reader is not currently on an array or an object, or if the @index_ is
 bigger than the size of the array or the object, the #JsonReader will be
-put in an error state until json_reader_end_element() is called.</doc>
+put in an error state until json_reader_end_element() is called. This means
+that if used conditionally, json_reader_end_element() must be called on both
+code paths:
+
+|[
+if (!json_reader_read_element (reader, 1))
+  {
+    json_reader_end_element (reader);
+    g_set_error (error, …);
+    return FALSE;
+  }
+
+str_value = json_reader_get_string_value (reader);
+json_reader_end_element (reader);
+]|</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE on success, and %FALSE otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
           <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element</doc>
+            <doc xml:space="preserve">the index of the element</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
@@ -3487,7 +4044,7 @@ put in an error state until json_reader_end_element() is called.</doc>
       <method name="read_member"
               c:identifier="json_reader_read_member"
               version="0.12">
-        <doc xml:whitespace="preserve">Advances the cursor of @reader to the @member_name of the object at the
+        <doc xml:space="preserve">Advances the cursor of @reader to the @member_name of the object at the
 current position.
 
 You can use the json_reader_get_value* family of functions to retrieve
@@ -3504,27 +4061,40 @@ reposition the cursor inside the #JsonReader, e.g.:
 |[
 json_reader_read_member (reader, "author");
 author = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
+json_reader_end_member (reader);
 
-json_reader_read_element (reader, "title");
+json_reader_read_member (reader, "title");
 title = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
+json_reader_end_member (reader);
 ]|
 
 If @reader is not currently on an object, or if the @member_name is not
 defined in the object, the #JsonReader will be put in an error state until
-json_reader_end_member() is called.</doc>
+json_reader_end_member() is called. This means that if used conditionally,
+json_reader_end_member() must be called on both code paths:
+
+|[
+if (!json_reader_read_member (reader, "title"))
+  {
+    json_reader_end_member (reader);
+    g_set_error (error, …);
+    return FALSE;
+  }
+
+str_value = json_reader_get_string_value (reader);
+json_reader_end_member (reader);
+]|</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
+          <doc xml:space="preserve">%TRUE on success, and %FALSE otherwise</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
           <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member to read</doc>
+            <doc xml:space="preserve">the name of the member to read</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -3532,7 +4102,7 @@ json_reader_end_member() is called.</doc>
       <method name="set_root"
               c:identifier="json_reader_set_root"
               version="0.12">
-        <doc xml:whitespace="preserve">Sets the root #JsonNode to be read by @reader. The @reader will take
+        <doc xml:space="preserve">Sets the root #JsonNode to be read by @reader. The @reader will take
 a copy of @root
 
 If another #JsonNode is currently set as root, it will be replaced.</doc>
@@ -3541,11 +4111,14 @@ If another #JsonNode is currently set as root, it will be replaced.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="reader" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonReader</doc>
+            <doc xml:space="preserve">a #JsonReader</doc>
             <type name="Reader" c:type="JsonReader*"/>
           </instance-parameter>
-          <parameter name="root" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
+          <parameter name="root"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve">a #JsonNode</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3555,7 +4128,7 @@ If another #JsonNode is currently set as root, it will be replaced.</doc>
                 writable="1"
                 construct="1"
                 transfer-ownership="none">
-        <doc xml:whitespace="preserve">The root of the JSON tree that the #JsonReader should read.</doc>
+        <doc xml:space="preserve">The root of the JSON tree that the #JsonReader should read.</doc>
         <type name="Node"/>
       </property>
       <field name="parent_instance" readable="0" private="1">
@@ -3569,8 +4142,7 @@ If another #JsonNode is currently set as root, it will be replaced.</doc>
             c:type="JsonReaderClass"
             glib:is-gtype-struct-for="Reader"
             version="0.12">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReaderClass&lt;/structname&gt; structure contains only
-private data</doc>
+      <doc xml:space="preserve">The `JsonReaderClass` structure contains only private data</doc>
       <field name="parent_class" readable="0" private="1">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -3610,43 +4182,62 @@ private data</doc>
         </callback>
       </field>
     </record>
-    <enumeration name="ReaderError" version="0.12" c:type="JsonReaderError">
-      <doc xml:whitespace="preserve">Error codes enumeration for #JsonReader errors</doc>
+    <enumeration name="ReaderError"
+                 version="0.12"
+                 glib:type-name="JsonReaderError"
+                 glib:get-type="json_reader_error_get_type"
+                 c:type="JsonReaderError"
+                 glib:error-domain="json-reader-error-quark">
+      <doc xml:space="preserve">Error codes enumeration for #JsonReader errors</doc>
       <member name="no_array"
               value="0"
-              c:identifier="JSON_READER_ERROR_NO_ARRAY">
-        <doc xml:whitespace="preserve">No array found at the current position</doc>
+              c:identifier="JSON_READER_ERROR_NO_ARRAY"
+              glib:nick="no-array">
+        <doc xml:space="preserve">No array found at the current position</doc>
       </member>
       <member name="invalid_index"
               value="1"
-              c:identifier="JSON_READER_ERROR_INVALID_INDEX">
-        <doc xml:whitespace="preserve">Index out of bounds</doc>
+              c:identifier="JSON_READER_ERROR_INVALID_INDEX"
+              glib:nick="invalid-index">
+        <doc xml:space="preserve">Index out of bounds</doc>
       </member>
       <member name="no_object"
               value="2"
-              c:identifier="JSON_READER_ERROR_NO_OBJECT">
-        <doc xml:whitespace="preserve">No object found at the current position</doc>
+              c:identifier="JSON_READER_ERROR_NO_OBJECT"
+              glib:nick="no-object">
+        <doc xml:space="preserve">No object found at the current position</doc>
       </member>
       <member name="invalid_member"
               value="3"
-              c:identifier="JSON_READER_ERROR_INVALID_MEMBER">
-        <doc xml:whitespace="preserve">Member not found</doc>
+              c:identifier="JSON_READER_ERROR_INVALID_MEMBER"
+              glib:nick="invalid-member">
+        <doc xml:space="preserve">Member not found</doc>
       </member>
       <member name="invalid_node"
               value="4"
-              c:identifier="JSON_READER_ERROR_INVALID_NODE">
-        <doc xml:whitespace="preserve">No valid node found at the current position</doc>
+              c:identifier="JSON_READER_ERROR_INVALID_NODE"
+              glib:nick="invalid-node">
+        <doc xml:space="preserve">No valid node found at the current position</doc>
       </member>
       <member name="no_value"
               value="5"
-              c:identifier="JSON_READER_ERROR_NO_VALUE">
-        <doc xml:whitespace="preserve">The node at the current position does not hold a value</doc>
+              c:identifier="JSON_READER_ERROR_NO_VALUE"
+              glib:nick="no-value">
+        <doc xml:space="preserve">The node at the current position does not
+  hold a value</doc>
       </member>
       <member name="invalid_type"
               value="6"
-              c:identifier="JSON_READER_ERROR_INVALID_TYPE">
-        <doc xml:whitespace="preserve">The node at the current position does not hold a value of the desired type</doc>
+              c:identifier="JSON_READER_ERROR_INVALID_TYPE"
+              glib:nick="invalid-type">
+        <doc xml:space="preserve">The node at the current position does not
+  hold a value of the desired type</doc>
       </member>
+      <function name="quark" c:identifier="json_reader_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
     </enumeration>
     <record name="ReaderPrivate" c:type="JsonReaderPrivate" disguised="1">
     </record>
@@ -3658,33 +4249,34 @@ private data</doc>
                glib:type-struct="SerializableIface">
       <virtual-method name="deserialize_property"
                       invoker="deserialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
+        <doc xml:space="preserve">Asks a #JsonSerializable implementation to deserialize the
 property contained inside @property_node into @value.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <doc xml:space="preserve">%TRUE if the property was successfully deserialized.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value"
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <doc xml:space="preserve">a pointer to an uninitialized #GValue</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
           <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3692,33 +4284,46 @@ property contained inside @property_node into @value.</doc>
       <virtual-method name="find_property"
                       invoker="find_property"
                       version="0.14">
-        <doc xml:whitespace="preserve">FIXME</doc>
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.find_property() implementation on
+the @serializable instance. *</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GParamSpec for the property or %NULL if no property was found</doc>
+          <doc xml:space="preserve">the #GParamSpec for the property
+  or %NULL if no property was found</doc>
           <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </virtual-method>
-      <virtual-method name="get_property" invoker="get_property">
+      <virtual-method name="get_property"
+                      invoker="get_property"
+                      version="0.14">
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.get_property() implementation
+on the @serializable instance.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve">return location for the property value</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
         </parameters>
@@ -3737,42 +4342,50 @@ property contained inside @property_node into @value.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="serialize_property" invoker="serialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
+        <doc xml:space="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
 property into a #JsonNode object.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+          <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable object</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
+            <doc xml:space="preserve">the value of the property</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </virtual-method>
-      <virtual-method name="set_property" invoker="set_property">
+      <virtual-method name="set_property"
+                      invoker="set_property"
+                      version="0.14">
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.set_property() implementation
+on the @serializable instance.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve">the property value to set</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
         </parameters>
@@ -3780,13 +4393,13 @@ property into a #JsonNode object.</doc>
       <method name="default_deserialize_property"
               c:identifier="json_serializable_default_deserialize_property"
               version="0.10">
-        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
+        <doc xml:space="preserve">Calls the default implementation of the #JsonSerializable
 deserialize_property() virtual function
 
 This function can be used inside a custom implementation
 of the deserialize_property() virtual function in lieu of:
 
-|[
+|[&lt;!-- language="C" --&gt;
   JsonSerializable *iface;
   gboolean res;
 
@@ -3797,28 +4410,28 @@ of the deserialize_property() virtual function in lieu of:
                                      property_node);
 ]|</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <doc xml:space="preserve">%TRUE if the property was successfully deserialized.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable</doc>
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <doc xml:space="preserve">a pointer to an uninitialized #GValue</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
           <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3826,13 +4439,15 @@ of the deserialize_property() virtual function in lieu of:
       <method name="default_serialize_property"
               c:identifier="json_serializable_default_serialize_property"
               version="0.10">
-        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
-serialize_property() virtual function
+        <doc xml:space="preserve">Calls the default implementation of the #JsonSerializable
+#JsonSerializableIface.serialize_property() virtual function.
 
 This function can be used inside a custom implementation
-of the serialize_property() virtual function in lieu of:
+of the #JsonSerializableIface.serialize_property() virtual
+function in lieu of calling the default implementation
+through g_type_default_interface_peek():
 
-|[
+|[&lt;!-- language="C" --&gt;
   JsonSerializable *iface;
   JsonNode *node;
 
@@ -3842,58 +4457,59 @@ of the serialize_property() virtual function in lieu of:
                                     pspec);
 ]|</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+          <doc xml:space="preserve">a #JsonNode containing the serialized
+  property</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable object</doc>
+            <doc xml:space="preserve">a #JsonSerializable object</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
+            <doc xml:space="preserve">the value of the property</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </method>
       <method name="deserialize_property"
               c:identifier="json_serializable_deserialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
+        <doc xml:space="preserve">Asks a #JsonSerializable implementation to deserialize the
 property contained inside @property_node into @value.</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <doc xml:space="preserve">%TRUE if the property was successfully deserialized.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable</doc>
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value"
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <doc xml:space="preserve">a pointer to an uninitialized #GValue</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
           <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
             <type name="Node" c:type="JsonNode*"/>
           </parameter>
         </parameters>
@@ -3901,35 +4517,46 @@ property contained inside @property_node into @value.</doc>
       <method name="find_property"
               c:identifier="json_serializable_find_property"
               version="0.14">
-        <doc xml:whitespace="preserve">FIXME</doc>
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.find_property() implementation on
+the @serializable instance. *</doc>
         <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GParamSpec for the property or %NULL if no property was found</doc>
+          <doc xml:space="preserve">the #GParamSpec for the property
+  or %NULL if no property was found</doc>
           <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable</doc>
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_property"
-              c:identifier="json_serializable_get_property">
+              c:identifier="json_serializable_get_property"
+              version="0.14">
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.get_property() implementation
+on the @serializable instance.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve">return location for the property value</doc>
             <type name="GObject.Value" c:type="GValue*"/>
           </parameter>
         </parameters>
@@ -3937,67 +4564,76 @@ property contained inside @property_node into @value.</doc>
       <method name="list_properties"
               c:identifier="json_serializable_list_properties"
               version="0.14">
-        <doc xml:whitespace="preserve">FIXME</doc>
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.list_properties() implementation on
+the @serializable instance.</doc>
         <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">an array of #GParamSpec. Use g_free() to free the array when done.</doc>
+          <doc xml:space="preserve">an array
+  of #GParamSpec. Use g_free() to free the array when done.</doc>
           <array length="0" zero-terminated="0" c:type="GParamSpec**">
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </array>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable</doc>
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="n_pspecs"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the length of the array of #GParamSpec returned by the function</doc>
+            <doc xml:space="preserve">return location for the length of the array
+  of #GParamSpec returned by the function</doc>
             <type name="guint" c:type="guint*"/>
           </parameter>
         </parameters>
       </method>
       <method name="serialize_property"
               c:identifier="json_serializable_serialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
+        <doc xml:space="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
 property into a #JsonNode object.</doc>
         <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+          <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
           <type name="Node" c:type="JsonNode*"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonSerializable object</doc>
+            <doc xml:space="preserve">a #JsonSerializable object</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
+            <doc xml:space="preserve">the name of the property</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
+            <doc xml:space="preserve">the value of the property</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_property"
-              c:identifier="json_serializable_set_property">
+              c:identifier="json_serializable_set_property"
+              version="0.14">
+        <doc xml:space="preserve">Calls the #JsonSerializableIface.set_property() implementation
+on the @serializable instance.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:space="preserve">a #JsonSerializable</doc>
             <type name="Serializable" c:type="JsonSerializable*"/>
           </instance-parameter>
           <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve">a #GParamSpec</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </parameter>
           <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve">the property value to set</doc>
             <type name="GObject.Value" c:type="const GValue*"/>
           </parameter>
         </parameters>
@@ -4006,7 +4642,7 @@ property into a #JsonNode object.</doc>
     <record name="SerializableIface"
             c:type="JsonSerializableIface"
             glib:is-gtype-struct-for="Serializable">
-      <doc xml:whitespace="preserve">Interface that allows serializing and deserializing #GObject&lt;!-- --&gt;s
+      <doc xml:space="preserve">Interface that allows serializing and deserializing #GObject instances
 with properties storing complex data types. The json_serialize_gobject()
 function will check if the passed #GObject implements this interface,
 so it can also be used to override the default property serialization
@@ -4017,23 +4653,24 @@ sequence.</doc>
       <field name="serialize_property">
         <callback name="serialize_property">
           <return-value transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
             <type name="Node" c:type="JsonNode*"/>
           </return-value>
           <parameters>
             <parameter name="serializable" transfer-ownership="none">
+              <doc xml:space="preserve">a #JsonSerializable object</doc>
               <type name="Serializable" c:type="JsonSerializable*"/>
             </parameter>
             <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
+              <doc xml:space="preserve">the name of the property</doc>
               <type name="utf8" c:type="const gchar*"/>
             </parameter>
             <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the value of the property</doc>
+              <doc xml:space="preserve">the value of the property</doc>
               <type name="GObject.Value" c:type="const GValue*"/>
             </parameter>
             <parameter name="pspec" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GParamSpec</doc>
+              <doc xml:space="preserve">a #GParamSpec</doc>
               <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
             </parameter>
           </parameters>
@@ -4042,30 +4679,31 @@ sequence.</doc>
       <field name="deserialize_property">
         <callback name="deserialize_property">
           <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+            <doc xml:space="preserve">%TRUE if the property was successfully deserialized.</doc>
             <type name="gboolean" c:type="gboolean"/>
           </return-value>
           <parameters>
             <parameter name="serializable" transfer-ownership="none">
+              <doc xml:space="preserve">a #JsonSerializable</doc>
               <type name="Serializable" c:type="JsonSerializable*"/>
             </parameter>
             <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
+              <doc xml:space="preserve">the name of the property</doc>
               <type name="utf8" c:type="const gchar*"/>
             </parameter>
             <parameter name="value"
                        direction="out"
                        caller-allocates="1"
                        transfer-ownership="none">
-              <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+              <doc xml:space="preserve">a pointer to an uninitialized #GValue</doc>
               <type name="GObject.Value" c:type="GValue*"/>
             </parameter>
             <parameter name="pspec" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GParamSpec</doc>
+              <doc xml:space="preserve">a #GParamSpec</doc>
               <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
             </parameter>
             <parameter name="property_node" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+              <doc xml:space="preserve">a #JsonNode containing the serialized property</doc>
               <type name="Node" c:type="JsonNode*"/>
             </parameter>
           </parameters>
@@ -4074,15 +4712,17 @@ sequence.</doc>
       <field name="find_property">
         <callback name="find_property">
           <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #GParamSpec for the property or %NULL if no property was found</doc>
+            <doc xml:space="preserve">the #GParamSpec for the property
+  or %NULL if no property was found</doc>
             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
           </return-value>
           <parameters>
             <parameter name="serializable" transfer-ownership="none">
+              <doc xml:space="preserve">a #JsonSerializable</doc>
               <type name="Serializable" c:type="JsonSerializable*"/>
             </parameter>
             <parameter name="name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
+              <doc xml:space="preserve">the name of the property</doc>
               <type name="utf8" c:type="const char*"/>
             </parameter>
           </parameters>
@@ -4110,12 +4750,15 @@ sequence.</doc>
           </return-value>
           <parameters>
             <parameter name="serializable" transfer-ownership="none">
+              <doc xml:space="preserve">a #JsonSerializable</doc>
               <type name="Serializable" c:type="JsonSerializable*"/>
             </parameter>
             <parameter name="pspec" transfer-ownership="none">
+              <doc xml:space="preserve">a #GParamSpec</doc>
               <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
             </parameter>
             <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve">the property value to set</doc>
               <type name="GObject.Value" c:type="const GValue*"/>
             </parameter>
           </parameters>
@@ -4128,34 +4771,45 @@ sequence.</doc>
           </return-value>
           <parameters>
             <parameter name="serializable" transfer-ownership="none">
+              <doc xml:space="preserve">a #JsonSerializable</doc>
               <type name="Serializable" c:type="JsonSerializable*"/>
             </parameter>
             <parameter name="pspec" transfer-ownership="none">
+              <doc xml:space="preserve">a #GParamSpec</doc>
               <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
             </parameter>
-            <parameter name="value" transfer-ownership="none">
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve">return location for the property value</doc>
               <type name="GObject.Value" c:type="GValue*"/>
             </parameter>
           </parameters>
         </callback>
       </field>
     </record>
+    <constant name="VERSION_S" value="1.2.0" c:type="JSON_VERSION_S">
+      <doc xml:space="preserve">JSON-GLib version, encoded as a string, useful for printing and
+concatenation.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
     <function name="boxed_can_deserialize"
               c:identifier="json_boxed_can_deserialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Checks whether it is possible to deserialize a #GBoxed of
+      <doc xml:space="preserve">Checks whether it is possible to deserialize a #GBoxed of
 type @gboxed_type from a #JsonNode of type @node_type</doc>
       <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the type can be deserialized, %FALSE otherwise</doc>
+        <doc xml:space="preserve">%TRUE if the type can be deserialized, %FALSE otherwise</doc>
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode type</doc>
+          <doc xml:space="preserve">a #JsonNode type</doc>
           <type name="NodeType" c:type="JsonNodeType"/>
         </parameter>
       </parameters>
@@ -4163,24 +4817,26 @@ type @gboxed_type from a #JsonNode of type @node_type</doc>
     <function name="boxed_can_serialize"
               c:identifier="json_boxed_can_serialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Checks whether it is possible to serialize a #GBoxed of
+      <doc xml:space="preserve">Checks whether it is possible to serialize a #GBoxed of
 type @gboxed_type into a #JsonNode. The type of the
 #JsonNode is placed inside @node_type if the function
 returns %TRUE and it's undefined otherwise.</doc>
       <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the type can be serialized, and %FALSE otherwise.</doc>
+        <doc xml:space="preserve">%TRUE if the type can be serialized,
+  and %FALSE otherwise.</doc>
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node_type"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonNode type to which the boxed type can be serialized into</doc>
+          <doc xml:space="preserve">the #JsonNode type to which the boxed type can be
+  serialized into</doc>
           <type name="NodeType" c:type="JsonNodeType*"/>
         </parameter>
       </parameters>
@@ -4188,18 +4844,20 @@ returns %TRUE and it's undefined otherwise.</doc>
     <function name="boxed_deserialize"
               c:identifier="json_boxed_deserialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Deserializes @node into a #GBoxed of @gboxed_type</doc>
+      <doc xml:space="preserve">Deserializes @node into a #GBoxed of @gboxed_type</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly allocated #GBoxed. Use g_boxed_free() to release the resources allocated by this function</doc>
+        <doc xml:space="preserve">the newly allocated #GBoxed. Use
+  g_boxed_free() to release the resources allocated by this
+  function</doc>
         <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode</doc>
+          <doc xml:space="preserve">a #JsonNode</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
       </parameters>
@@ -4208,22 +4866,23 @@ returns %TRUE and it's undefined otherwise.</doc>
               c:identifier="json_boxed_register_deserialize_func"
               version="0.10"
               introspectable="0">
-      <doc xml:whitespace="preserve">Registers a deserialization function for a #GBoxed of type @gboxed_type
+      <doc xml:space="preserve">Registers a deserialization function for a #GBoxed of type @gboxed_type
 from a #JsonNode of type @node_type</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a node type</doc>
+          <doc xml:space="preserve">a node type</doc>
           <type name="NodeType" c:type="JsonNodeType"/>
         </parameter>
         <parameter name="deserialize_func" transfer-ownership="none">
-          <doc xml:whitespace="preserve">deserialization function for @boxed_type from a #JsonNode of type @node_type</doc>
+          <doc xml:space="preserve">deserialization function for @boxed_type from
+  a #JsonNode of type @node_type</doc>
           <type name="BoxedDeserializeFunc" c:type="JsonBoxedDeserializeFunc"/>
         </parameter>
       </parameters>
@@ -4232,22 +4891,23 @@ from a #JsonNode of type @node_type</doc>
               c:identifier="json_boxed_register_serialize_func"
               version="0.10"
               introspectable="0">
-      <doc xml:whitespace="preserve">Registers a serialization function for a #GBoxed of type @gboxed_type
+      <doc xml:space="preserve">Registers a serialization function for a #GBoxed of type @gboxed_type
 to a #JsonNode of type @node_type</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a node type</doc>
+          <doc xml:space="preserve">a node type</doc>
           <type name="NodeType" c:type="JsonNodeType"/>
         </parameter>
         <parameter name="serialize_func" transfer-ownership="none">
-          <doc xml:whitespace="preserve">serialization function for @boxed_type into a #JsonNode of type @node_type</doc>
+          <doc xml:space="preserve">serialization function for @boxed_type into
+  a #JsonNode of type @node_type</doc>
           <type name="BoxedSerializeFunc" c:type="JsonBoxedSerializeFunc"/>
         </parameter>
       </parameters>
@@ -4255,19 +4915,20 @@ to a #JsonNode of type @node_type</doc>
     <function name="boxed_serialize"
               c:identifier="json_boxed_serialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type,
+      <doc xml:space="preserve">Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type,
 into a #JsonNode</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #JsonNode with the serialization of the boxed type, or %NULL if serialization either failed or was not possible</doc>
+        <doc xml:space="preserve">a #JsonNode with the serialization of the
+  boxed type, or %NULL if serialization either failed or was not possible</doc>
         <type name="Node" c:type="JsonNode*"/>
       </return-value>
       <parameters>
         <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
+          <doc xml:space="preserve">a boxed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="boxed" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to a #GBoxed of type @gboxed_type</doc>
+          <doc xml:space="preserve">a pointer to a #GBoxed of type @gboxed_type</doc>
           <type name="gpointer" c:type="gconstpointer"/>
         </parameter>
       </parameters>
@@ -4275,51 +4936,75 @@ into a #JsonNode</doc>
     <function name="construct_gobject"
               c:identifier="json_construct_gobject"
               version="0.4"
-              deprecated="Use json_gobject_from_data() instead"
+              deprecated="1"
               deprecated-version="0.10"
               throws="1">
-      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
+      <doc xml:space="preserve">Deserializes a JSON data stream and creates the corresponding
 #GObject class. If @gtype implements the #JsonSerializableIface
 interface, it will be asked to deserialize all the JSON members
 into the respective properties; otherwise, the default implementation
 will be used to translate the compatible JSON native types.
 
 Note: the JSON data stream must be an object declaration.</doc>
+      <doc-deprecated xml:space="preserve">Use json_gobject_from_data() instead</doc-deprecated>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
+        <doc xml:space="preserve">a #GObject or %NULL</doc>
         <type name="GObject.Object" c:type="GObject*"/>
       </return-value>
       <parameters>
         <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
+          <doc xml:space="preserve">the #GType of object to construct</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a JSON data stream</doc>
+          <doc xml:space="preserve">a JSON data stream</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
         <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">length of the data stream</doc>
+          <doc xml:space="preserve">length of the data stream</doc>
           <type name="gsize" c:type="gsize"/>
         </parameter>
       </parameters>
     </function>
+    <function name="from_string"
+              c:identifier="json_from_string"
+              version="1.2"
+              throws="1">
+      <doc xml:space="preserve">Parses the string in @str and returns a #JsonNode representing
+the JSON tree.
+
+In case of parsing error, this function returns %NULL and sets
+@error appropriately.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve">a #JsonNode, or %NULL</doc>
+        <type name="Node" c:type="JsonNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <doc xml:space="preserve">a valid UTF-8 string containing JSON data</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
     <function name="gobject_deserialize"
               c:identifier="json_gobject_deserialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Creates a new #GObject of type @gtype, and constructs it
+      <doc xml:space="preserve">Creates a new #GObject of type @gtype, and constructs it
 using the members of the passed #JsonObject</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">The newly created #GObject instance. Use g_object_unref() to free the resources allocated by this function</doc>
+        <doc xml:space="preserve">The newly created #GObject
+  instance. Use g_object_unref() to free the resources
+  allocated by this function</doc>
         <type name="GObject.Object" c:type="GObject*"/>
       </return-value>
       <parameters>
         <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the #GObject to create</doc>
+          <doc xml:space="preserve">the type of the #GObject to create</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_OBJECT describing the instance of type @gtype</doc>
+          <doc xml:space="preserve">a #JsonNode of type %JSON_NODE_OBJECT describing the
+  instance of type @gtype</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
       </parameters>
@@ -4328,7 +5013,7 @@ using the members of the passed #JsonObject</doc>
               c:identifier="json_gobject_from_data"
               version="0.10"
               throws="1">
-      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
+      <doc xml:space="preserve">Deserializes a JSON data stream and creates the corresponding
 #GObject class. If @gtype implements the #JsonSerializableIface
 interface, it will be asked to deserialize all the JSON members
 into the respective properties; otherwise, the default implementation
@@ -4336,20 +5021,20 @@ will be used to translate the compatible JSON native types.
 
 Note: the JSON data stream must be an object declaration.</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
+        <doc xml:space="preserve">a #GObject or %NULL</doc>
         <type name="GObject.Object" c:type="GObject*"/>
       </return-value>
       <parameters>
         <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
+          <doc xml:space="preserve">the #GType of object to construct</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a JSON data stream</doc>
+          <doc xml:space="preserve">a JSON data stream</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
         <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">length of the data stream, or -1 if it is NUL-terminated</doc>
+          <doc xml:space="preserve">length of the data stream, or -1 if it is NUL-terminated</doc>
           <type name="gssize" c:type="gssize"/>
         </parameter>
       </parameters>
@@ -4357,16 +5042,18 @@ Note: the JSON data stream must be an object declaration.</doc>
     <function name="gobject_serialize"
               c:identifier="json_gobject_serialize"
               version="0.10">
-      <doc xml:whitespace="preserve">Creates a #JsonNode representing the passed #GObject
+      <doc xml:space="preserve">Creates a #JsonNode representing the passed #GObject
 instance. Each member of the returned JSON object will
 map to a property of the #GObject</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly created #JsonNode of type %JSON_NODE_OBJECT. Use json_node_free() to free the resources allocated by this function</doc>
+        <doc xml:space="preserve">the newly created #JsonNode
+  of type %JSON_NODE_OBJECT. Use json_node_unref() to free
+  the resources allocated by this function</doc>
         <type name="Node" c:type="JsonNode*"/>
       </return-value>
       <parameters>
         <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
+          <doc xml:space="preserve">a #GObject</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </parameter>
       </parameters>
@@ -4374,7 +5061,7 @@ map to a property of the #GObject</doc>
     <function name="gobject_to_data"
               c:identifier="json_gobject_to_data"
               version="0.10">
-      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream, iterating recursively
+      <doc xml:space="preserve">Serializes a #GObject into a JSON data stream, iterating recursively
 over each property.
 
 If @gobject implements the #JsonSerializableIface interface, it will
@@ -4382,19 +5069,19 @@ be asked to serialize all its properties; otherwise, the default
 implementation will be use to translate the compatible types into
 JSON native types.</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
+        <doc xml:space="preserve">a JSON data stream representing the passed #GObject</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
+          <doc xml:space="preserve">a #GObject</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </parameter>
         <parameter name="length"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
+          <doc xml:space="preserve">return value for the length of the buffer, or %NULL</doc>
           <type name="gsize" c:type="gsize*"/>
         </parameter>
       </parameters>
@@ -4403,7 +5090,7 @@ JSON native types.</doc>
               c:identifier="json_gvariant_deserialize"
               version="0.14"
               throws="1">
-      <doc xml:whitespace="preserve">Converts a JSON data structure to a GVariant value using @signature to
+      <doc xml:space="preserve">Converts a JSON data structure to a GVariant value using @signature to
 resolve ambiguous data types. If no error occurs, the resulting #GVariant
 is guaranteed to conform to @signature.
 
@@ -4417,16 +5104,20 @@ in the JSON nodes.
 The returned variant has a floating reference that will need to be sunk
 by the caller code.</doc>
       <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">A newly created, floating #GVariant compliant with @signature, or %NULL on error</doc>
+        <doc xml:space="preserve">A newly created, floating #GVariant
+  compliant with @signature, or %NULL on error</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
       <parameters>
         <parameter name="json_node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #JsonNode to convert</doc>
+          <doc xml:space="preserve">A #JsonNode to convert</doc>
           <type name="Node" c:type="JsonNode*"/>
         </parameter>
-        <parameter name="signature" transfer-ownership="none" allow-none="1">
-          <doc xml:whitespace="preserve">A valid #GVariant type string, or %NULL</doc>
+        <parameter name="signature"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve">A valid #GVariant type string, or %NULL</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
       </parameters>
@@ -4435,7 +5126,7 @@ by the caller code.</doc>
               c:identifier="json_gvariant_deserialize_data"
               version="0.14"
               throws="1">
-      <doc xml:whitespace="preserve">Converts a JSON string to a #GVariant value. This method works exactly
+      <doc xml:space="preserve">Converts a JSON string to a #GVariant value. This method works exactly
 like json_gvariant_deserialize(), but takes a JSON encoded string instead.
 The string is first converted to a #JsonNode using #JsonParser, and then
 json_gvariant_deserialize() is called.
@@ -4443,20 +5134,24 @@ json_gvariant_deserialize() is called.
 The returned variant has a floating reference that will need to be sunk
 by the caller code.</doc>
       <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">A newly created, floating #GVariant compliant with @signature, or %NULL on error</doc>
+        <doc xml:space="preserve">A newly created, floating #GVariant compliant
+  with @signature, or %NULL on error</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
       <parameters>
         <parameter name="json" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A JSON data string</doc>
+          <doc xml:space="preserve">A JSON data string</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
         <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The length of @json, or -1 if %NULL-terminated</doc>
+          <doc xml:space="preserve">The length of @json, or -1 if %NULL-terminated</doc>
           <type name="gssize" c:type="gssize"/>
         </parameter>
-        <parameter name="signature" transfer-ownership="none" allow-none="1">
-          <doc xml:whitespace="preserve">A valid #GVariant type string, or %NULL</doc>
+        <parameter name="signature"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve">A valid #GVariant type string, or %NULL</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
       </parameters>
@@ -4464,14 +5159,15 @@ by the caller code.</doc>
     <function name="gvariant_serialize"
               c:identifier="json_gvariant_serialize"
               version="0.14">
-      <doc xml:whitespace="preserve">Converts @variant to a JSON tree.</doc>
+      <doc xml:space="preserve">Converts @variant to a JSON tree.</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">A #JsonNode representing the root of the JSON data structure obtained from @variant</doc>
+        <doc xml:space="preserve">A #JsonNode representing the root of the
+  JSON data structure obtained from @variant</doc>
         <type name="Node" c:type="JsonNode*"/>
       </return-value>
       <parameters>
         <parameter name="variant" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #GVariant to convert</doc>
+          <doc xml:space="preserve">A #GVariant to convert</doc>
           <type name="GLib.Variant" c:type="GVariant*"/>
         </parameter>
       </parameters>
@@ -4479,64 +5175,153 @@ by the caller code.</doc>
     <function name="gvariant_serialize_data"
               c:identifier="json_gvariant_serialize_data"
               version="0.14">
-      <doc xml:whitespace="preserve">Converts @variant to its JSON encoded string representation. This method
+      <doc xml:space="preserve">Converts @variant to its JSON encoded string representation. This method
 is actually a helper function. It uses json_gvariant_serialize() to obtain the
 JSON tree, and then #JsonGenerator to stringify it.</doc>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">The JSON encoded string corresponding to @variant</doc>
+        <doc xml:space="preserve">The JSON encoded string corresponding to
+  @variant</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="variant" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #GVariant to convert</doc>
+          <doc xml:space="preserve">A #GVariant to convert</doc>
           <type name="GLib.Variant" c:type="GVariant*"/>
         </parameter>
         <parameter name="length"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full"
+                   optional="1"
                    allow-none="1">
-          <doc xml:whitespace="preserve">Return location for the length of the returned string, or %NULL</doc>
+          <doc xml:space="preserve">Return location for the length of the returned
+  string, or %NULL</doc>
           <type name="gsize" c:type="gsize*"/>
         </parameter>
       </parameters>
     </function>
-    <function name="node_alloc"
-              c:identifier="json_node_alloc"
-              moved-to="Node.alloc"
-              version="0.16">
-      <doc xml:whitespace="preserve">Allocates a new #JsonNode. Use json_node_init() and its variants
-to initialize the returned value.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly allocated #JsonNode. Use json_node_free() to free the resources allocated by this function</doc>
-        <type name="Node" c:type="JsonNode*"/>
+    <function name="parser_error_quark"
+              c:identifier="json_parser_error_quark"
+              moved-to="ParserError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="path_error_quark"
+              c:identifier="json_path_error_quark"
+              moved-to="PathError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="reader_error_quark"
+              c:identifier="json_reader_error_quark"
+              moved-to="ReaderError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
       </return-value>
     </function>
     <function name="serialize_gobject"
               c:identifier="json_serialize_gobject"
-              deprecated="Use json_gobject_to_data() instead"
+              deprecated="1"
               deprecated-version="0.10">
-      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream. If @gobject implements
+      <doc xml:space="preserve">Serializes a #GObject into a JSON data stream. If @gobject implements
 the #JsonSerializableIface interface, it will be asked to serizalize all
 its properties; otherwise, the default implementation will be use to
 translate the compatible types into JSON native types.</doc>
+      <doc-deprecated xml:space="preserve">Use json_gobject_to_data() instead</doc-deprecated>
       <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
+        <doc xml:space="preserve">a JSON data stream representing the passed #GObject</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
+          <doc xml:space="preserve">a #GObject</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </parameter>
         <parameter name="length"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
+          <doc xml:space="preserve">return value for the length of the buffer, or %NULL</doc>
           <type name="gsize" c:type="gsize*"/>
         </parameter>
       </parameters>
     </function>
+    <function name="string_compare"
+              c:identifier="json_string_compare"
+              version="1.2">
+      <doc xml:space="preserve">Check whether @a and @b are equal UTF-8 JSON strings and return an ordering
+over them in strcmp() style.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve">an integer less than zero if @a &lt; @b, equal to zero if @a == @b, and
+   greater than zero if @a &gt; @b</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:space="preserve">a JSON string</doc>
+          <type name="utf8" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:space="preserve">another JSON string</doc>
+          <type name="utf8" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_equal"
+              c:identifier="json_string_equal"
+              version="1.2">
+      <doc xml:space="preserve">Check whether @a and @b are equal UTF-8 JSON strings.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:space="preserve">a JSON string</doc>
+          <type name="utf8" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:space="preserve">another JSON string</doc>
+          <type name="utf8" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_hash" c:identifier="json_string_hash" version="1.2">
+      <doc xml:space="preserve">Calculate a hash value for the given @key (a UTF-8 JSON string).
+
+Note: Member names are compared byte-wise, without applying any Unicode
+decomposition or normalisation. This is not explicitly mentioned in the JSON
+standard (ECMA-404), but is assumed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve">hash value for @key</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="key" transfer-ownership="none">
+          <doc xml:space="preserve">a JSON string to hash</doc>
+          <type name="utf8" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="to_string" c:identifier="json_to_string" version="1.2">
+      <doc xml:space="preserve">Generates a stringified JSON representation of the contents of
+the passed @node.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve">the string representation of the #JsonNode</doc>
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:space="preserve">a #JsonNode</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+        <parameter name="pretty" transfer-ownership="none">
+          <doc xml:space="preserve">whether the output should be prettyfied for printing</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
   </namespace>
 </repository>
index b65fdd9..1755879 100644 (file)
@@ -1,68 +1,60 @@
-include $(top_srcdir)/build/autotools/Makefile.am.silent
-include $(top_srcdir)/build/autotools/Makefile.am.gtest
-
-if ENABLE_GLIB_TEST
-# build this directory *before* the tests/
-SUBDIRS = . tests
-endif
-
-DIST_SUBDIRS = tests
+# preamble
 
 NULL =
-
-INCLUDES = -I$(top_srcdir) -I$(top_builddir)
-
-AM_CPPFLAGS = \
-       -DPREFIX=\""$(prefix)"\"        \
-       -DLIBDIR=\""$(libdir)"\"        \
-       -DJSON_COMPILATION=1            \
-       -DG_LOG_DOMAIN=\"Json\"         \
-       $(JSON_DEBUG_CFLAGS)            \
-       $(NULL)
-
-AM_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS) $(JSON_GCOV_CFLAGS)
-
+AM_CPPFLAGS =
+AM_CFLAGS =
 BUILT_SOURCES =
-
 CLEANFILES =
-DISTCLEANFILES = json-version.h
+EXTRA_DIST =
+DISTCLEANFILES =
+lib_LTLIBRARIES =
+bin_PROGRAMS =
 
+# build the tests last
+SUBDIRS = . tests
+
+# main library
 source_h = \
-       $(top_srcdir)/json-glib/json-builder.h          \
-       $(top_srcdir)/json-glib/json-generator.h        \
-       $(top_srcdir)/json-glib/json-gobject.h          \
-       $(top_srcdir)/json-glib/json-gvariant.h         \
-       $(top_srcdir)/json-glib/json-parser.h           \
-       $(top_srcdir)/json-glib/json-path.h             \
-       $(top_srcdir)/json-glib/json-reader.h           \
-       $(top_srcdir)/json-glib/json-types.h            \
+       json-builder.h          \
+       json-generator.h        \
+       json-gobject.h          \
+       json-gvariant.h         \
+       json-parser.h           \
+       json-path.h             \
+       json-reader.h           \
+       json-types.h            \
+       json-utils.h            \
+       json-version-macros.h   \
        $(NULL)
 
 source_h_private = \
-       $(top_srcdir)/json-glib/json-debug.h            \
-       $(top_srcdir)/json-glib/json-gobject-private.h  \
-       $(top_srcdir)/json-glib/json-scanner.h          \
-       $(top_srcdir)/json-glib/json-types-private.h    \
+       json-debug.h            \
+       json-gobject-private.h  \
+       json-scanner.h          \
+       json-types-private.h    \
        $(NULL)
 
 source_c = \
-       $(srcdir)/json-array.c          \
-       $(srcdir)/json-builder.c        \
-       $(srcdir)/json-debug.c          \
-       $(srcdir)/json-gboxed.c         \
-       $(srcdir)/json-generator.c      \
-       $(srcdir)/json-gobject.c        \
-       $(srcdir)/json-gvariant.c       \
-       $(srcdir)/json-node.c           \
-       $(srcdir)/json-object.c         \
-       $(srcdir)/json-parser.c         \
-       $(srcdir)/json-path.c           \
-       $(srcdir)/json-reader.c         \
-       $(srcdir)/json-scanner.c        \
-       $(srcdir)/json-serializable.c   \
-       $(srcdir)/json-value.c          \
+       json-array.c            \
+       json-builder.c  \
+       json-debug.c            \
+       json-gboxed.c           \
+       json-generator.c        \
+       json-gobject.c  \
+       json-gvariant.c \
+       json-node.c             \
+       json-object.c   \
+       json-parser.c   \
+       json-path.c             \
+       json-reader.c           \
+       json-scanner.c  \
+       json-serializable.c     \
+       json-utils.c            \
+       json-value.c            \
        $(NULL)
 
+DISTCLEANFILES += json-version.h
+
 # glib-mkenums rules
 glib_enum_h = json-enum-types.h
 glib_enum_c = json-enum-types.c
@@ -71,34 +63,58 @@ include $(top_srcdir)/build/autotools/Makefile.am.enums
 
 # glib-genmarshal rules
 glib_marshal_list = json-marshal.list
-glib_marshal_prefix = _json_marshal
+glib_marshal_prefix = json_marshal
 include $(top_srcdir)/build/autotools/Makefile.am.marshal
 
-lib_LTLIBRARIES = libjson-glib-1.0.la
-
+lib_LTLIBRARIES += libjson-glib-1.0.la
+
+libjson_glib_1_0_la_CPPFLAGS = \
+       -DPREFIX=\""$(prefix)"\" \
+       -DLIBDIR=\""$(libdir)"\" \
+       -DJSON_LOCALEDIR=\""$(localedir)"\" \
+       -DJSON_COMPILATION=1 \
+       -DG_LOG_DOMAIN=\"Json\" \
+       -I$(top_srcdir) \
+       -I$(top_builddir) \
+       $(JSON_DEBUG_CFLAGS) \
+       $(NULL)
+libjson_glib_1_0_la_CFLAGS = $(JSON_CFLAGS) $(JSON_HIDDEN_VISIBILITY_CFLAG) $(MAINTAINER_CFLAGS) $(JSON_GCOV_CFLAGS)
 libjson_glib_1_0_la_LIBADD = $(JSON_LIBS)
 libjson_glib_1_0_la_SOURCES = $(source_c) $(source_h) $(source_h_private) $(BUILT_SOURCES)
-libjson_glib_1_0_la_LDFLAGS = $(JSON_LT_LDFLAGS) $(JSON_GCOV_LDADD) -no-undefined -export-symbols $(top_srcdir)/json-glib/json-glib.symbols -rpath $(libdir)
-
-EXTRA_DIST += json-glib.symbols
+libjson_glib_1_0_la_LDFLAGS = $(JSON_LT_LDFLAGS) $(JSON_GCOV_LDADD) -export-dynamic
 
 jsonincludedir = $(includedir)/json-glib-1.0/json-glib
 jsoninclude_DATA = \
-       $(source_h)                                     \
-       $(top_builddir)/json-glib/json-enum-types.h     \
-       $(top_builddir)/json-glib/json-version.h        \
-       $(top_srcdir)/json-glib/json-glib.h             \
+       $(source_h) \
+       json-enum-types.h \
+       json-version.h \
+       json-glib.h \
        $(NULL)
 
 EXTRA_DIST += json-version.h.in json-glib.h json-version.h
 
-TESTS_ENVIRONMENT = srcdir="$(srcdir)" json_all_c_sources="$(source_c)"
+pcfiles = json-glib-1.0.pc
+
+json-glib-1.0.pc: json-glib.pc
+       $(AM_V_GEN)cp -f $< $@
 
-if OS_LINUX
-TESTS = abicheck.sh
-endif
+pkgconfig_DATA = $(pcfiles)
+pkgconfigdir = $(libdir)/pkgconfig
+CLEANFILES += $(pcfiles)
+EXTRA_DIST += json-glib.pc.in
 
-EXTRA_DIST += abicheck.sh
+# tools
+bin_PROGRAMS += json-glib-validate
+json_glib_validate_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) -DJSON_LOCALEDIR=\""$(localedir)"\"
+json_glib_validate_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
+json_glib_validate_SOURCES = json-glib-validate.c
+json_glib_validate_LDADD = $(JSON_LIBS) libjson-glib-1.0.la
+
+bin_PROGRAMS += json-glib-format
+json_glib_format_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) -DJSON_LOCALEDIR=\""$(localedir)"\"
+json_glib_format_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
+json_glib_format_SOURCES = json-glib-format.c
+json_glib_format_LDADD = $(JSON_LIBS) libjson-glib-1.0.la
 
 # intospection
 -include $(INTROSPECTION_MAKEFILE)
@@ -106,13 +122,20 @@ EXTRA_DIST += abicheck.sh
 if HAVE_INTROSPECTION
 INTROSPECTION_GIRS = Json-1.0.gir
 
+introspection_source = \
+       $(source_c) \
+       $(source_h) \
+       json-enum-types.h \
+       json-enum-types.c \
+       json-version.h
+
 Json-1.0.gir: libjson-glib-1.0.la Makefile
 
 Json_1_0_gir_NAMESPACE = Json
 Json_1_0_gir_VERSION = 1.0
 Json_1_0_gir_LIBS = libjson-glib-1.0.la
-Json_1_0_gir_FILES = $(source_h) $(source_c)
-Json_1_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(JSON_CFLAGS)
+Json_1_0_gir_FILES = $(introspection_source)
+Json_1_0_gir_CFLAGS = -DJSON_COMPILATION=1 -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
 Json_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
 Json_1_0_gir_SCANNERFLAGS = --warn-all --pkg-export json-glib-1.0 --c-include "json-glib/json-glib.h"
 
@@ -125,6 +148,7 @@ typelibs_DATA = Json-1.0.typelib
 CLEANFILES += $(dist_gir_DATA) $(typelibs_DATA)
 endif # HAVE_INTROSPECTION
 
+# visual studio
 dist-hook: ../build/win32/vs9/json-glib.vcproj ../build/win32/vs10/json-glib.vcxproj ../build/win32/vs10/json-glib.vcxproj.filters
 
 ../build/win32/vs9/json-glib.vcproj: $(top_srcdir)/build/win32/vs9/json-glib.vcprojin
index 0219774..3889796 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,9 +14,7 @@
 
 @SET_MAKE@
 
-# custom rules for quiet builds
-
-# JSON-GLib - JSON reader and writer library
+# preamble
 
 # Rules for generating enumeration types using glib-mkenums
 #
 # Author: Emmanuele Bassi <ebassi@linux.intel.com>
 
 
+
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -88,13 +125,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(top_srcdir)/build/autotools/Makefile.am.silent \
-       $(top_srcdir)/build/autotools/Makefile.am.gtest \
-       $(top_srcdir)/build/autotools/Makefile.am.enums \
-       $(top_srcdir)/build/autotools/Makefile.am.marshal \
-       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(srcdir)/json-version.h.in $(top_srcdir)/build/depcomp \
-       $(am__dist_gir_DATA_DIST) $(top_srcdir)/build/test-driver
+bin_PROGRAMS = json-glib-validate$(EXEEXT) json-glib-format$(EXEEXT)
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(dist_gir_DATA) $(typelibs_DATA)
 subdir = json-glib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -102,10 +133,12 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -120,9 +153,11 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_gir_DATA_DIST) \
+       $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = json-version.h
+CONFIG_CLEAN_FILES = json-glib.pc json-version.h
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -151,20 +186,32 @@ am__uninstall_files_from_dir = { \
     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
-       "$(DESTDIR)$(jsonincludedir)" "$(DESTDIR)$(typelibsdir)"
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+       "$(DESTDIR)$(girdir)" "$(DESTDIR)$(jsonincludedir)" \
+       "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libjson_glib_1_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
 am__objects_1 =
-am__objects_2 = json-array.lo json-builder.lo json-debug.lo \
-       json-gboxed.lo json-generator.lo json-gobject.lo \
-       json-gvariant.lo json-node.lo json-object.lo json-parser.lo \
-       json-path.lo json-reader.lo json-scanner.lo \
-       json-serializable.lo json-value.lo $(am__objects_1)
+am__objects_2 = libjson_glib_1_0_la-json-array.lo \
+       libjson_glib_1_0_la-json-builder.lo \
+       libjson_glib_1_0_la-json-debug.lo \
+       libjson_glib_1_0_la-json-gboxed.lo \
+       libjson_glib_1_0_la-json-generator.lo \
+       libjson_glib_1_0_la-json-gobject.lo \
+       libjson_glib_1_0_la-json-gvariant.lo \
+       libjson_glib_1_0_la-json-node.lo \
+       libjson_glib_1_0_la-json-object.lo \
+       libjson_glib_1_0_la-json-parser.lo \
+       libjson_glib_1_0_la-json-path.lo \
+       libjson_glib_1_0_la-json-reader.lo \
+       libjson_glib_1_0_la-json-scanner.lo \
+       libjson_glib_1_0_la-json-serializable.lo \
+       libjson_glib_1_0_la-json-utils.lo \
+       libjson_glib_1_0_la-json-value.lo $(am__objects_1)
 am__objects_3 = $(am__objects_1)
-am__objects_4 = json-enum-types.lo
-am__objects_5 = json-marshal.lo
+am__objects_4 = libjson_glib_1_0_la-json-enum-types.lo
+am__objects_5 = libjson_glib_1_0_la-json-marshal.lo
 am__objects_6 = $(am__objects_5)
 am__objects_7 = $(am__objects_1) $(am__objects_4) $(am__objects_3) \
        $(am__objects_6)
@@ -177,7 +224,26 @@ am__v_lt_0 = --silent
 am__v_lt_1 = 
 libjson_glib_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-       $(AM_CFLAGS) $(CFLAGS) $(libjson_glib_1_0_la_LDFLAGS) \
+       $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) \
+       $(libjson_glib_1_0_la_LDFLAGS) $(LDFLAGS) -o $@
+PROGRAMS = $(bin_PROGRAMS)
+am_json_glib_format_OBJECTS =  \
+       json_glib_format-json-glib-format.$(OBJEXT)
+json_glib_format_OBJECTS = $(am_json_glib_format_OBJECTS)
+json_glib_format_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       libjson-glib-1.0.la
+json_glib_format_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(json_glib_format_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
+am_json_glib_validate_OBJECTS =  \
+       json_glib_validate-json-glib-validate.$(OBJEXT)
+json_glib_validate_OBJECTS = $(am_json_glib_validate_OBJECTS)
+json_glib_validate_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       libjson-glib-1.0.la
+json_glib_validate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(json_glib_validate_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
        $(LDFLAGS) -o $@
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -213,8 +279,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libjson_glib_1_0_la_SOURCES)
-DIST_SOURCES = $(libjson_glib_1_0_la_SOURCES)
+SOURCES = $(libjson_glib_1_0_la_SOURCES) $(json_glib_format_SOURCES) \
+       $(json_glib_validate_SOURCES)
+DIST_SOURCES = $(libjson_glib_1_0_la_SOURCES) \
+       $(json_glib_format_SOURCES) $(json_glib_validate_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
        ctags-recursive dvi-recursive html-recursive info-recursive \
        install-data-recursive install-dvi-recursive \
@@ -229,7 +297,8 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__dist_gir_DATA_DIST = Json-1.0.gir
-DATA = $(dist_gir_DATA) $(jsoninclude_DATA) $(typelibs_DATA)
+DATA = $(dist_gir_DATA) $(jsoninclude_DATA) $(pkgconfig_DATA) \
+       $(typelibs_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 am__recursive_targets = \
@@ -237,7 +306,7 @@ am__recursive_targets = \
   $(RECURSIVE_CLEAN_TARGETS) \
   $(am__extra_recursive_targets)
 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-       check recheck distdir
+       distdir
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
@@ -257,182 +326,12 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red='\e[0;31m'; \
-    grn='\e[0;32m'; \
-    lgn='\e[1;32m'; \
-    blu='\e[1;34m'; \
-    mgn='\e[0;35m'; \
-    brg='\e[1m'; \
-    std='\e[m'; \
-  fi; \
-}
-am__recheck_rx = ^[    ]*:recheck:[    ]*
-am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
-am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-           recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[       ]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);                                     \
-$(am__vpath_adj_setup) $(am__vpath_adj)                        \
-$(am__tty_colors);                                     \
-srcdir=$(srcdir); export srcdir;                       \
-case "$@" in                                           \
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
-    *) am__odir=.;;                                    \
-esac;                                                  \
-test "x$$am__odir" = x"." || test -d "$$am__odir"      \
-  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
-if test -f "./$$f"; then dir=./;                       \
-elif test -f "$$f"; then dir=;                         \
-else dir="$(srcdir)/"; fi;                             \
-tst=$$dir$$f; log='$@';                                \
-if test -n '$(DISABLE_HARD_ERRORS)'; then              \
-  am__enable_hard_errors=no;                           \
-else                                                   \
-  am__enable_hard_errors=yes;                          \
-fi;                                                    \
-case " $(XFAIL_TESTS) " in                             \
-  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
-    am__expect_failure=yes;;                           \
-  *)                                                   \
-    am__expect_failure=no;;                            \
-esac;                                                  \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-       $(TEST_LOG_FLAGS)
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/json-glib.pc.in \
+       $(srcdir)/json-version.h.in \
+       $(top_srcdir)/build/autotools/Makefile.am.enums \
+       $(top_srcdir)/build/autotools/Makefile.am.marshal \
+       $(top_srcdir)/build/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -498,6 +397,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -522,6 +422,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -543,6 +444,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -579,6 +481,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -612,6 +517,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -631,79 +538,63 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-QUIET_GEN = $(AM_V_GEN)
-QUIET_LN = $(QUIET_LN_$(V))
-QUIET_LN_ = $(QUIET_LN_$(AM_DEFAULT_VERBOSITY))
-QUIET_LN_0 = @echo '  LN     '$@;
-QUIET_RM = $(QUIET_RM_$(V))
-QUIET_RM_ = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
-QUIET_RM_0 = @echo '  RM     '$@;
-GTESTER = gtester
-GTESTER_REPORT = gtester-report
-
-# initialize variables for unconditional += appending
-EXTRA_DIST = $(srcdir)/$(enum_tmpl_h) $(srcdir)/$(enum_tmpl_c) \
-       $(srcdir)/$(glib_marshal_list) json-glib.symbols \
-       json-version.h.in json-glib.h json-version.h abicheck.sh
-TEST_PROGS = 
-
-# build this directory *before* the tests/
-@ENABLE_GLIB_TEST_TRUE@SUBDIRS = . tests
-DIST_SUBDIRS = tests
 NULL = 
-INCLUDES = -I$(top_srcdir) -I$(top_builddir)
-AM_CPPFLAGS = \
-       -DPREFIX=\""$(prefix)"\"        \
-       -DLIBDIR=\""$(libdir)"\"        \
-       -DJSON_COMPILATION=1            \
-       -DG_LOG_DOMAIN=\"Json\"         \
-       $(JSON_DEBUG_CFLAGS)            \
-       $(NULL)
-
-AM_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS) $(JSON_GCOV_CFLAGS)
+AM_CPPFLAGS = 
+AM_CFLAGS = 
 BUILT_SOURCES = $(glib_enum_h) $(glib_enum_c) $(marshal_h) \
        $(marshal_c)
-CLEANFILES = stamp-enum-types stamp-marshal $(am__append_1)
+CLEANFILES = stamp-enum-types stamp-marshal $(pcfiles) $(am__append_1)
+EXTRA_DIST = $(enum_tmpl_h) $(enum_tmpl_c) $(marshal_list) \
+       json-version.h.in json-glib.h json-version.h json-glib.pc.in
 
 # Let the VS9/VS10 Project files be cleared out before they are re-expanded...
 DISTCLEANFILES = json-version.h $(glib_enum_h) $(glib_enum_c) \
        $(marshal_h) $(marshal_c) ../build/win32/vs9/json-glib.vcproj \
        ../build/win32/vs10/json-glib.vcxproj \
        ../build/win32/vs10/json-glib.vcxproj.filters
+lib_LTLIBRARIES = libjson-glib-1.0.la
+
+# build the tests last
+SUBDIRS = . tests
+
+# main library
 source_h = \
-       $(top_srcdir)/json-glib/json-builder.h          \
-       $(top_srcdir)/json-glib/json-generator.h        \
-       $(top_srcdir)/json-glib/json-gobject.h          \
-       $(top_srcdir)/json-glib/json-gvariant.h         \
-       $(top_srcdir)/json-glib/json-parser.h           \
-       $(top_srcdir)/json-glib/json-path.h             \
-       $(top_srcdir)/json-glib/json-reader.h           \
-       $(top_srcdir)/json-glib/json-types.h            \
+       json-builder.h          \
+       json-generator.h        \
+       json-gobject.h          \
+       json-gvariant.h         \
+       json-parser.h           \
+       json-path.h             \
+       json-reader.h           \
+       json-types.h            \
+       json-utils.h            \
+       json-version-macros.h   \
        $(NULL)
 
 source_h_private = \
-       $(top_srcdir)/json-glib/json-debug.h            \
-       $(top_srcdir)/json-glib/json-gobject-private.h  \
-       $(top_srcdir)/json-glib/json-scanner.h          \
-       $(top_srcdir)/json-glib/json-types-private.h    \
+       json-debug.h            \
+       json-gobject-private.h  \
+       json-scanner.h          \
+       json-types-private.h    \
        $(NULL)
 
 source_c = \
-       $(srcdir)/json-array.c          \
-       $(srcdir)/json-builder.c        \
-       $(srcdir)/json-debug.c          \
-       $(srcdir)/json-gboxed.c         \
-       $(srcdir)/json-generator.c      \
-       $(srcdir)/json-gobject.c        \
-       $(srcdir)/json-gvariant.c       \
-       $(srcdir)/json-node.c           \
-       $(srcdir)/json-object.c         \
-       $(srcdir)/json-parser.c         \
-       $(srcdir)/json-path.c           \
-       $(srcdir)/json-reader.c         \
-       $(srcdir)/json-scanner.c        \
-       $(srcdir)/json-serializable.c   \
-       $(srcdir)/json-value.c          \
+       json-array.c            \
+       json-builder.c  \
+       json-debug.c            \
+       json-gboxed.c           \
+       json-generator.c        \
+       json-gobject.c  \
+       json-gvariant.c \
+       json-node.c             \
+       json-object.c   \
+       json-parser.c   \
+       json-path.c             \
+       json-reader.c           \
+       json-scanner.c  \
+       json-serializable.c     \
+       json-utils.c            \
+       json-value.c            \
        $(NULL)
 
 
@@ -711,34 +602,63 @@ source_c = \
 glib_enum_h = json-enum-types.h
 glib_enum_c = json-enum-types.c
 glib_enum_headers = $(source_h)
-enum_tmpl_h = $(glib_enum_h:.h=.h.in)
-enum_tmpl_c = $(glib_enum_c:.c=.c.in)
+enum_tmpl_h = $(addprefix $(srcdir)/, $(glib_enum_h:.h=.h.in))
+enum_tmpl_c = $(addprefix $(srcdir)/, $(glib_enum_c:.c=.c.in))
+enum_headers = $(addprefix $(srcdir)/, $(glib_enum_headers))
 
 # glib-genmarshal rules
 glib_marshal_list = json-marshal.list
-glib_marshal_prefix = _json_marshal
+glib_marshal_prefix = json_marshal
 marshal_h = $(glib_marshal_list:.list=.h)
 marshal_c = $(glib_marshal_list:.list=.c)
-lib_LTLIBRARIES = libjson-glib-1.0.la
+marshal_list = $(addprefix $(srcdir)/, $(glib_marshal_list))
+libjson_glib_1_0_la_CPPFLAGS = \
+       -DPREFIX=\""$(prefix)"\" \
+       -DLIBDIR=\""$(libdir)"\" \
+       -DJSON_LOCALEDIR=\""$(localedir)"\" \
+       -DJSON_COMPILATION=1 \
+       -DG_LOG_DOMAIN=\"Json\" \
+       -I$(top_srcdir) \
+       -I$(top_builddir) \
+       $(JSON_DEBUG_CFLAGS) \
+       $(NULL)
+
+libjson_glib_1_0_la_CFLAGS = $(JSON_CFLAGS) $(JSON_HIDDEN_VISIBILITY_CFLAG) $(MAINTAINER_CFLAGS) $(JSON_GCOV_CFLAGS)
 libjson_glib_1_0_la_LIBADD = $(JSON_LIBS)
 libjson_glib_1_0_la_SOURCES = $(source_c) $(source_h) $(source_h_private) $(BUILT_SOURCES)
-libjson_glib_1_0_la_LDFLAGS = $(JSON_LT_LDFLAGS) $(JSON_GCOV_LDADD) -no-undefined -export-symbols $(top_srcdir)/json-glib/json-glib.symbols -rpath $(libdir)
+libjson_glib_1_0_la_LDFLAGS = $(JSON_LT_LDFLAGS) $(JSON_GCOV_LDADD) -export-dynamic
 jsonincludedir = $(includedir)/json-glib-1.0/json-glib
 jsoninclude_DATA = \
-       $(source_h)                                     \
-       $(top_builddir)/json-glib/json-enum-types.h     \
-       $(top_builddir)/json-glib/json-version.h        \
-       $(top_srcdir)/json-glib/json-glib.h             \
+       $(source_h) \
+       json-enum-types.h \
+       json-version.h \
+       json-glib.h \
        $(NULL)
 
-TESTS_ENVIRONMENT = srcdir="$(srcdir)" json_all_c_sources="$(source_c)"
-@OS_LINUX_TRUE@TESTS = abicheck.sh
+pcfiles = json-glib-1.0.pc
+pkgconfig_DATA = $(pcfiles)
+pkgconfigdir = $(libdir)/pkgconfig
+json_glib_validate_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) -DJSON_LOCALEDIR=\""$(localedir)"\"
+json_glib_validate_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
+json_glib_validate_SOURCES = json-glib-validate.c
+json_glib_validate_LDADD = $(JSON_LIBS) libjson-glib-1.0.la
+json_glib_format_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) -DJSON_LOCALEDIR=\""$(localedir)"\"
+json_glib_format_CFLAGS = $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
+json_glib_format_SOURCES = json-glib-format.c
+json_glib_format_LDADD = $(JSON_LIBS) libjson-glib-1.0.la
 @HAVE_INTROSPECTION_TRUE@INTROSPECTION_GIRS = Json-1.0.gir
+@HAVE_INTROSPECTION_TRUE@introspection_source = \
+@HAVE_INTROSPECTION_TRUE@      $(source_c) \
+@HAVE_INTROSPECTION_TRUE@      $(source_h) \
+@HAVE_INTROSPECTION_TRUE@      json-enum-types.h \
+@HAVE_INTROSPECTION_TRUE@      json-enum-types.c \
+@HAVE_INTROSPECTION_TRUE@      json-version.h
+
 @HAVE_INTROSPECTION_TRUE@Json_1_0_gir_NAMESPACE = Json
 @HAVE_INTROSPECTION_TRUE@Json_1_0_gir_VERSION = 1.0
 @HAVE_INTROSPECTION_TRUE@Json_1_0_gir_LIBS = libjson-glib-1.0.la
-@HAVE_INTROSPECTION_TRUE@Json_1_0_gir_FILES = $(source_h) $(source_c)
-@HAVE_INTROSPECTION_TRUE@Json_1_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(JSON_CFLAGS)
+@HAVE_INTROSPECTION_TRUE@Json_1_0_gir_FILES = $(introspection_source)
+@HAVE_INTROSPECTION_TRUE@Json_1_0_gir_CFLAGS = -DJSON_COMPILATION=1 -I$(top_srcdir) -I$(top_builddir) $(JSON_CFLAGS)
 @HAVE_INTROSPECTION_TRUE@Json_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
 @HAVE_INTROSPECTION_TRUE@Json_1_0_gir_SCANNERFLAGS = --warn-all --pkg-export json-glib-1.0 --c-include "json-glib/json-glib.h"
 @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
@@ -749,8 +669,8 @@ all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Makefile.am.silent $(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.enums $(top_srcdir)/build/autotools/Makefile.am.marshal $(am__configure_deps)
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Makefile.am.enums $(top_srcdir)/build/autotools/Makefile.am.marshal $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -762,7 +682,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Make
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign json-glib/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign json-glib/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -771,7 +690,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
-$(top_srcdir)/build/autotools/Makefile.am.silent $(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.enums $(top_srcdir)/build/autotools/Makefile.am.marshal:
+$(top_srcdir)/build/autotools/Makefile.am.enums $(top_srcdir)/build/autotools/Makefile.am.marshal $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -781,6 +700,8 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+json-glib.pc: $(top_builddir)/config.status $(srcdir)/json-glib.pc.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 json-version.h: $(top_builddir)/config.status $(srcdir)/json-version.h.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 
@@ -818,8 +739,66 @@ clean-libLTLIBRARIES:
          echo rm -f $${locs}; \
          rm -f $${locs}; \
        }
+
 libjson-glib-1.0.la: $(libjson_glib_1_0_la_OBJECTS) $(libjson_glib_1_0_la_DEPENDENCIES) $(EXTRA_libjson_glib_1_0_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libjson_glib_1_0_la_LINK) -rpath $(libdir) $(libjson_glib_1_0_la_OBJECTS) $(libjson_glib_1_0_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+json-glib-format$(EXEEXT): $(json_glib_format_OBJECTS) $(json_glib_format_DEPENDENCIES) $(EXTRA_json_glib_format_DEPENDENCIES) 
+       @rm -f json-glib-format$(EXEEXT)
+       $(AM_V_CCLD)$(json_glib_format_LINK) $(json_glib_format_OBJECTS) $(json_glib_format_LDADD) $(LIBS)
+
+json-glib-validate$(EXEEXT): $(json_glib_validate_OBJECTS) $(json_glib_validate_DEPENDENCIES) $(EXTRA_json_glib_validate_DEPENDENCIES) 
+       @rm -f json-glib-validate$(EXEEXT)
+       $(AM_V_CCLD)$(json_glib_validate_LINK) $(json_glib_validate_OBJECTS) $(json_glib_validate_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -827,149 +806,204 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-array.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-builder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-debug.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-enum-types.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-gboxed.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-generator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-gobject.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-gvariant.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-node.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-object.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-path.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-reader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-scanner.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-serializable.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json-value.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json_glib_format-json-glib-format.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/json_glib_validate-json-glib-validate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-array.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-builder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-debug.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-enum-types.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-gboxed.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-generator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-gobject.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-gvariant.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-marshal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-node.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-parser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-path.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-reader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-scanner.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-serializable.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjson_glib_1_0_la-json-value.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-json-array.lo: $(srcdir)/json-array.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-array.lo -MD -MP -MF $(DEPDIR)/json-array.Tpo -c -o json-array.lo `test -f '$(srcdir)/json-array.c' || echo '$(srcdir)/'`$(srcdir)/json-array.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-array.Tpo $(DEPDIR)/json-array.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-array.c' object='json-array.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-array.lo: json-array.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-array.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-array.Tpo -c -o libjson_glib_1_0_la-json-array.lo `test -f 'json-array.c' || echo '$(srcdir)/'`json-array.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-array.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-array.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-array.c' object='libjson_glib_1_0_la-json-array.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-array.lo `test -f 'json-array.c' || echo '$(srcdir)/'`json-array.c
+
+libjson_glib_1_0_la-json-builder.lo: json-builder.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-builder.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-builder.Tpo -c -o libjson_glib_1_0_la-json-builder.lo `test -f 'json-builder.c' || echo '$(srcdir)/'`json-builder.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-builder.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-builder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-builder.c' object='libjson_glib_1_0_la-json-builder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-builder.lo `test -f 'json-builder.c' || echo '$(srcdir)/'`json-builder.c
+
+libjson_glib_1_0_la-json-debug.lo: json-debug.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-debug.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-debug.Tpo -c -o libjson_glib_1_0_la-json-debug.lo `test -f 'json-debug.c' || echo '$(srcdir)/'`json-debug.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-debug.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-debug.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-debug.c' object='libjson_glib_1_0_la-json-debug.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-debug.lo `test -f 'json-debug.c' || echo '$(srcdir)/'`json-debug.c
+
+libjson_glib_1_0_la-json-gboxed.lo: json-gboxed.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-gboxed.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-gboxed.Tpo -c -o libjson_glib_1_0_la-json-gboxed.lo `test -f 'json-gboxed.c' || echo '$(srcdir)/'`json-gboxed.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-gboxed.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-gboxed.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-gboxed.c' object='libjson_glib_1_0_la-json-gboxed.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-gboxed.lo `test -f 'json-gboxed.c' || echo '$(srcdir)/'`json-gboxed.c
+
+libjson_glib_1_0_la-json-generator.lo: json-generator.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-generator.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-generator.Tpo -c -o libjson_glib_1_0_la-json-generator.lo `test -f 'json-generator.c' || echo '$(srcdir)/'`json-generator.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-generator.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-generator.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-generator.c' object='libjson_glib_1_0_la-json-generator.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-array.lo `test -f '$(srcdir)/json-array.c' || echo '$(srcdir)/'`$(srcdir)/json-array.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-generator.lo `test -f 'json-generator.c' || echo '$(srcdir)/'`json-generator.c
 
-json-builder.lo: $(srcdir)/json-builder.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-builder.lo -MD -MP -MF $(DEPDIR)/json-builder.Tpo -c -o json-builder.lo `test -f '$(srcdir)/json-builder.c' || echo '$(srcdir)/'`$(srcdir)/json-builder.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-builder.Tpo $(DEPDIR)/json-builder.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-builder.c' object='json-builder.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-gobject.lo: json-gobject.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-gobject.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-gobject.Tpo -c -o libjson_glib_1_0_la-json-gobject.lo `test -f 'json-gobject.c' || echo '$(srcdir)/'`json-gobject.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-gobject.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-gobject.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-gobject.c' object='libjson_glib_1_0_la-json-gobject.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-builder.lo `test -f '$(srcdir)/json-builder.c' || echo '$(srcdir)/'`$(srcdir)/json-builder.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-gobject.lo `test -f 'json-gobject.c' || echo '$(srcdir)/'`json-gobject.c
 
-json-debug.lo: $(srcdir)/json-debug.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-debug.lo -MD -MP -MF $(DEPDIR)/json-debug.Tpo -c -o json-debug.lo `test -f '$(srcdir)/json-debug.c' || echo '$(srcdir)/'`$(srcdir)/json-debug.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-debug.Tpo $(DEPDIR)/json-debug.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-debug.c' object='json-debug.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-gvariant.lo: json-gvariant.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-gvariant.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-gvariant.Tpo -c -o libjson_glib_1_0_la-json-gvariant.lo `test -f 'json-gvariant.c' || echo '$(srcdir)/'`json-gvariant.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-gvariant.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-gvariant.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-gvariant.c' object='libjson_glib_1_0_la-json-gvariant.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-debug.lo `test -f '$(srcdir)/json-debug.c' || echo '$(srcdir)/'`$(srcdir)/json-debug.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-gvariant.lo `test -f 'json-gvariant.c' || echo '$(srcdir)/'`json-gvariant.c
 
-json-gboxed.lo: $(srcdir)/json-gboxed.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-gboxed.lo -MD -MP -MF $(DEPDIR)/json-gboxed.Tpo -c -o json-gboxed.lo `test -f '$(srcdir)/json-gboxed.c' || echo '$(srcdir)/'`$(srcdir)/json-gboxed.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-gboxed.Tpo $(DEPDIR)/json-gboxed.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-gboxed.c' object='json-gboxed.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-node.lo: json-node.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-node.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-node.Tpo -c -o libjson_glib_1_0_la-json-node.lo `test -f 'json-node.c' || echo '$(srcdir)/'`json-node.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-node.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-node.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-node.c' object='libjson_glib_1_0_la-json-node.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-gboxed.lo `test -f '$(srcdir)/json-gboxed.c' || echo '$(srcdir)/'`$(srcdir)/json-gboxed.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-node.lo `test -f 'json-node.c' || echo '$(srcdir)/'`json-node.c
 
-json-generator.lo: $(srcdir)/json-generator.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-generator.lo -MD -MP -MF $(DEPDIR)/json-generator.Tpo -c -o json-generator.lo `test -f '$(srcdir)/json-generator.c' || echo '$(srcdir)/'`$(srcdir)/json-generator.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-generator.Tpo $(DEPDIR)/json-generator.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-generator.c' object='json-generator.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-object.lo: json-object.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-object.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-object.Tpo -c -o libjson_glib_1_0_la-json-object.lo `test -f 'json-object.c' || echo '$(srcdir)/'`json-object.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-object.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-object.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-object.c' object='libjson_glib_1_0_la-json-object.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-generator.lo `test -f '$(srcdir)/json-generator.c' || echo '$(srcdir)/'`$(srcdir)/json-generator.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-object.lo `test -f 'json-object.c' || echo '$(srcdir)/'`json-object.c
 
-json-gobject.lo: $(srcdir)/json-gobject.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-gobject.lo -MD -MP -MF $(DEPDIR)/json-gobject.Tpo -c -o json-gobject.lo `test -f '$(srcdir)/json-gobject.c' || echo '$(srcdir)/'`$(srcdir)/json-gobject.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-gobject.Tpo $(DEPDIR)/json-gobject.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-gobject.c' object='json-gobject.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-parser.lo: json-parser.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-parser.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-parser.Tpo -c -o libjson_glib_1_0_la-json-parser.lo `test -f 'json-parser.c' || echo '$(srcdir)/'`json-parser.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-parser.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-parser.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-parser.c' object='libjson_glib_1_0_la-json-parser.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-gobject.lo `test -f '$(srcdir)/json-gobject.c' || echo '$(srcdir)/'`$(srcdir)/json-gobject.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-parser.lo `test -f 'json-parser.c' || echo '$(srcdir)/'`json-parser.c
 
-json-gvariant.lo: $(srcdir)/json-gvariant.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-gvariant.lo -MD -MP -MF $(DEPDIR)/json-gvariant.Tpo -c -o json-gvariant.lo `test -f '$(srcdir)/json-gvariant.c' || echo '$(srcdir)/'`$(srcdir)/json-gvariant.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-gvariant.Tpo $(DEPDIR)/json-gvariant.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-gvariant.c' object='json-gvariant.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-path.lo: json-path.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-path.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-path.Tpo -c -o libjson_glib_1_0_la-json-path.lo `test -f 'json-path.c' || echo '$(srcdir)/'`json-path.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-path.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-path.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-path.c' object='libjson_glib_1_0_la-json-path.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-gvariant.lo `test -f '$(srcdir)/json-gvariant.c' || echo '$(srcdir)/'`$(srcdir)/json-gvariant.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-path.lo `test -f 'json-path.c' || echo '$(srcdir)/'`json-path.c
 
-json-node.lo: $(srcdir)/json-node.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-node.lo -MD -MP -MF $(DEPDIR)/json-node.Tpo -c -o json-node.lo `test -f '$(srcdir)/json-node.c' || echo '$(srcdir)/'`$(srcdir)/json-node.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-node.Tpo $(DEPDIR)/json-node.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-node.c' object='json-node.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-reader.lo: json-reader.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-reader.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-reader.Tpo -c -o libjson_glib_1_0_la-json-reader.lo `test -f 'json-reader.c' || echo '$(srcdir)/'`json-reader.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-reader.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-reader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-reader.c' object='libjson_glib_1_0_la-json-reader.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-node.lo `test -f '$(srcdir)/json-node.c' || echo '$(srcdir)/'`$(srcdir)/json-node.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-reader.lo `test -f 'json-reader.c' || echo '$(srcdir)/'`json-reader.c
 
-json-object.lo: $(srcdir)/json-object.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-object.lo -MD -MP -MF $(DEPDIR)/json-object.Tpo -c -o json-object.lo `test -f '$(srcdir)/json-object.c' || echo '$(srcdir)/'`$(srcdir)/json-object.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-object.Tpo $(DEPDIR)/json-object.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-object.c' object='json-object.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-scanner.lo: json-scanner.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-scanner.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-scanner.Tpo -c -o libjson_glib_1_0_la-json-scanner.lo `test -f 'json-scanner.c' || echo '$(srcdir)/'`json-scanner.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-scanner.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-scanner.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-scanner.c' object='libjson_glib_1_0_la-json-scanner.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-object.lo `test -f '$(srcdir)/json-object.c' || echo '$(srcdir)/'`$(srcdir)/json-object.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-scanner.lo `test -f 'json-scanner.c' || echo '$(srcdir)/'`json-scanner.c
 
-json-parser.lo: $(srcdir)/json-parser.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-parser.lo -MD -MP -MF $(DEPDIR)/json-parser.Tpo -c -o json-parser.lo `test -f '$(srcdir)/json-parser.c' || echo '$(srcdir)/'`$(srcdir)/json-parser.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-parser.Tpo $(DEPDIR)/json-parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-parser.c' object='json-parser.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-serializable.lo: json-serializable.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-serializable.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-serializable.Tpo -c -o libjson_glib_1_0_la-json-serializable.lo `test -f 'json-serializable.c' || echo '$(srcdir)/'`json-serializable.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-serializable.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-serializable.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-serializable.c' object='libjson_glib_1_0_la-json-serializable.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-parser.lo `test -f '$(srcdir)/json-parser.c' || echo '$(srcdir)/'`$(srcdir)/json-parser.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-serializable.lo `test -f 'json-serializable.c' || echo '$(srcdir)/'`json-serializable.c
 
-json-path.lo: $(srcdir)/json-path.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-path.lo -MD -MP -MF $(DEPDIR)/json-path.Tpo -c -o json-path.lo `test -f '$(srcdir)/json-path.c' || echo '$(srcdir)/'`$(srcdir)/json-path.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-path.Tpo $(DEPDIR)/json-path.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-path.c' object='json-path.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-utils.lo: json-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-utils.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-utils.Tpo -c -o libjson_glib_1_0_la-json-utils.lo `test -f 'json-utils.c' || echo '$(srcdir)/'`json-utils.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-utils.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-utils.c' object='libjson_glib_1_0_la-json-utils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-path.lo `test -f '$(srcdir)/json-path.c' || echo '$(srcdir)/'`$(srcdir)/json-path.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-utils.lo `test -f 'json-utils.c' || echo '$(srcdir)/'`json-utils.c
 
-json-reader.lo: $(srcdir)/json-reader.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-reader.lo -MD -MP -MF $(DEPDIR)/json-reader.Tpo -c -o json-reader.lo `test -f '$(srcdir)/json-reader.c' || echo '$(srcdir)/'`$(srcdir)/json-reader.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-reader.Tpo $(DEPDIR)/json-reader.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-reader.c' object='json-reader.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-value.lo: json-value.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-value.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-value.Tpo -c -o libjson_glib_1_0_la-json-value.lo `test -f 'json-value.c' || echo '$(srcdir)/'`json-value.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-value.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-value.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-value.c' object='libjson_glib_1_0_la-json-value.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-reader.lo `test -f '$(srcdir)/json-reader.c' || echo '$(srcdir)/'`$(srcdir)/json-reader.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-value.lo `test -f 'json-value.c' || echo '$(srcdir)/'`json-value.c
 
-json-scanner.lo: $(srcdir)/json-scanner.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-scanner.lo -MD -MP -MF $(DEPDIR)/json-scanner.Tpo -c -o json-scanner.lo `test -f '$(srcdir)/json-scanner.c' || echo '$(srcdir)/'`$(srcdir)/json-scanner.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-scanner.Tpo $(DEPDIR)/json-scanner.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-scanner.c' object='json-scanner.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-enum-types.lo: json-enum-types.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-enum-types.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-enum-types.Tpo -c -o libjson_glib_1_0_la-json-enum-types.lo `test -f 'json-enum-types.c' || echo '$(srcdir)/'`json-enum-types.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-enum-types.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-enum-types.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-enum-types.c' object='libjson_glib_1_0_la-json-enum-types.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-scanner.lo `test -f '$(srcdir)/json-scanner.c' || echo '$(srcdir)/'`$(srcdir)/json-scanner.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-enum-types.lo `test -f 'json-enum-types.c' || echo '$(srcdir)/'`json-enum-types.c
 
-json-serializable.lo: $(srcdir)/json-serializable.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-serializable.lo -MD -MP -MF $(DEPDIR)/json-serializable.Tpo -c -o json-serializable.lo `test -f '$(srcdir)/json-serializable.c' || echo '$(srcdir)/'`$(srcdir)/json-serializable.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-serializable.Tpo $(DEPDIR)/json-serializable.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-serializable.c' object='json-serializable.lo' libtool=yes @AMDEPBACKSLASH@
+libjson_glib_1_0_la-json-marshal.lo: json-marshal.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -MT libjson_glib_1_0_la-json-marshal.lo -MD -MP -MF $(DEPDIR)/libjson_glib_1_0_la-json-marshal.Tpo -c -o libjson_glib_1_0_la-json-marshal.lo `test -f 'json-marshal.c' || echo '$(srcdir)/'`json-marshal.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libjson_glib_1_0_la-json-marshal.Tpo $(DEPDIR)/libjson_glib_1_0_la-json-marshal.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-marshal.c' object='libjson_glib_1_0_la-json-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-serializable.lo `test -f '$(srcdir)/json-serializable.c' || echo '$(srcdir)/'`$(srcdir)/json-serializable.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libjson_glib_1_0_la_CPPFLAGS) $(CPPFLAGS) $(libjson_glib_1_0_la_CFLAGS) $(CFLAGS) -c -o libjson_glib_1_0_la-json-marshal.lo `test -f 'json-marshal.c' || echo '$(srcdir)/'`json-marshal.c
 
-json-value.lo: $(srcdir)/json-value.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-value.lo -MD -MP -MF $(DEPDIR)/json-value.Tpo -c -o json-value.lo `test -f '$(srcdir)/json-value.c' || echo '$(srcdir)/'`$(srcdir)/json-value.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json-value.Tpo $(DEPDIR)/json-value.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$(srcdir)/json-value.c' object='json-value.lo' libtool=yes @AMDEPBACKSLASH@
+json_glib_format-json-glib-format.o: json-glib-format.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_glib_format_CPPFLAGS) $(CPPFLAGS) $(json_glib_format_CFLAGS) $(CFLAGS) -MT json_glib_format-json-glib-format.o -MD -MP -MF $(DEPDIR)/json_glib_format-json-glib-format.Tpo -c -o json_glib_format-json-glib-format.o `test -f 'json-glib-format.c' || echo '$(srcdir)/'`json-glib-format.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json_glib_format-json-glib-format.Tpo $(DEPDIR)/json_glib_format-json-glib-format.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-glib-format.c' object='json_glib_format-json-glib-format.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-value.lo `test -f '$(srcdir)/json-value.c' || echo '$(srcdir)/'`$(srcdir)/json-value.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_glib_format_CPPFLAGS) $(CPPFLAGS) $(json_glib_format_CFLAGS) $(CFLAGS) -c -o json_glib_format-json-glib-format.o `test -f 'json-glib-format.c' || echo '$(srcdir)/'`json-glib-format.c
+
+json_glib_format-json-glib-format.obj: json-glib-format.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_glib_format_CPPFLAGS) $(CPPFLAGS) $(json_glib_format_CFLAGS) $(CFLAGS) -MT json_glib_format-json-glib-format.obj -MD -MP -MF $(DEPDIR)/json_glib_format-json-glib-format.Tpo -c -o json_glib_format-json-glib-format.obj `if test -f 'json-glib-format.c'; then $(CYGPATH_W) 'json-glib-format.c'; else $(CYGPATH_W) '$(srcdir)/json-glib-format.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json_glib_format-json-glib-format.Tpo $(DEPDIR)/json_glib_format-json-glib-format.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-glib-format.c' object='json_glib_format-json-glib-format.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) $(json_glib_format_CPPFLAGS) $(CPPFLAGS) $(json_glib_format_CFLAGS) $(CFLAGS) -c -o json_glib_format-json-glib-format.obj `if test -f 'json-glib-format.c'; then $(CYGPATH_W) 'json-glib-format.c'; else $(CYGPATH_W) '$(srcdir)/json-glib-format.c'; fi`
+
+json_glib_validate-json-glib-validate.o: json-glib-validate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_glib_validate_CPPFLAGS) $(CPPFLAGS) $(json_glib_validate_CFLAGS) $(CFLAGS) -MT json_glib_validate-json-glib-validate.o -MD -MP -MF $(DEPDIR)/json_glib_validate-json-glib-validate.Tpo -c -o json_glib_validate-json-glib-validate.o `test -f 'json-glib-validate.c' || echo '$(srcdir)/'`json-glib-validate.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json_glib_validate-json-glib-validate.Tpo $(DEPDIR)/json_glib_validate-json-glib-validate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-glib-validate.c' object='json_glib_validate-json-glib-validate.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) $(json_glib_validate_CPPFLAGS) $(CPPFLAGS) $(json_glib_validate_CFLAGS) $(CFLAGS) -c -o json_glib_validate-json-glib-validate.o `test -f 'json-glib-validate.c' || echo '$(srcdir)/'`json-glib-validate.c
+
+json_glib_validate-json-glib-validate.obj: json-glib-validate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_glib_validate_CPPFLAGS) $(CPPFLAGS) $(json_glib_validate_CFLAGS) $(CFLAGS) -MT json_glib_validate-json-glib-validate.obj -MD -MP -MF $(DEPDIR)/json_glib_validate-json-glib-validate.Tpo -c -o json_glib_validate-json-glib-validate.obj `if test -f 'json-glib-validate.c'; then $(CYGPATH_W) 'json-glib-validate.c'; else $(CYGPATH_W) '$(srcdir)/json-glib-validate.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/json_glib_validate-json-glib-validate.Tpo $(DEPDIR)/json_glib_validate-json-glib-validate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='json-glib-validate.c' object='json_glib_validate-json-glib-validate.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) $(json_glib_validate_CPPFLAGS) $(CPPFLAGS) $(json_glib_validate_CFLAGS) $(CFLAGS) -c -o json_glib_validate-json-glib-validate.obj `if test -f 'json-glib-validate.c'; then $(CYGPATH_W) 'json-glib-validate.c'; else $(CYGPATH_W) '$(srcdir)/json-glib-validate.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -1018,6 +1052,27 @@ uninstall-jsonincludeDATA:
        @list='$(jsoninclude_DATA)'; test -n "$(jsonincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        dir='$(DESTDIR)$(jsonincludedir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigDATA: $(pkgconfig_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+       done
+
+uninstall-pkgconfigDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
@@ -1047,13 +1102,12 @@ uninstall-typelibsDATA:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -1140,169 +1194,6 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-       rm -f $< $@
-       $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# exand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-       @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-       @$(am__set_TESTS_bases); \
-       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-       redo_bases=`for i in $$bases; do \
-                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-                   done`; \
-       if test -n "$$redo_bases"; then \
-         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-         if $(am__make_dryrun); then :; else \
-           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-         fi; \
-       fi; \
-       if test -n "$$am__remaking_logs"; then \
-         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-              "recursion detected" >&2; \
-       else \
-         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-       fi; \
-       if $(am__make_dryrun); then :; else \
-         st=0;  \
-         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-         for i in $$redo_bases; do \
-           test -f $$i.trs && test -r $$i.trs \
-             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-           test -f $$i.log && test -r $$i.log \
-             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-         done; \
-         test $$st -eq 0 || exit 1; \
-       fi
-       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-       ws='[   ]'; \
-       results=`for b in $$bases; do echo $$b.trs; done`; \
-       test -n "$$results" || results=/dev/null; \
-       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-         success=true; \
-       else \
-         success=false; \
-       fi; \
-       br='==================='; br=$$br$$br$$br$$br; \
-       result_count () \
-       { \
-           if test x"$$1" = x"--maybe-color"; then \
-             maybe_colorize=yes; \
-           elif test x"$$1" = x"--no-color"; then \
-             maybe_colorize=no; \
-           else \
-             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-           fi; \
-           shift; \
-           desc=$$1 count=$$2; \
-           if test $$maybe_colorize = yes && test $$count -gt 0; then \
-             color_start=$$3 color_end=$$std; \
-           else \
-             color_start= color_end=; \
-           fi; \
-           echo "$${color_start}# $$desc $$count$${color_end}"; \
-       }; \
-       create_testsuite_report () \
-       { \
-         result_count $$1 "TOTAL:" $$all   "$$brg"; \
-         result_count $$1 "PASS: " $$pass  "$$grn"; \
-         result_count $$1 "SKIP: " $$skip  "$$blu"; \
-         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-         result_count $$1 "FAIL: " $$fail  "$$red"; \
-         result_count $$1 "XPASS:" $$xpass "$$red"; \
-         result_count $$1 "ERROR:" $$error "$$mgn"; \
-       }; \
-       {                                                               \
-         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
-           $(am__rst_title);                                           \
-         create_testsuite_report --no-color;                           \
-         echo;                                                         \
-         echo ".. contents:: :depth: 2";                               \
-         echo;                                                         \
-         for b in $$bases; do echo $$b; done                           \
-           | $(am__create_global_log);                                 \
-       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
-       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
-       if $$success; then                                              \
-         col="$$grn";                                                  \
-        else                                                           \
-         col="$$red";                                                  \
-         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
-       fi;                                                             \
-       echo "$${col}$$br$${std}";                                      \
-       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
-       echo "$${col}$$br$${std}";                                      \
-       create_testsuite_report --maybe-color;                          \
-       echo "$$col$$br$$std";                                          \
-       if $$success; then :; else                                      \
-         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
-         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
-           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
-         fi;                                                           \
-         echo "$$col$$br$$std";                                        \
-       fi;                                                             \
-       $$success || exit 1
-
-check-TESTS:
-       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @set +e; $(am__set_TESTS_bases); \
-       log_list=`for i in $$bases; do echo $$i.log; done`; \
-       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-       exit $$?;
-recheck: all 
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @set +e; $(am__set_TESTS_bases); \
-       bases=`for i in $$bases; do echo $$i; done \
-                | $(am__list_recheck_tests)` || exit 1; \
-       log_list=`for i in $$bases; do echo $$i.log; done`; \
-       log_list=`echo $$log_list`; \
-       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-               am__force_recheck=am--force-recheck \
-               TEST_LOGS="$$log_list"; \
-       exit $$?
-abicheck.sh.log: abicheck.sh
-       @p='abicheck.sh'; \
-       b='abicheck.sh'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-       @p='$<'; \
-       $(am__set_b); \
-       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@      @p='$<'; \
-@am__EXEEXT_TRUE@      $(am__set_b); \
-@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
-
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1362,13 +1253,14 @@ distdir: $(DISTFILES)
          top_distdir="$(top_distdir)" distdir="$(distdir)" \
          dist-hook
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
 check: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LTLIBRARIES) $(DATA)
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
+install-binPROGRAMS: install-libLTLIBRARIES
+
 installdirs: installdirs-recursive
 installdirs-am:
-       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(jsonincludedir)" "$(DESTDIR)$(typelibsdir)"; do \
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(jsonincludedir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: $(BUILT_SOURCES)
@@ -1392,9 +1284,6 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
-       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -1410,8 +1299,8 @@ maintainer-clean-generic:
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-recursive
 
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-       mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
+       clean-libtool mostlyclean-am
 
 distclean: distclean-recursive
        -rm -rf ./$(DEPDIR)
@@ -1432,13 +1321,13 @@ info: info-recursive
 info-am:
 
 install-data-am: install-dist_girDATA install-jsonincludeDATA \
-       install-typelibsDATA
+       install-pkgconfigDATA install-typelibsDATA
 
 install-dvi: install-dvi-recursive
 
 install-dvi-am:
 
-install-exec-am: install-libLTLIBRARIES
+install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
 
 install-html: install-html-recursive
 
@@ -1478,102 +1367,49 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-dist_girDATA uninstall-jsonincludeDATA \
-       uninstall-libLTLIBRARIES uninstall-typelibsDATA
+uninstall-am: uninstall-binPROGRAMS uninstall-dist_girDATA \
+       uninstall-jsonincludeDATA uninstall-libLTLIBRARIES \
+       uninstall-pkgconfigDATA uninstall-typelibsDATA
 
-.MAKE: $(am__recursive_targets) all check check-am install install-am \
+.MAKE: $(am__recursive_targets) all check install install-am \
        install-strip
 
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-       check-TESTS check-am check-local clean clean-generic \
+       check-am clean clean-binPROGRAMS clean-generic \
        clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
        ctags-am dist-hook distclean distclean-compile \
        distclean-generic distclean-libtool distclean-tags distdir dvi \
        dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dist_girDATA install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am \
-       install-jsonincludeDATA install-libLTLIBRARIES install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip install-typelibsDATA installcheck \
-       installcheck-am installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       recheck tags tags-am uninstall uninstall-am \
-       uninstall-dist_girDATA uninstall-jsonincludeDATA \
-       uninstall-libLTLIBRARIES uninstall-typelibsDATA
-
-
-### testing rules
-
-# test: run all tests in cwd and subdirs
-test: test-nonrecursive
-       @for subdir in $(SUBDIRS) . ; do \
-         test "$$subdir" = "." -o "$$subdir" = "po" || \
-         ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-       done
+       install-binPROGRAMS install-data install-data-am \
+       install-dist_girDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-jsonincludeDATA install-libLTLIBRARIES \
+       install-man install-pdf install-pdf-am install-pkgconfigDATA \
+       install-ps install-ps-am install-strip install-typelibsDATA \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-binPROGRAMS uninstall-dist_girDATA \
+       uninstall-jsonincludeDATA uninstall-libLTLIBRARIES \
+       uninstall-pkgconfigDATA uninstall-typelibsDATA
 
-# test-nonrecursive: run tests only in cwd
-test-nonrecursive: ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
-
-# test-report: run tests in subdirs and generate report
-# perf-report: run tests in subdirs with -m perf and generate report
-# full-report: like test-report: with -m perf and -m slow
-test-report perf-report full-report:   ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || { \
-         case $@ in \
-         test-report) test_options="-k";; \
-         perf-report) test_options="-k -m=perf";; \
-         full-report) test_options="-k -m=perf -m=slow";; \
-         esac ; \
-         if test -z "$$GTESTER_LOGDIR" ; then  \
-           ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
-         elif test -n "${TEST_PROGS}" ; then \
-           ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
-         fi ; \
-       }
-       @ ignore_logdir=true ; \
-         if test -z "$$GTESTER_LOGDIR" ; then \
-           GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
-           ignore_logdir=false ; \
-         fi ; \
-         if test -d "$(top_srcdir)/.git"; then \
-           export REVISION="`git describe`" ;  \
-         else \
-           export REVISION="$(JSON_VERSION) $(JSON_RELEASE_STATUS)" ; \
-         fi ; \
-         export TIMESTAMP=`date +%Y-%m-%dT%H:%M:%S%z` ; \
-         for subdir in $(SUBDIRS) . ; do \
-           test "$$subdir" = "." -o "$$subdir" = "po" || \
-           ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-         done ; \
-         $$ignore_logdir || { \
-           echo '<?xml version="1.0"?>'                 > $@.xml ; \
-           echo '<report-collection>'                  >> $@.xml ; \
-           echo '<info>'                               >> $@.xml ; \
-           echo '  <package>$(PACKAGE)</package>'      >> $@.xml ; \
-           echo '  <version>$(JSON_VERSION)</version>' >> $@.xml ; \
-           echo "  <revision>$$REVISION</revision>"    >> $@.xml ; \
-           echo "  <date>$$TIMESTAMP</date>"           >> $@.xml ; \
-           echo '</info>'                              >> $@.xml ; \
-           for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
-             sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
-           done ; \
-           echo >> $@.xml ; \
-           echo '</report-collection>' >> $@.xml ; \
-           rm -rf "$$GTESTER_LOGDIR"/ ; \
-           ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
-         }
-.PHONY: test test-report perf-report full-report test-nonrecursive
-
-# run tests in cwd as part of make check
-check-local: test-nonrecursive
-
-stamp-enum-types: $(glib_enum_headers) $(srcdir)/$(enum_tmpl_h)
-       $(QUIET_GEN)$(GLIB_MKENUMS) \
-               --template $(srcdir)/$(enum_tmpl_h) \
-       $(glib_enum_headers) > xgen-eh \
+.PRECIOUS: Makefile
+
+
+# Basic sanity checks
+$(if $(GLIB_MKENUMS),,$(error Need to define GLIB_MKENUMS))
+
+$(if $(or $(glib_enum_h), \
+          $(glib_enum_c)),, \
+    $(error Need to define glib_enum_h and glib_enum_c))
+
+$(if $(glib_enum_headers),,$(error Need to define glib_enum_headers))
+
+stamp-enum-types: $(enum_headers) $(enum_tmpl_h)
+       $(AM_V_GEN)$(GLIB_MKENUMS) \
+               --template $(enum_tmpl_h) \
+       $(enum_headers) > xgen-eh \
        && (cmp -s xgen-eh $(glib_enum_h) || cp -f xgen-eh $(glib_enum_h)) \
        && rm -f xgen-eh \
        && echo timestamp > $(@F)
@@ -1581,18 +1417,25 @@ stamp-enum-types: $(glib_enum_headers) $(srcdir)/$(enum_tmpl_h)
 $(glib_enum_h): stamp-enum-types
        @true
 
-$(glib_enum_c): $(glib_enum_h) $(srcdir)/$(enum_tmpl_c)
-       $(QUIET_GEN)$(GLIB_MKENUMS) \
-               --template $(srcdir)/$(enum_tmpl_c) \
-       $(glib_enum_headers) > xgen-ec \
+$(glib_enum_c): $(enum_headers) $(enum_tmpl_h) $(enum_tmpl_c)
+       $(AM_V_GEN)$(GLIB_MKENUMS) \
+               --template $(enum_tmpl_c) \
+       $(enum_headers) > xgen-ec \
        && cp -f xgen-ec $(glib_enum_c) \
        && rm -f xgen-ec
 
-stamp-marshal: $(glib_marshal_list)
-       $(QUIET_GEN)$(GLIB_GENMARSHAL) \
+# Basic sanity checks
+$(if $(GLIB_GENMARSHAL),,$(error Need to define GLIB_GENMARSHAL))
+
+$(if $(or $(glib_marshal_list), \
+          $(glib_marshal_prefix)),, \
+    $(error Need to define glib_marshal_list and glib_marshal_prefix))
+
+stamp-marshal: $(marshal_list)
+       $(AM_V_GEN)$(GLIB_GENMARSHAL) \
                --prefix=$(glib_marshal_prefix) \
                --header \
-       $(srcdir)/$(glib_marshal_list) > xgen-mh \
+       $(marshal_list) > xgen-mh \
        && (cmp -s xgen-mh $(marshal_h) || cp -f xgen-mh $(marshal_h)) \
        && rm -f xgen-mh \
        && echo timestamp > $(@F)
@@ -1601,19 +1444,23 @@ $(marshal_h): stamp-marshal
        @true
 
 $(marshal_c): $(marshal_h)
-       $(QUIET_GEN)(echo "#include \"$(marshal_h)\"" ; \
+       $(AM_V_GEN)(echo "#include \"$(marshal_h)\"" ; \
        $(GLIB_GENMARSHAL) \
                --prefix=$(glib_marshal_prefix) \
                --body \
-       $(srcdir)/$(glib_marshal_list)) > xgen-mc \
+       $(marshal_list)) > xgen-mc \
        && cp xgen-mc $(marshal_c) \
        && rm -f xgen-mc
 
+json-glib-1.0.pc: json-glib.pc
+       $(AM_V_GEN)cp -f $< $@
+
 # intospection
 -include $(INTROSPECTION_MAKEFILE)
 
 @HAVE_INTROSPECTION_TRUE@Json-1.0.gir: libjson-glib-1.0.la Makefile
 
+# visual studio
 dist-hook: ../build/win32/vs9/json-glib.vcproj ../build/win32/vs10/json-glib.vcxproj ../build/win32/vs10/json-glib.vcxproj.filters
 
 ../build/win32/vs9/json-glib.vcproj: $(top_srcdir)/build/win32/vs9/json-glib.vcprojin
diff --git a/json-glib/abicheck.sh b/json-glib/abicheck.sh
deleted file mode 100755 (executable)
index 0cba7f9..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#! /bin/sh
-
-cpp -P ${cppargs} ${srcdir:-.}/json-glib.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' -e 's/ DATA//' | sort > expected-abi
-
-nm -D -g --defined-only .libs/libjson-glib-1.0.so | cut -d ' ' -f 3 | egrep -v '^(__bss_start|_edata|_end)' | sort > actual-abi
-diff -u expected-abi actual-abi && rm -f expected-abi actual-abi
index 0d65e42..4834cdc 100644 (file)
@@ -21,9 +21,7 @@
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "json-types-private.h"
 
@@ -32,7 +30,7 @@
  * @short_description: a JSON array representation
  *
  * #JsonArray is the representation of the array type inside JSON. It contains
- * #JsonNode<!-- -->s, which may contain fundamental types, other arrays or
+ * #JsonNode elements, which may contain fundamental types, other arrays or
  * objects.
  *
  * Since arrays can be expensive, they are reference counted. You can control
 G_DEFINE_BOXED_TYPE (JsonArray, json_array, json_array_ref, json_array_unref);
 
 /**
- * json_array_new:
+ * json_array_new: (constructor)
  *
  * Creates a new #JsonArray.
  *
- * Return value: the newly created #JsonArray
+ * Return value: (transfer full): the newly created #JsonArray
  */
 JsonArray *
 json_array_new (void)
 {
   JsonArray *array;
 
-  array = g_slice_new (JsonArray);
+  array = g_slice_new0 (JsonArray);
 
   array->ref_count = 1;
   array->elements = g_ptr_array_new ();
@@ -67,19 +65,19 @@ json_array_new (void)
 }
 
 /**
- * json_array_sized_new:
+ * json_array_sized_new: (constructor)
  * @n_elements: number of slots to pre-allocate
  *
  * Creates a new #JsonArray with @n_elements slots already allocated.
  *
- * Return value: the newly created #JsonArray
+ * Return value: (transfer full): the newly created #JsonArray
  */
 JsonArray *
 json_array_sized_new (guint n_elements)
 {
   JsonArray *array;
 
-  array = g_slice_new (JsonArray);
+  array = g_slice_new0 (JsonArray);
   
   array->ref_count = 1;
   array->elements = g_ptr_array_sized_new (n_elements);
@@ -93,7 +91,7 @@ json_array_sized_new (guint n_elements)
  *
  * Increase by one the reference count of a #JsonArray.
  *
- * Return value: the passed #JsonArray, with the reference count
+ * Return value: (transfer none): the passed #JsonArray, with the reference count
  *   increased by one.
  */
 JsonArray *
@@ -102,7 +100,7 @@ json_array_ref (JsonArray *array)
   g_return_val_if_fail (array != NULL, NULL);
   g_return_val_if_fail (array->ref_count > 0, NULL);
 
-  g_atomic_int_add (&array->ref_count, 1);
+  array->ref_count++;
 
   return array;
 }
@@ -121,12 +119,12 @@ json_array_unref (JsonArray *array)
   g_return_if_fail (array != NULL);
   g_return_if_fail (array->ref_count > 0);
 
-  if (g_atomic_int_dec_and_test (&array->ref_count))
+  if (--array->ref_count == 0)
     {
       guint i;
 
       for (i = 0; i < array->elements->len; i++)
-        json_node_free (g_ptr_array_index (array->elements, i));
+        json_node_unref (g_ptr_array_index (array->elements, i));
 
       g_ptr_array_free (array->elements, TRUE);
       array->elements = NULL;
@@ -136,10 +134,59 @@ json_array_unref (JsonArray *array)
 }
 
 /**
+ * json_array_seal:
+ * @array: a #JsonArray
+ *
+ * Seals the #JsonArray, making it immutable to further changes. This will
+ * recursively seal all elements in the array too.
+ *
+ * If the @array is already immutable, this is a no-op.
+ *
+ * Since: 1.2
+ */
+void
+json_array_seal (JsonArray *array)
+{
+  guint i;
+
+  g_return_if_fail (array != NULL);
+  g_return_if_fail (array->ref_count > 0);
+
+  if (array->immutable)
+    return;
+
+  /* Propagate to all members. */
+  for (i = 0; i < array->elements->len; i++)
+    json_node_seal (g_ptr_array_index (array->elements, i));
+
+  array->immutable_hash = json_array_hash (array);
+  array->immutable = TRUE;
+}
+
+/**
+ * json_array_is_immutable:
+ * @array: a #JsonArray
+ *
+ * Check whether the given @array has been marked as immutable by calling
+ * json_array_seal() on it.
+ *
+ * Since: 1.2
+ * Returns: %TRUE if the @array is immutable
+ */
+gboolean
+json_array_is_immutable (JsonArray *array)
+{
+  g_return_val_if_fail (array != NULL, FALSE);
+  g_return_val_if_fail (array->ref_count > 0, FALSE);
+
+  return array->immutable;
+}
+
+/**
  * json_array_get_elements:
  * @array: a #JsonArray
  *
- * Gets the elements of a #JsonArray as a list of #JsonNode<!-- -->s.
+ * Gets the elements of a #JsonArray as a list of #JsonNode instances.
  *
  * Return value: (element-type JsonNode) (transfer container): a #GList
  *   containing the elements of the array. The contents of the list are
@@ -171,7 +218,7 @@ json_array_get_elements (JsonArray *array)
  * element at @index_ inside a #JsonArray
  *
  * Return value: (transfer full): a copy of the #JsonNode at the requested
- *   index. Use json_node_free() when done.
+ *   index. Use json_node_unref() when done.
  *
  * Since: 0.6
  */
@@ -489,7 +536,7 @@ json_array_add_int_element (JsonArray *array,
 {
   g_return_if_fail (array != NULL);
 
-  g_ptr_array_add (array->elements, json_node_init_int (json_node_alloc (), value));
+  json_array_add_element (array, json_node_init_int (json_node_alloc (), value));
 }
 
 /**
@@ -509,7 +556,7 @@ json_array_add_double_element (JsonArray *array,
 {
   g_return_if_fail (array != NULL);
 
-  g_ptr_array_add (array->elements, json_node_init_double (json_node_alloc (), value));
+  json_array_add_element (array, json_node_init_double (json_node_alloc (), value));
 }
 
 /**
@@ -529,7 +576,7 @@ json_array_add_boolean_element (JsonArray *array,
 {
   g_return_if_fail (array != NULL);
 
-  g_ptr_array_add (array->elements, json_node_init_boolean (json_node_alloc (), value));
+  json_array_add_element (array, json_node_init_boolean (json_node_alloc (), value));
 }
 
 /**
@@ -553,12 +600,12 @@ json_array_add_string_element (JsonArray   *array,
 
   node = json_node_alloc ();
 
-  if (value != NULL && *value != '\0')
+  if (value != NULL)
     json_node_init_string (node, value);
   else
     json_node_init_null (node);
 
-  g_ptr_array_add (array->elements, node);
+  json_array_add_element (array, node);
 }
 
 /**
@@ -576,7 +623,7 @@ json_array_add_null_element (JsonArray *array)
 {
   g_return_if_fail (array != NULL);
 
-  g_ptr_array_add (array->elements, json_node_init_null (json_node_alloc ()));
+  json_array_add_element (array, json_node_init_null (json_node_alloc ()));
 }
 
 /**
@@ -609,7 +656,7 @@ json_array_add_array_element (JsonArray *array,
   else
     json_node_init_null (node);
 
-  g_ptr_array_add (array->elements, node);
+  json_array_add_element (array, node);
 }
 
 /**
@@ -642,7 +689,7 @@ json_array_add_object_element (JsonArray  *array,
   else
     json_node_init_null (node);
 
-  g_ptr_array_add (array->elements, node);
+  json_array_add_element (array, node);
 }
 
 /**
@@ -660,7 +707,7 @@ json_array_remove_element (JsonArray *array,
   g_return_if_fail (array != NULL);
   g_return_if_fail (index_ < array->elements->len);
 
-  json_node_free (g_ptr_array_remove_index (array->elements, index_));
+  json_node_unref (g_ptr_array_remove_index (array->elements, index_));
 }
 
 /**
@@ -697,3 +744,92 @@ json_array_foreach_element (JsonArray        *array,
       (* func) (array, i, element_node, data);
     }
 }
+
+/**
+ * json_array_hash:
+ * @key: (type JsonArray): a JSON array to hash
+ *
+ * Calculate a hash value for the given @key (a #JsonArray).
+ *
+ * The hash is calculated over the array and all its elements, recursively. If
+ * the array is immutable, this is a fast operation; otherwise, it scales
+ * proportionally with the length of the array.
+ *
+ * Returns: hash value for @key
+ * Since: 1.2
+ */
+guint
+json_array_hash (gconstpointer key)
+{
+  JsonArray *array;  /* unowned */
+  guint hash = 0;
+  guint i;
+
+  g_return_val_if_fail (key != NULL, 0);
+
+  array = (JsonArray *) key;
+
+  /* If the array is immutable, we can use the calculated hash. */
+  if (array->immutable)
+    return array->immutable_hash;
+
+  /* Otherwise, calculate the hash. */
+  for (i = 0; i < array->elements->len; i++)
+    {
+      JsonNode *node = g_ptr_array_index (array->elements, i);
+      hash ^= (i ^ json_node_hash (node));
+    }
+
+  return hash;
+}
+
+/**
+ * json_array_equal:
+ * @a: (type JsonArray): a JSON array
+ * @b: (type JsonArray): another JSON array
+ *
+ * Check whether @a and @b are equal #JsonArrays, meaning they have the same
+ * number of elements, and the values of elements in corresponding positions
+ * are equal.
+ *
+ * Returns: %TRUE if @a and @b are equal; %FALSE otherwise
+ * Since: 1.2
+ */
+gboolean
+json_array_equal (gconstpointer a,
+                  gconstpointer b)
+{
+  JsonArray *array_a, *array_b;  /* unowned */
+  guint length_a, length_b, i;
+
+  g_return_val_if_fail (a != NULL, FALSE);
+  g_return_val_if_fail (b != NULL, FALSE);
+
+  array_a = (JsonArray *) a;
+  array_b = (JsonArray *) b;
+
+  /* Identity comparison. */
+  if (array_a == array_b)
+    return TRUE;
+
+  /* Check lengths. */
+  length_a = json_array_get_length (array_a);
+  length_b = json_array_get_length (array_b);
+
+  if (length_a != length_b)
+    return FALSE;
+
+  /* Check elements. */
+  for (i = 0; i < length_a; i++)
+    {
+      JsonNode *child_a, *child_b;  /* unowned */
+
+      child_a = json_array_get_element (array_a, i);
+      child_b = json_array_get_element (array_b, i);
+
+      if (!json_node_equal (child_a, child_b))
+        return FALSE;
+    }
+
+  return TRUE;
+}
index d2f5391..34c29c6 100644 (file)
@@ -2,6 +2,7 @@
  *
  * This file is part of JSON-GLib
  * Copyright (C) 2010  Luca Bruno <lethalman88@gmail.com>
+ * Copyright (C) 2015  Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -18,6 +19,7 @@
  *
  * Author:
  *   Luca Bruno  <lethalman88@gmail.com>
+ *   Philip Withnall  <philip.withnall@collabora.co.uk>
  */
 
 /**
@@ -37,9 +39,7 @@
  * most of functions, making it easy to chain function calls.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 #include <string.h>
 
 #include "json-builder.h"
 
-#define JSON_BUILDER_GET_PRIVATE(obj) \
-        (G_TYPE_INSTANCE_GET_PRIVATE ((obj), JSON_TYPE_BUILDER, JsonBuilderPrivate))
-
 struct _JsonBuilderPrivate
 {
   GQueue *stack;
   JsonNode *root;
+  gboolean immutable;
+};
+
+enum
+{
+  PROP_IMMUTABLE = 1,
+  PROP_LAST
 };
 
+static GParamSpec *builder_props[PROP_LAST] = { NULL, };
+
 typedef enum
 {
   JSON_BUILDER_MODE_OBJECT,
@@ -104,7 +110,7 @@ json_builder_state_free (JsonBuilderState *state)
     }
 }
 
-G_DEFINE_TYPE (JsonBuilder, json_builder, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (JsonBuilder, json_builder, G_TYPE_OBJECT)
 
 static void
 json_builder_free_all_state (JsonBuilder *builder)
@@ -119,7 +125,7 @@ json_builder_free_all_state (JsonBuilder *builder)
 
   if (builder->priv->root)
     {
-      json_node_free (builder->priv->root);
+      json_node_unref (builder->priv->root);
       builder->priv->root = NULL;
     }
 }
@@ -127,7 +133,7 @@ json_builder_free_all_state (JsonBuilder *builder)
 static void
 json_builder_finalize (GObject *gobject)
 {
-  JsonBuilderPrivate *priv = JSON_BUILDER_GET_PRIVATE (gobject);
+  JsonBuilderPrivate *priv = json_builder_get_instance_private ((JsonBuilder *) gobject);
 
   json_builder_free_all_state (JSON_BUILDER (gobject));
 
@@ -138,21 +144,78 @@ json_builder_finalize (GObject *gobject)
 }
 
 static void
+json_builder_set_property (GObject      *gobject,
+                           guint         prop_id,
+                           const GValue *value,
+                           GParamSpec   *pspec)
+{
+  JsonBuilderPrivate *priv = JSON_BUILDER (gobject)->priv;
+
+  switch (prop_id)
+    {
+    case PROP_IMMUTABLE:
+      /* Construct-only. */
+      priv->immutable = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+      break;
+    }
+}
+
+static void
+json_builder_get_property (GObject    *gobject,
+                           guint       prop_id,
+                           GValue     *value,
+                           GParamSpec *pspec)
+{
+  JsonBuilderPrivate *priv = JSON_BUILDER (gobject)->priv;
+
+  switch (prop_id)
+    {
+    case PROP_IMMUTABLE:
+      g_value_set_boolean (value, priv->immutable);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+      break;
+    }
+}
+
+static void
 json_builder_class_init (JsonBuilderClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (JsonBuilderPrivate));
-
+  /**
+   * JsonBuilder:immutable:
+   *
+   * Whether the #JsonNode tree built by the #JsonBuilder should be immutable
+   * when created. Making the output immutable on creation avoids the expense
+   * of traversing it to make it immutable later.
+   *
+   * Since: 1.2
+   */
+  builder_props[PROP_IMMUTABLE] =
+    g_param_spec_boolean ("immutable",
+                          "Immutable Output",
+                          "Whether the builder output is immutable.",
+                          FALSE,
+                          G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
+
+  gobject_class->set_property = json_builder_set_property;
+  gobject_class->get_property = json_builder_get_property;
   gobject_class->finalize = json_builder_finalize;
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, builder_props);
 }
 
 static void
 json_builder_init (JsonBuilder *builder)
 {
-  JsonBuilderPrivate *priv;
+  JsonBuilderPrivate *priv = json_builder_get_instance_private (builder);
 
-  builder->priv = priv = JSON_BUILDER_GET_PRIVATE (builder);
+  builder->priv = priv;
 
   priv->stack = g_queue_new ();
   priv->root = NULL;
@@ -176,7 +239,7 @@ json_builder_is_valid_add_mode (JsonBuilder *builder)
  * json_builder_new:
  *
  * Creates a new #JsonBuilder. You can use this object to generate a
- * JSON tree and obtain the root #JsonNode<!-- -->s.
+ * JSON tree and obtain the root #JsonNode.
  *
  * Return value: the newly created #JsonBuilder instance
  */
@@ -187,6 +250,21 @@ json_builder_new (void)
 }
 
 /**
+ * json_builder_new_immutable:
+ *
+ * Creates a new #JsonBuilder instance with its #JsonBuilder:immutable property
+ * set to %TRUE to create immutable output trees.
+ *
+ * Since: 1.2
+ * Returns: (transfer full): a new #JsonBuilder
+ */
+JsonBuilder *
+json_builder_new_immutable (void)
+{
+  return g_object_new (JSON_TYPE_BUILDER, "immutable", TRUE, NULL);
+}
+
+/**
  * json_builder_get_root:
  * @builder: a #JsonBuilder
  *
@@ -194,7 +272,7 @@ json_builder_new (void)
  * (ie: all opened objects, object members and arrays are being closed).
  *
  * Return value: (transfer full): the #JsonNode, or %NULL if the build is not complete.
- *   Free the returned value with json_node_free().
+ *   Free the returned value with json_node_unref().
  */
 JsonNode *
 json_builder_get_root (JsonBuilder *builder)
@@ -206,6 +284,11 @@ json_builder_get_root (JsonBuilder *builder)
   if (builder->priv->root)
     root = json_node_copy (builder->priv->root);
 
+  /* Sanity check. */
+  g_return_val_if_fail (!builder->priv->immutable ||
+                        root == NULL ||
+                        json_node_is_immutable (root), NULL);
+
   return root;
 }
 
@@ -299,10 +382,16 @@ json_builder_end_object (JsonBuilder *builder)
 
   state = g_queue_pop_head (builder->priv->stack);
 
+  if (builder->priv->immutable)
+    json_object_seal (state->data.object);
+
   if (g_queue_is_empty (builder->priv->stack))
     {
       builder->priv->root = json_node_new (JSON_NODE_OBJECT);
       json_node_take_object (builder->priv->root, json_object_ref (state->data.object));
+
+      if (builder->priv->immutable)
+        json_node_seal (builder->priv->root);
     }
 
   json_builder_state_free (state);
@@ -385,10 +474,16 @@ json_builder_end_array (JsonBuilder *builder)
 
   state = g_queue_pop_head (builder->priv->stack);
 
+  if (builder->priv->immutable)
+    json_array_seal (state->data.array);
+
   if (g_queue_is_empty (builder->priv->stack))
     {
       builder->priv->root = json_node_new (JSON_NODE_ARRAY);
       json_node_take_array (builder->priv->root, json_array_ref (state->data.array));
+
+      if (builder->priv->immutable)
+        json_node_seal (builder->priv->root);
     }
 
   json_builder_state_free (state);
@@ -429,12 +524,14 @@ json_builder_set_member_name (JsonBuilder *builder,
 /**
  * json_builder_add_value:
  * @builder: a #JsonBuilder
- * @node: the value of the member or element
+ * @node: (transfer full): the value of the member or element
  *
  * If called after json_builder_set_member_name(), sets @node as member of the
  * most recent opened object, otherwise @node is added as element of the most
  * recent opened array.
  *
+ * The builder will take ownership of the #JsonNode.
+ *
  * Return value: (transfer none): the #JsonBuilder, or %NULL if the call was inconsistent
  */
 JsonBuilder *
@@ -449,6 +546,10 @@ json_builder_add_value (JsonBuilder *builder,
   g_return_val_if_fail (json_builder_is_valid_add_mode (builder), NULL);
 
   state = g_queue_peek_head (builder->priv->stack);
+
+  if (builder->priv->immutable)
+    json_node_seal (node);
+
   switch (state->mode)
     {
     case JSON_BUILDER_MODE_MEMBER:
index e034193..b35230e 100644 (file)
  *   Luca Bruno  <lethalman88@gmail.com>
  */
 
+#ifndef __JSON_BUILDER_H__
+#define __JSON_BUILDER_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_BUILDER_H__
-#define __JSON_BUILDER_H__
-
 #include <json-glib/json-types.h>
 
 G_BEGIN_DECLS
@@ -45,8 +45,8 @@ typedef struct _JsonBuilderClass      JsonBuilderClass;
 /**
  * JsonBuilder:
  *
- * The <structname>JsonBuilder</structname> structure contains only
- * private data and shouls be accessed using the provided API
+ * The `JsonBuilder` structure contains only private data and should be
+ * accessed using the provided API
  *
  * Since: 0.12
  */
@@ -61,8 +61,7 @@ struct _JsonBuilder
 /**
  * JsonBuilderClass:
  *
- * The <structname>JsonBuilder</structname> structure contains only
- * private data
+ * The `JsonBuilderClass` structure contains only private data
  *
  * Since: 0.12
  */
@@ -76,31 +75,52 @@ struct _JsonBuilderClass
   void (* _json_reserved2) (void);
 };
 
+JSON_AVAILABLE_IN_1_0
 GType json_builder_get_type (void) G_GNUC_CONST;
 
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_new                (void);
+JSON_AVAILABLE_IN_1_2
+JsonBuilder *json_builder_new_immutable      (void);
+JSON_AVAILABLE_IN_1_0
 JsonNode    *json_builder_get_root           (JsonBuilder  *builder);
+JSON_AVAILABLE_IN_1_0
 void         json_builder_reset              (JsonBuilder  *builder);
 
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_begin_array        (JsonBuilder  *builder);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_end_array          (JsonBuilder  *builder);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_begin_object       (JsonBuilder  *builder);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_end_object         (JsonBuilder  *builder);
 
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_set_member_name    (JsonBuilder  *builder,
                                               const gchar  *member_name);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_value          (JsonBuilder  *builder,
                                               JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_int_value      (JsonBuilder  *builder,
                                               gint64        value);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_double_value   (JsonBuilder  *builder,
                                               gdouble       value);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_boolean_value  (JsonBuilder  *builder,
                                               gboolean      value);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_string_value   (JsonBuilder  *builder,
                                               const gchar  *value);
+JSON_AVAILABLE_IN_1_0
 JsonBuilder *json_builder_add_null_value     (JsonBuilder  *builder);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonBuilder, g_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __JSON_BUILDER_H__ */
index c0dc2e9..b9c3b8f 100644 (file)
@@ -1,27 +1,26 @@
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "json-debug.h"
 
-static unsigned int json_debug_flags     = 0;
-static gboolean     json_debug_flags_set = FALSE;
+static unsigned int json_debug_flags = 0;
 
 #ifdef JSON_ENABLE_DEBUG
 static const GDebugKey json_debug_keys[] = {
   { "parser", JSON_DEBUG_PARSER },
   { "gobject", JSON_DEBUG_GOBJECT },
-  { "path", JSON_DEBUG_PATH }
+  { "path", JSON_DEBUG_PATH },
+  { "node", JSON_DEBUG_NODE },
 };
 #endif /* JSON_ENABLE_DEBUG */
 
 JsonDebugFlags
-_json_get_debug_flags (void)
+json_get_debug_flags (void)
 {
 #ifdef JSON_ENABLE_DEBUG
+  static gboolean json_debug_flags_set;
   const gchar *env_str;
 
-  if (json_debug_flags_set)
+  if (G_LIKELY (json_debug_flags_set))
     return json_debug_flags;
 
   env_str = g_getenv ("JSON_DEBUG");
index 695917f..1b3da52 100644 (file)
@@ -8,15 +8,18 @@ G_BEGIN_DECLS
 typedef enum {
   JSON_DEBUG_PARSER  = 1 << 0,
   JSON_DEBUG_GOBJECT = 1 << 1,
-  JSON_DEBUG_PATH    = 1 << 2
+  JSON_DEBUG_PATH    = 1 << 2,
+  JSON_DEBUG_NODE    = 1 << 3
 } JsonDebugFlags;
 
+#define JSON_HAS_DEBUG(flag)    (json_get_debug_flags () & JSON_DEBUG_##flag)
+
 #ifdef JSON_ENABLE_DEBUG
 
 # ifdef __GNUC__
 
 # define JSON_NOTE(type,x,a...)                 G_STMT_START {  \
-        if (_json_get_debug_flags () & JSON_DEBUG_##type) {     \
+        if (JSON_HAS_DEBUG (type)) {                            \
           g_message ("[" #type "] " G_STRLOC ": " x, ##a);      \
         }                                       } G_STMT_END
 
@@ -26,7 +29,7 @@ typedef enum {
  * do an intemediate printf.
  */
 # define JSON_NOTE(type,...)                    G_STMT_START {  \
-        if (_json_get_debug_flags () & JSON_DEBUG_##type) {     \
+        if (JSON_HAS_DEBUG (type)) {                            \
             gchar * _fmt = g_strdup_printf (__VA_ARGS__);       \
             g_message ("[" #type "] " G_STRLOC ": %s",_fmt);    \
             g_free (_fmt);                                      \
@@ -40,7 +43,8 @@ typedef enum {
 
 #endif /* JSON_ENABLE_DEBUG */
 
-JsonDebugFlags _json_get_debug_flags (void);
+G_GNUC_INTERNAL
+JsonDebugFlags json_get_debug_flags (void);
 
 G_END_DECLS
 
index 081b883..5aab19b 100644 (file)
@@ -1,13 +1,15 @@
 
 /* Generated data (by glib-mkenums) */
 
+#include "config.h"
 #include "json-enum-types.h"
 
-/* enumerations from "../json-glib/json-parser.h" */
-#include "../json-glib/json-parser.h"
+/* enumerations from "./json-parser.h" */
+#include "./json-parser.h"
 
 GType
-json_parser_error_get_type(void) {
+json_parser_error_get_type (void)
+{
   static volatile gsize g_enum_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_enum_type_id__volatile))
@@ -19,12 +21,12 @@ json_parser_error_get_type(void) {
         { JSON_PARSER_ERROR_MISSING_COLON, "JSON_PARSER_ERROR_MISSING_COLON", "missing-colon" },
         { JSON_PARSER_ERROR_INVALID_BAREWORD, "JSON_PARSER_ERROR_INVALID_BAREWORD", "invalid-bareword" },
         { JSON_PARSER_ERROR_EMPTY_MEMBER_NAME, "JSON_PARSER_ERROR_EMPTY_MEMBER_NAME", "empty-member-name" },
+        { JSON_PARSER_ERROR_INVALID_DATA, "JSON_PARSER_ERROR_INVALID_DATA", "invalid-data" },
         { JSON_PARSER_ERROR_UNKNOWN, "JSON_PARSER_ERROR_UNKNOWN", "unknown" },
         { 0, NULL, NULL }
       };
-      GType g_enum_type_id;
 
-      g_enum_type_id =
+      GType g_enum_type_id =
         g_enum_register_static (g_intern_static_string ("JsonParserError"), values);
 
       g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
@@ -33,11 +35,12 @@ json_parser_error_get_type(void) {
   return g_enum_type_id__volatile;
 }
 
-/* enumerations from "../json-glib/json-path.h" */
-#include "../json-glib/json-path.h"
+/* enumerations from "./json-path.h" */
+#include "./json-path.h"
 
 GType
-json_path_error_get_type(void) {
+json_path_error_get_type (void)
+{
   static volatile gsize g_enum_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_enum_type_id__volatile))
@@ -46,9 +49,8 @@ json_path_error_get_type(void) {
         { JSON_PATH_ERROR_INVALID_QUERY, "JSON_PATH_ERROR_INVALID_QUERY", "query" },
         { 0, NULL, NULL }
       };
-      GType g_enum_type_id;
 
-      g_enum_type_id =
+      GType g_enum_type_id =
         g_enum_register_static (g_intern_static_string ("JsonPathError"), values);
 
       g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
@@ -57,11 +59,12 @@ json_path_error_get_type(void) {
   return g_enum_type_id__volatile;
 }
 
-/* enumerations from "../json-glib/json-reader.h" */
-#include "../json-glib/json-reader.h"
+/* enumerations from "./json-reader.h" */
+#include "./json-reader.h"
 
 GType
-json_reader_error_get_type(void) {
+json_reader_error_get_type (void)
+{
   static volatile gsize g_enum_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_enum_type_id__volatile))
@@ -76,9 +79,8 @@ json_reader_error_get_type(void) {
         { JSON_READER_ERROR_INVALID_TYPE, "JSON_READER_ERROR_INVALID_TYPE", "invalid-type" },
         { 0, NULL, NULL }
       };
-      GType g_enum_type_id;
 
-      g_enum_type_id =
+      GType g_enum_type_id =
         g_enum_register_static (g_intern_static_string ("JsonReaderError"), values);
 
       g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
@@ -87,11 +89,12 @@ json_reader_error_get_type(void) {
   return g_enum_type_id__volatile;
 }
 
-/* enumerations from "../json-glib/json-types.h" */
-#include "../json-glib/json-types.h"
+/* enumerations from "./json-types.h" */
+#include "./json-types.h"
 
 GType
-json_node_type_get_type(void) {
+json_node_type_get_type (void)
+{
   static volatile gsize g_enum_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_enum_type_id__volatile))
@@ -103,9 +106,8 @@ json_node_type_get_type(void) {
         { JSON_NODE_NULL, "JSON_NODE_NULL", "null" },
         { 0, NULL, NULL }
       };
-      GType g_enum_type_id;
 
-      g_enum_type_id =
+      GType g_enum_type_id =
         g_enum_register_static (g_intern_static_string ("JsonNodeType"), values);
 
       g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
index 8b82049..a2a13b4 100644 (file)
@@ -1,4 +1,5 @@
 /*** BEGIN file-header ***/
+#include "config.h"
 #include "json-enum-types.h"
 /*** END file-header ***/
 
@@ -11,7 +12,8 @@
 
 /*** BEGIN value-header ***/
 GType
-@enum_name@_get_type(void) {
+@enum_name@_get_type (void)
+{
   static volatile gsize g_enum_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_enum_type_id__volatile))
@@ -26,9 +28,8 @@ GType
 /*** BEGIN value-tail ***/
         { 0, NULL, NULL }
       };
-      GType g_enum_type_id;
 
-      g_enum_type_id =
+      GType g_enum_type_id =
         g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
 
       g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
index 93dc672..035165d 100644 (file)
@@ -1,30 +1,35 @@
 
 /* Generated data (by glib-mkenums) */
 
+#ifndef __JSON_ENUM_TYPES_H__
+#define __JSON_ENUM_TYPES_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_ENUM_TYPES_H__
-#define __JSON_ENUM_TYPES_H__
-
 #include <glib-object.h>
+#include <json-glib/json-version-macros.h>
 
 G_BEGIN_DECLS
 
-/* enumerations from "../json-glib/json-parser.h" */
+/* enumerations from "./json-parser.h" */
+JSON_AVAILABLE_IN_1_0
 GType json_parser_error_get_type (void) G_GNUC_CONST;
 #define JSON_TYPE_PARSER_ERROR (json_parser_error_get_type())
 
-/* enumerations from "../json-glib/json-path.h" */
+/* enumerations from "./json-path.h" */
+JSON_AVAILABLE_IN_1_0
 GType json_path_error_get_type (void) G_GNUC_CONST;
 #define JSON_TYPE_PATH_ERROR (json_path_error_get_type())
 
-/* enumerations from "../json-glib/json-reader.h" */
+/* enumerations from "./json-reader.h" */
+JSON_AVAILABLE_IN_1_0
 GType json_reader_error_get_type (void) G_GNUC_CONST;
 #define JSON_TYPE_READER_ERROR (json_reader_error_get_type())
 
-/* enumerations from "../json-glib/json-types.h" */
+/* enumerations from "./json-types.h" */
+JSON_AVAILABLE_IN_1_0
 GType json_node_type_get_type (void) G_GNUC_CONST;
 #define JSON_TYPE_NODE_TYPE (json_node_type_get_type())
 
index 96f565e..4ce965d 100644 (file)
@@ -1,12 +1,13 @@
 /*** BEGIN file-header ***/
+#ifndef __JSON_ENUM_TYPES_H__
+#define __JSON_ENUM_TYPES_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_ENUM_TYPES_H__
-#define __JSON_ENUM_TYPES_H__
-
 #include <glib-object.h>
+#include <json-glib/json-version-macros.h>
 
 G_BEGIN_DECLS
 
@@ -23,6 +24,7 @@ G_END_DECLS
 /*** END file-tail ***/
 
 /*** BEGIN value-header ***/
+JSON_AVAILABLE_IN_1_0
 GType @enum_name@_get_type (void) G_GNUC_CONST;
 #define JSON_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
 
index 8f21f75..ef53af1 100644 (file)
@@ -32,7 +32,7 @@
  * When registering a #GBoxed type you should also register the
  * corresponding transformation functions, e.g.:
  *
- * |[
+ * |[<!-- language="C" -->
  *   GType
  *   my_struct_get_type (void)
  *   {
@@ -66,9 +66,7 @@
  * and to which specific #JsonNodeType.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 #include <stdlib.h>
index 097f2a9..c47e7fe 100644 (file)
@@ -29,9 +29,7 @@
  * put it into a buffer or a file.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 #include <string.h>
@@ -41,9 +39,6 @@
 #include "json-marshal.h"
 #include "json-generator.h"
 
-#define JSON_GENERATOR_GET_PRIVATE(obj) \
-        (G_TYPE_INSTANCE_GET_PRIVATE ((obj), JSON_TYPE_GENERATOR, JsonGeneratorPrivate))
-
 struct _JsonGeneratorPrivate
 {
   JsonNode *root;
@@ -82,48 +77,70 @@ static gchar *dump_object (JsonGenerator *generator,
                            JsonObject    *object,
                            gsize         *length);
 
-/* non-ASCII characters can't be escaped, otherwise UTF-8
- * chars will break, so we just pregenerate this table of
- * high characters and then we feed it to g_strescape()
- */
-static const char json_exceptions[] = {
-  0x7f,  0x80,  0x81,  0x82,  0x83,  0x84,  0x85,  0x86,
-  0x87,  0x88,  0x89,  0x8a,  0x8b,  0x8c,  0x8d,  0x8e,
-  0x8f,  0x90,  0x91,  0x92,  0x93,  0x94,  0x95,  0x96,
-  0x97,  0x98,  0x99,  0x9a,  0x9b,  0x9c,  0x9d,  0x9e,
-  0x9f,  0xa0,  0xa1,  0xa2,  0xa3,  0xa4,  0xa5,  0xa6,
-  0xa7,  0xa8,  0xa9,  0xaa,  0xab,  0xac,  0xad,  0xae,
-  0xaf,  0xb0,  0xb1,  0xb2,  0xb3,  0xb4,  0xb5,  0xb6,
-  0xb7,  0xb8,  0xb9,  0xba,  0xbb,  0xbc,  0xbd,  0xbe,
-  0xbf,  0xc0,  0xc1,  0xc2,  0xc3,  0xc4,  0xc5,  0xc6,
-  0xc7,  0xc8,  0xc9,  0xca,  0xcb,  0xcc,  0xcd,  0xce,
-  0xcf,  0xd0,  0xd1,  0xd2,  0xd3,  0xd4,  0xd5,  0xd6,
-  0xd7,  0xd8,  0xd9,  0xda,  0xdb,  0xdc,  0xdd,  0xde,
-  0xdf,  0xe0,  0xe1,  0xe2,  0xe3,  0xe4,  0xe5,  0xe6,
-  0xe7,  0xe8,  0xe9,  0xea,  0xeb,  0xec,  0xed,  0xee,
-  0xef,  0xf0,  0xf1,  0xf2,  0xf3,  0xf4,  0xf5,  0xf6,
-  0xf7,  0xf8,  0xf9,  0xfa,  0xfb,  0xfc,  0xfd,  0xfe,
-  0xff,
-  '\0'   /* g_strescape() expects a NUL-terminated string */
-};
-
 static GParamSpec *generator_props[PROP_LAST] = { NULL, };
 
-G_DEFINE_TYPE (JsonGenerator, json_generator, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (JsonGenerator, json_generator, G_TYPE_OBJECT)
 
 static gchar *
 json_strescape (const gchar *str)
 {
-  return g_strescape (str, json_exceptions);
+  const gchar *p;
+  const gchar *end;
+  GString *output;
+  gsize len;
+
+  len = strlen (str);
+  end = str + len;
+  output = g_string_sized_new (len);
+
+  for (p = str; p < end; p++)
+    {
+      if (*p == '\\' || *p == '"')
+        {
+          g_string_append_c (output, '\\');
+          g_string_append_c (output, *p);
+        }
+      else if ((*p > 0 && *p < 0x1f) || *p == 0x7f)
+        {
+          switch (*p)
+            {
+            case '\b':
+              g_string_append (output, "\\b");
+              break;
+            case '\f':
+              g_string_append (output, "\\f");
+              break;
+            case '\n':
+              g_string_append (output, "\\n");
+              break;
+            case '\r':
+              g_string_append (output, "\\r");
+              break;
+            case '\t':
+              g_string_append (output, "\\t");
+              break;
+            default:
+              g_string_append_printf (output, "\\u00%02x", (guint)*p);
+              break;
+            }
+        }
+      else
+        {
+          g_string_append_c (output, *p);
+        }
+    }
+
+  return g_string_free (output, FALSE);
 }
 
 static void
 json_generator_finalize (GObject *gobject)
 {
-  JsonGeneratorPrivate *priv = JSON_GENERATOR_GET_PRIVATE (gobject);
+  JsonGeneratorPrivate *priv;
 
-  if (priv->root)
-    json_node_free (priv->root);
+  priv = json_generator_get_instance_private ((JsonGenerator *) gobject);
+  if (priv->root != NULL)
+    json_node_unref (priv->root);
 
   G_OBJECT_CLASS (json_generator_parent_class)->finalize (gobject);
 }
@@ -193,8 +210,6 @@ json_generator_class_init (JsonGeneratorClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (JsonGeneratorPrivate));
-
   /**
    * JsonGenerator:pretty:
    *
@@ -260,9 +275,9 @@ json_generator_class_init (JsonGeneratorClass *klass)
 static void
 json_generator_init (JsonGenerator *generator)
 {
-  JsonGeneratorPrivate *priv;
+  JsonGeneratorPrivate *priv = json_generator_get_instance_private (generator);
 
-  generator->priv = priv = JSON_GENERATOR_GET_PRIVATE (generator);
+  generator->priv = priv;
 
   priv->pretty = FALSE;
   priv->indent = 2;
@@ -292,7 +307,7 @@ dump_value (JsonGenerator *generator,
         g_string_append_c (buffer, priv->indent_char);
     }
 
-  if (name && name[0] != '\0')
+  if (name)
     {
       if (pretty)
         g_string_append_printf (buffer, "\"%s\" : ", name);
@@ -371,7 +386,7 @@ dump_array (JsonGenerator *generator,
         g_string_append_c (buffer, priv->indent_char);
     }
 
-  if (name && name[0] != '\0')
+  if (name)
     {
       if (pretty)
         g_string_append_printf (buffer, "\"%s\" : ", name);
@@ -464,7 +479,7 @@ dump_object (JsonGenerator *generator,
         g_string_append_c (buffer, priv->indent_char);
     }
 
-  if (name && name[0] != '\0')
+  if (name)
     {
       if (pretty)
         g_string_append_printf (buffer, "\"%s\" : ", name);
@@ -482,6 +497,7 @@ dump_object (JsonGenerator *generator,
   for (l = members; l != NULL; l = l->next)
     {
       const gchar *member_name = l->data;
+      gchar *escaped_name = json_strescape (member_name);
       JsonNode *cur = json_object_get_member (object, member_name);
       guint sub_level = level + 1;
       guint j;
@@ -494,29 +510,29 @@ dump_object (JsonGenerator *generator,
             {
               for (j = 0; j < (sub_level * indent); j++)
                 g_string_append_c (buffer, priv->indent_char);
-              g_string_append_printf (buffer, "\"%s\" : null", member_name);
+              g_string_append_printf (buffer, "\"%s\" : null", escaped_name);
             }
           else
             {
-              g_string_append_printf (buffer, "\"%s\":null", member_name);
+              g_string_append_printf (buffer, "\"%s\":null", escaped_name);
             }
           break;
 
         case JSON_NODE_VALUE:
-          value = dump_value (generator, sub_level, member_name, cur, NULL);
+          value = dump_value (generator, sub_level, escaped_name, cur, NULL);
           g_string_append (buffer, value);
           g_free (value);
           break;
 
         case JSON_NODE_ARRAY:
-          value = dump_array (generator, sub_level, member_name,
+          value = dump_array (generator, sub_level, escaped_name,
                               json_node_get_array (cur), NULL);
           g_string_append (buffer, value);
           g_free (value);
           break;
 
         case JSON_NODE_OBJECT:
-          value = dump_object (generator, sub_level, member_name,
+          value = dump_object (generator, sub_level, escaped_name,
                                json_node_get_object (cur), NULL);
           g_string_append (buffer, value);
           g_free (value);
@@ -528,6 +544,8 @@ dump_object (JsonGenerator *generator,
 
       if (pretty)
         g_string_append_c (buffer, '\n');
+
+      g_free (escaped_name);
     }
 
   g_list_free (members);
@@ -551,7 +569,7 @@ dump_object (JsonGenerator *generator,
  * 
  * Creates a new #JsonGenerator. You can use this object to generate a
  * JSON data stream starting from a data object model composed by
- * #JsonNode<!-- -->s.
+ * #JsonNodes.
  *
  * Return value: the newly created #JsonGenerator instance
  */
@@ -690,8 +708,8 @@ json_generator_to_stream (JsonGenerator  *generator,
  * Sets @node as the root of the JSON data stream to be serialized by
  * the #JsonGenerator.
  *
- * <note>The node is copied by the generator object, so it can be safely
- * freed after calling this function.</note>
+ * The passed @node is copied by the generator object, so it can be
+ * safely freed after calling this function.
  */
 void
 json_generator_set_root (JsonGenerator *generator,
@@ -699,9 +717,12 @@ json_generator_set_root (JsonGenerator *generator,
 {
   g_return_if_fail (JSON_IS_GENERATOR (generator));
 
+  if (generator->priv->root == node)
+    return;
+
   if (generator->priv->root != NULL)
     {
-      json_node_free (generator->priv->root);
+      json_node_unref (generator->priv->root);
       generator->priv->root = NULL;
     }
 
index eb7cdba..194495a 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_GENERATOR_H__
+#define __JSON_GENERATOR_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_GENERATOR_H__
-#define __JSON_GENERATOR_H__
-
 #include <json-glib/json-types.h>
 #include <gio/gio.h>
 
@@ -75,33 +75,50 @@ struct _JsonGeneratorClass
   void (* _json_reserved4) (void);
 };
 
+JSON_AVAILABLE_IN_1_0
 GType json_generator_get_type (void) G_GNUC_CONST;
 
+JSON_AVAILABLE_IN_1_0
 JsonGenerator * json_generator_new              (void);
 
+JSON_AVAILABLE_IN_1_0
 void            json_generator_set_pretty       (JsonGenerator  *generator,
                                                  gboolean        is_pretty);
+JSON_AVAILABLE_IN_1_0
 gboolean        json_generator_get_pretty       (JsonGenerator  *generator);
+JSON_AVAILABLE_IN_1_0
 void            json_generator_set_indent       (JsonGenerator  *generator,
                                                  guint           indent_level);
+JSON_AVAILABLE_IN_1_0
 guint           json_generator_get_indent       (JsonGenerator  *generator);
+JSON_AVAILABLE_IN_1_0
 void            json_generator_set_indent_char  (JsonGenerator  *generator,
                                                  gunichar        indent_char);
+JSON_AVAILABLE_IN_1_0
 gunichar        json_generator_get_indent_char  (JsonGenerator  *generator);
+JSON_AVAILABLE_IN_1_0
 void            json_generator_set_root         (JsonGenerator  *generator,
                                                  JsonNode       *node);
+JSON_AVAILABLE_IN_1_0
 JsonNode *      json_generator_get_root         (JsonGenerator  *generator);
 
+JSON_AVAILABLE_IN_1_0
 gchar *         json_generator_to_data          (JsonGenerator  *generator,
                                                  gsize          *length);
+JSON_AVAILABLE_IN_1_0
 gboolean        json_generator_to_file          (JsonGenerator  *generator,
                                                  const gchar    *filename,
                                                  GError        **error);
+JSON_AVAILABLE_IN_1_0
 gboolean        json_generator_to_stream        (JsonGenerator  *generator,
                                                  GOutputStream  *stream,
                                                  GCancellable   *cancellable,
                                                  GError        **error);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonGenerator, g_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __JSON_GENERATOR_H__ */
diff --git a/json-glib/json-glib-format.c b/json-glib/json-glib-format.c
new file mode 100644 (file)
index 0000000..177e8b3
--- /dev/null
@@ -0,0 +1,221 @@
+/* json-glib-format - Formats JSON data
+ * 
+ * This file is part of JSON-GLib
+ *
+ * Copyright © 2013  Emmanuele Bassi
+ *
+ * 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.1 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, see <http://www.gnu.org/licenses/>.
+ *
+ * Author:
+ *   Emmanuele Bassi  <ebassi@gnome.org>
+ */
+
+#include "config.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <locale.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <json-glib/json-glib.h>
+
+#if defined (G_OS_WIN32) && !defined (HAVE_UNISTD_H)
+#include <io.h>
+
+#define STDOUT_FILENO 1
+#endif
+
+static char **files = NULL;
+static gboolean prettify = FALSE;
+static int indent_spaces = 2;
+
+static GOptionEntry entries[] = {
+  { "prettify", 'p', 0, G_OPTION_ARG_NONE, &prettify, N_("Prettify output"), NULL },
+  { "indent-spaces", 'i', 0, G_OPTION_ARG_INT, &indent_spaces, N_("Indentation spaces"), NULL },
+  { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &files, NULL, NULL },
+  { NULL },
+};
+
+static gboolean
+format (JsonParser    *parser,
+        JsonGenerator *generator,
+        GFile         *file)
+{
+  GInputStream *in;
+  GError *error;
+  gboolean res = TRUE;
+  gboolean parse_res;
+  gboolean close_res;
+  char *data, *p;
+  gsize len;
+
+  error = NULL;
+
+  in = (GInputStream *) g_file_read (file, NULL, &error);
+  if (in == NULL)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error opening file: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_error_free (error);
+      return FALSE;
+    }
+
+  parse_res = json_parser_load_from_stream (parser, in, NULL, &error);
+  if (!parse_res)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error parsing file: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_clear_error (&error);
+      res = FALSE;
+      goto out;
+    }
+
+  json_generator_set_root (generator, json_parser_get_root (parser));
+  data = json_generator_to_data (generator, &len);
+  p = data;
+  while (len > 0)
+    {
+      gssize written = write (STDOUT_FILENO, p, len);
+
+      if (written == -1 && errno != EINTR)
+        {
+          /* Translators: the first %s is the program name, the
+           * second one is the URI of the file.
+           */
+          g_printerr (_("%s: %s: error writing to stdout"), g_get_prgname (), g_file_get_uri (file));
+          res = FALSE;
+          goto out;
+        }
+
+      len -= written;
+      p += written;
+    }
+
+  if (write (STDOUT_FILENO, "\n", 1) < 0)
+    g_error ("%s: %s", g_get_prgname (), g_strerror (errno));
+
+  g_free (data);
+
+out:
+  close_res = g_input_stream_close (in, NULL, &error);
+  if (!close_res)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error closing: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_clear_error (&error);
+      res = FALSE;
+    }
+
+  return res;
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+  GOptionContext *context = NULL;
+  GError *error = NULL;
+  const char *description;
+  const char *summary;
+  gchar *param;
+  JsonParser *parser;
+  JsonGenerator *generator;
+  gboolean res;
+  int i;
+
+  setlocale (LC_ALL, "");
+
+  bindtextdomain (GETTEXT_PACKAGE, JSON_LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+  textdomain (GETTEXT_PACKAGE);
+
+  param = g_strdup_printf (("%s..."), _("FILE"));
+  /* Translators: this message will appear after the usage string */
+  /* and before the list of options.                              */
+  summary = _("Format JSON files.");
+  description = _("json-glib-format formats JSON resources.");
+
+  context = g_option_context_new (param);
+  g_option_context_set_summary (context, summary);
+  g_option_context_set_description (context, description);
+  g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
+  g_option_context_parse (context, &argc, &argv, &error);
+  g_option_context_free (context);
+
+  g_free (param);
+
+  if (error != NULL)
+    {
+      /* Translators: the %s is the program name. This error message
+       * means the user is calling json-glib-validate without any
+       * argument.
+       */
+      g_printerr (_("Error parsing commandline options: %s\n"), error->message);
+      g_printerr ("\n");
+      g_printerr (_("Try \"%s --help\" for more information."), g_get_prgname ());
+      g_printerr ("\n");
+      g_error_free (error);
+      return 1;
+    }
+
+  if (files == NULL)
+    {
+      /* Translators: the %s is the program name. This error message
+       * means the user is calling json-glib-validate without any
+       * argument.
+       */
+      g_printerr (_("%s: missing files"), g_get_prgname ());
+      g_printerr ("\n");
+      g_printerr (_("Try \"%s --help\" for more information."), g_get_prgname ());
+      g_printerr ("\n");
+      return 1;
+    }
+
+  generator = json_generator_new ();
+  json_generator_set_pretty (generator, prettify);
+  json_generator_set_indent (generator, indent_spaces);
+
+  parser = json_parser_new ();
+  res = TRUE;
+  i = 0;
+
+  do
+    {
+      GFile *file = g_file_new_for_commandline_arg (files[i]);
+
+      res = format (parser, generator, file) && res;
+      g_object_unref (file);
+    }
+  while (files[++i] != NULL);
+
+  g_object_unref (parser);
+  g_object_unref (generator);
+
+  return res ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/json-glib/json-glib-validate.c b/json-glib/json-glib-validate.c
new file mode 100644 (file)
index 0000000..2eb013a
--- /dev/null
@@ -0,0 +1,173 @@
+/* json-glib-validate - Checks JSON data for errors
+ * 
+ * This file is part of JSON-GLib
+ *
+ * Copyright © 2013  Emmanuele Bassi
+ *
+ * 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.1 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, see <http://www.gnu.org/licenses/>.
+ *
+ * Author:
+ *   Emmanuele Bassi  <ebassi@gnome.org>
+ */
+
+#include "config.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <stdlib.h>
+#include <stdio.h>
+#include <locale.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <json-glib/json-glib.h>
+
+static char **files = NULL;
+
+static GOptionEntry entries[] = {
+  { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &files, NULL, NULL },
+  { NULL },
+};
+
+static gboolean
+validate (JsonParser *parser,
+          GFile      *file)
+{
+  GInputStream *in;
+  GError *error;
+  gboolean res = TRUE;
+  gboolean parse_res;
+  gboolean close_res;
+
+  error = NULL;
+
+  in = (GInputStream *) g_file_read (file, NULL, &error);
+  if (in == NULL)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error opening file: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_error_free (error);
+      return FALSE;
+    }
+
+  parse_res = json_parser_load_from_stream (parser, in, NULL, &error);
+  if (!parse_res)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error parsing file: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_clear_error (&error);
+      res = FALSE;
+    }
+
+  close_res = g_input_stream_close (in, NULL, &error);
+  if (!close_res)
+    {
+      /* Translators: the first %s is the program name, the second one
+       * is the URI of the file, the third is the error message.
+       */
+      g_printerr (_("%s: %s: error closing: %s\n"),
+                  g_get_prgname (), g_file_get_uri (file), error->message);
+      g_clear_error (&error);
+      res = FALSE;
+    }
+
+  return res;
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+  GOptionContext *context = NULL;
+  GError *error = NULL;
+  const char *description;
+  const char *summary;
+  gchar *param;
+  JsonParser *parser;
+  gboolean res;
+  int i;
+
+  setlocale (LC_ALL, "");
+
+  bindtextdomain (GETTEXT_PACKAGE, JSON_LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+  textdomain (GETTEXT_PACKAGE);
+
+  param = g_strdup_printf (("%s..."), _("FILE"));
+  /* Translators: this message will appear after the usage string */
+  /* and before the list of options.                              */
+  summary = _("Validate JSON files.");
+  description = _("json-glib-validate validates JSON data at the given URI.");
+
+  context = g_option_context_new (param);
+  g_option_context_set_summary (context, summary);
+  g_option_context_set_description (context, description);
+  g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
+  g_option_context_parse (context, &argc, &argv, &error);
+  g_option_context_free (context);
+
+  g_free (param);
+
+  if (error != NULL)
+    {
+      /* Translators: the %s is the program name. This error message
+       * means the user is calling json-glib-validate without any
+       * argument.
+       */
+      g_printerr (_("Error parsing commandline options: %s\n"), error->message);
+      g_printerr ("\n");
+      g_printerr (_("Try \"%s --help\" for more information."), g_get_prgname ());
+      g_printerr ("\n");
+      g_error_free (error);
+      return 1;
+    }
+
+  if (files == NULL)
+    {
+      /* Translators: the %s is the program name. This error message
+       * means the user is calling json-glib-validate without any
+       * argument.
+       */
+      g_printerr (_("%s: missing files"), g_get_prgname ());
+      g_printerr ("\n");
+      g_printerr (_("Try \"%s --help\" for more information."), g_get_prgname ());
+      g_printerr ("\n");
+      return 1;
+    }
+
+  parser = json_parser_new ();
+  res = TRUE;
+  i = 0;
+
+  do
+    {
+      GFile *file = g_file_new_for_commandline_arg (files[i]);
+
+      res = validate (parser, file) && res;
+      g_object_unref (file);
+    }
+  while (files[++i] != NULL);
+
+  g_object_unref (parser);
+
+  return res ? EXIT_SUCCESS : EXIT_FAILURE;
+}
index 257bcdf..939ce0e 100644 (file)
@@ -33,7 +33,9 @@
 #include <json-glib/json-parser.h>
 #include <json-glib/json-path.h>
 #include <json-glib/json-reader.h>
+#include <json-glib/json-utils.h>
 #include <json-glib/json-version.h>
+#include <json-glib/json-version-macros.h>
 
 #include <json-glib/json-enum-types.h>
 
similarity index 100%
rename from json-glib.pc.in
rename to json-glib/json-glib.pc.in
diff --git a/json-glib/json-glib.symbols b/json-glib/json-glib.symbols
deleted file mode 100644 (file)
index 382fbbd..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-json_array_add_array_element
-json_array_add_boolean_element
-json_array_add_double_element
-json_array_add_element
-json_array_add_int_element
-json_array_add_null_element
-json_array_add_object_element
-json_array_add_string_element
-json_array_dup_element
-json_array_foreach_element
-json_array_get_array_element
-json_array_get_boolean_element
-json_array_get_double_element
-json_array_get_element
-json_array_get_elements
-json_array_get_int_element
-json_array_get_length
-json_array_get_null_element
-json_array_get_object_element
-json_array_get_string_element
-json_array_get_type
-json_array_new
-json_array_ref
-json_array_remove_element
-json_array_sized_new
-json_array_unref
-json_boxed_can_deserialize
-json_boxed_can_serialize
-json_boxed_deserialize
-json_boxed_register_deserialize_func
-json_boxed_register_serialize_func
-json_boxed_serialize
-json_builder_add_boolean_value
-json_builder_add_double_value
-json_builder_add_int_value
-json_builder_add_null_value
-json_builder_add_string_value
-json_builder_add_value
-json_builder_begin_array
-json_builder_begin_object
-json_builder_end_array
-json_builder_end_object
-json_builder_get_root
-json_builder_get_type
-json_builder_new
-json_builder_reset
-json_builder_set_member_name
-json_construct_gobject
-json_deserialize_pspec
-json_generator_get_indent
-json_generator_get_indent_char
-json_generator_get_pretty
-json_generator_get_root
-json_generator_get_type
-json_generator_new
-json_generator_set_indent
-json_generator_set_indent_char
-json_generator_set_pretty
-json_generator_set_root
-json_generator_to_data
-json_generator_to_file
-json_generator_to_stream
-json_gobject_deserialize
-json_gobject_from_data
-json_gobject_serialize
-json_gobject_to_data
-json_gvariant_deserialize
-json_gvariant_deserialize_data
-json_gvariant_serialize
-json_gvariant_serialize_data
-json_node_alloc
-json_node_copy
-json_node_dup_array
-json_node_dup_object
-json_node_dup_string
-json_node_free
-json_node_get_array
-json_node_get_boolean
-json_node_get_double
-json_node_get_int
-json_node_get_node_type
-json_node_get_object
-json_node_get_parent
-json_node_get_string
-json_node_get_type
-json_node_get_value
-json_node_get_value_type
-json_node_init
-json_node_init_array
-json_node_init_boolean
-json_node_init_double
-json_node_init_int
-json_node_init_null
-json_node_init_object
-json_node_init_string
-json_node_is_null
-json_node_new
-json_node_set_array
-json_node_set_boolean
-json_node_set_double
-json_node_set_int
-json_node_set_object
-json_node_set_parent
-json_node_set_string
-json_node_set_value
-json_node_take_array
-json_node_take_object
-json_node_type_get_type
-json_node_type_name
-json_object_add_member
-json_object_dup_member
-json_object_foreach_member
-json_object_get_array_member
-json_object_get_boolean_member
-json_object_get_double_member
-json_object_get_int_member
-json_object_get_member
-json_object_get_members
-json_object_get_null_member
-json_object_get_object_member
-json_object_get_size
-json_object_get_string_member
-json_object_get_type
-json_object_get_values
-json_object_has_member
-json_object_new
-json_object_ref
-json_object_remove_member
-json_object_set_array_member
-json_object_set_boolean_member
-json_object_set_double_member
-json_object_set_int_member
-json_object_set_member
-json_object_set_null_member
-json_object_set_object_member
-json_object_set_string_member
-json_object_unref
-json_parser_error_get_type
-json_parser_error_quark
-json_parser_get_current_line
-json_parser_get_current_pos
-json_parser_get_root
-json_parser_get_type
-json_parser_has_assignment
-json_parser_load_from_data
-json_parser_load_from_file
-json_parser_load_from_stream
-json_parser_load_from_stream_async
-json_parser_load_from_stream_finish
-json_parser_new
-json_path_compile
-json_path_error_get_type
-json_path_error_quark
-json_path_get_type
-json_path_match
-json_path_new
-json_path_query
-json_reader_count_elements
-json_reader_count_members
-json_reader_end_element
-json_reader_end_member
-json_reader_error_get_type
-json_reader_error_quark
-json_reader_get_boolean_value
-json_reader_get_double_value
-json_reader_get_error
-json_reader_get_int_value
-json_reader_get_member_name
-json_reader_get_null_value
-json_reader_get_string_value
-json_reader_get_type
-json_reader_get_value
-json_reader_is_array
-json_reader_is_object
-json_reader_is_value
-json_reader_list_members
-json_reader_new
-json_reader_read_element
-json_reader_read_member
-json_reader_set_root
-json_serializable_default_deserialize_property
-json_serializable_default_serialize_property
-json_serializable_deserialize_property
-json_serializable_find_property
-json_serializable_get_property
-json_serializable_get_type
-json_serializable_list_properties
-json_serializable_serialize_property
-json_serializable_set_property
-json_serialize_gobject
-json_serialize_pspec
index b2c86d6..34a43c8 100644 (file)
@@ -21,8 +21,8 @@
  * SECTION:json-gobject
  * @short_description: Serialize and deserialize GObjects
  *
- * JSON-GLib provides API for serializing and deserializing #GObject<!-- -->s
- * to and from JSON data streams.
+ * JSON-GLib provides API for serializing and deserializing #GObject
+ * instances to and from JSON data streams.
  *
  * Simple #GObject classes can be (de)serialized into JSON objects, if the
  * properties have compatible types with the native JSON types (integers,
@@ -32,9 +32,7 @@
  * and its virtual functions.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 #include <stdlib.h>
@@ -534,11 +532,7 @@ json_deserialize_pspec (GValue     *value,
         case G_TYPE_CHAR:
          if (G_VALUE_HOLDS (&node_value, G_TYPE_INT64))
            {
-#if GLIB_CHECK_VERSION (2, 31, 0)
              g_value_set_schar (value, (gchar) g_value_get_int64 (&node_value));
-#else
-              g_value_set_char (value, (gchar) g_value_get_int64 (&node_value));
-#endif
              retval = TRUE;
            }
           break;
@@ -559,6 +553,30 @@ json_deserialize_pspec (GValue     *value,
            }
           break;
 
+        case G_TYPE_LONG:
+         if (G_VALUE_HOLDS (&node_value, G_TYPE_INT64))
+           {
+             g_value_set_long (value, (glong) g_value_get_int64 (&node_value));
+             retval = TRUE;
+           }
+          break;
+
+        case G_TYPE_ULONG:
+         if (G_VALUE_HOLDS (&node_value, G_TYPE_INT64))
+           {
+             g_value_set_ulong (value, (gulong) g_value_get_int64 (&node_value));
+             retval = TRUE;
+           }
+          break;
+
+        case G_TYPE_UINT64:
+         if (G_VALUE_HOLDS (&node_value, G_TYPE_INT64))
+           {
+             g_value_set_uint64 (value, (guint64) g_value_get_int64 (&node_value));
+             retval = TRUE;
+           }
+          break;
+
         case G_TYPE_DOUBLE:
 
          if (G_VALUE_HOLDS (&node_value, G_TYPE_DOUBLE))
@@ -701,17 +719,17 @@ json_serialize_pspec (const GValue *real_value,
       retval = json_node_init_int (json_node_alloc (), g_value_get_ulong (real_value));
       break;
 
+    case G_TYPE_UINT64:
+      retval = json_node_init_int (json_node_alloc (), g_value_get_uint64 (real_value));
+      break;
+
     case G_TYPE_FLOAT:
       retval = json_node_init_double (json_node_alloc (), g_value_get_float (real_value));
       break;
 
     case G_TYPE_CHAR:
       retval = json_node_alloc ();
-#if GLIB_CHECK_VERSION (2, 31, 0)
       json_node_init_int (retval, g_value_get_schar (real_value));
-#else
-      json_node_init_int (retval, g_value_get_char (real_value));
-#endif
       break;
 
     case G_TYPE_UCHAR:
@@ -821,7 +839,7 @@ json_gobject_deserialize (GType     gtype,
  * map to a property of the #GObject
  *
  * Return value: (transfer full): the newly created #JsonNode
- *   of type %JSON_NODE_OBJECT. Use json_node_free() to free
+ *   of type %JSON_NODE_OBJECT. Use json_node_unref() to free
  *   the resources allocated by this function
  *
  * Since: 0.10
@@ -994,7 +1012,7 @@ json_gobject_to_data (GObject *gobject,
   data = json_generator_to_data (gen, length);
   g_object_unref (gen);
 
-  json_node_free (root);
+  json_node_unref (root);
 
   return data;
 }
index c19c457..17aa2db 100644 (file)
@@ -25,7 +25,6 @@
 #define __JSON_GOBJECT_H__
 
 #include <json-glib/json-types.h>
-#include <glib-object.h>
 
 G_BEGIN_DECLS
 
@@ -50,7 +49,7 @@ typedef struct _JsonSerializableIface   JsonSerializableIface;
  * @set_property: virtual function for setting a property
  * @get_property: virtual function for getting a property
  *
- * Interface that allows serializing and deserializing #GObject<!-- -->s
+ * Interface that allows serializing and deserializing #GObject instances
  * with properties storing complex data types. The json_serialize_gobject()
  * function will check if the passed #GObject implements this interface,
  * so it can also be used to override the default property serialization
@@ -84,33 +83,42 @@ struct _JsonSerializableIface
                                         GValue           *value);
 };
 
-GType     json_serializable_get_type (void) G_GNUC_CONST;
+JSON_AVAILABLE_IN_1_0
+GType json_serializable_get_type (void) G_GNUC_CONST;
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *json_serializable_serialize_property           (JsonSerializable *serializable,
                                                           const gchar      *property_name,
                                                           const GValue     *value,
                                                           GParamSpec       *pspec);
+JSON_AVAILABLE_IN_1_0
 gboolean  json_serializable_deserialize_property         (JsonSerializable *serializable,
                                                           const gchar      *property_name,
                                                           GValue           *value,
                                                           GParamSpec       *pspec,
                                                           JsonNode         *property_node);
 
+JSON_AVAILABLE_IN_1_0
 GParamSpec *    json_serializable_find_property         (JsonSerializable *serializable,
                                                          const char       *name);
+JSON_AVAILABLE_IN_1_0
 GParamSpec **   json_serializable_list_properties       (JsonSerializable *serializable,
                                                          guint            *n_pspecs);
+JSON_AVAILABLE_IN_1_0
 void            json_serializable_set_property          (JsonSerializable *serializable,
                                                          GParamSpec       *pspec,
                                                          const GValue     *value);
+JSON_AVAILABLE_IN_1_0
 void            json_serializable_get_property          (JsonSerializable *serializable,
                                                          GParamSpec       *pspec,
                                                          GValue           *value);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *json_serializable_default_serialize_property   (JsonSerializable *serializable,
                                                           const gchar      *property_name,
                                                           const GValue     *value,
                                                           GParamSpec       *pspec);
+JSON_AVAILABLE_IN_1_0
 gboolean  json_serializable_default_deserialize_property (JsonSerializable *serializable,
                                                           const gchar      *property_name,
                                                           GValue           *value,
@@ -141,38 +149,48 @@ typedef JsonNode *(* JsonBoxedSerializeFunc) (gconstpointer boxed);
  */
 typedef gpointer (* JsonBoxedDeserializeFunc) (JsonNode *node);
 
+JSON_AVAILABLE_IN_1_0
 void      json_boxed_register_serialize_func   (GType                    gboxed_type,
                                                 JsonNodeType             node_type,
                                                 JsonBoxedSerializeFunc   serialize_func);
+JSON_AVAILABLE_IN_1_0
 void      json_boxed_register_deserialize_func (GType                    gboxed_type,
                                                 JsonNodeType             node_type,
                                                 JsonBoxedDeserializeFunc deserialize_func);
+JSON_AVAILABLE_IN_1_0
 gboolean  json_boxed_can_serialize             (GType                    gboxed_type,
                                                 JsonNodeType            *node_type);
+JSON_AVAILABLE_IN_1_0
 gboolean  json_boxed_can_deserialize           (GType                    gboxed_type,
                                                 JsonNodeType             node_type);
+JSON_AVAILABLE_IN_1_0
 JsonNode *json_boxed_serialize                 (GType                    gboxed_type,
                                                 gconstpointer            boxed);
+JSON_AVAILABLE_IN_1_0
 gpointer  json_boxed_deserialize               (GType                    gboxed_type,
                                                 JsonNode                *node);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *json_gobject_serialize               (GObject                 *gobject);
+JSON_AVAILABLE_IN_1_0
 GObject * json_gobject_deserialize             (GType                    gtype,
                                                 JsonNode                *node);
 
+JSON_AVAILABLE_IN_1_0
 GObject * json_gobject_from_data               (GType                    gtype,
                                                 const gchar             *data,
                                                 gssize                   length,
                                                 GError                 **error);
+JSON_AVAILABLE_IN_1_0
 gchar *   json_gobject_to_data                 (GObject                 *gobject,
                                                 gsize                   *length);
 
-JSON_DEPRECATED_FOR(json_gobject_from_data)
+JSON_DEPRECATED_IN_1_0_FOR(json_gobject_from_data)
 GObject * json_construct_gobject               (GType                    gtype,
                                                 const gchar             *data,
                                                 gsize                    length,
                                                 GError                 **error);
-JSON_DEPRECATED_FOR(json_gobject_to_data)
+JSON_DEPRECATED_IN_1_0_FOR(json_gobject_to_data)
 gchar *   json_serialize_gobject               (GObject                 *gobject,
                                                 gsize                   *length) G_GNUC_MALLOC;
 
index 932914a..6d55fb8 100644 (file)
@@ -17,9 +17,7 @@
  *   Eduardo Lima Mitev  <elima@igalia.com>
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #include <glib/gi18n-lib.h>
 
+#include <gio/gio.h>
+
 #include "json-gvariant.h"
 
+#include "json-generator.h"
+#include "json-parser.h"
+
 /**
  * SECTION:json-gvariant
  * @short_description: Serialize and deserialize GVariant types
  * JSON, a #GVariant type string (signature) should be provided to these
  * methods in order to obtain a correct, type-contrained result.
  * If no signature is provided, conversion can still be done, but the
- * resulting #GVariant value will be "guessed" from the JSON data types,
- * according to the following table:
+ * resulting #GVariant value will be "guessed" from the JSON data types
+ * using the following rules:
+ *
+ * ## Strings
+ * JSON strings map to GVariant `(s)`.
+ *
+ * ## Integers
+ * JSON integers map to GVariant int64 `(x)`.
+ *
+ * ## Booleans
+ * JSON booleans map to GVariant boolean `(b)`.
+ *
+ * ## Numbers
+ * JSON numbers map to GVariant double `(d)`.
+ *
+ * ## Arrays
+ * JSON arrays map to GVariant arrays of variants `(av)`.
  *
- * <table frame='all'><title>Default JSON to GVariant conversion (without signature constrains)</title>
- *  <tgroup cols='2' align='left' colsep='1' rowsep='1'>
- *   <thead>
- *     <row>
- *       <entry>JSON</entry>
- *       <entry>GVariant</entry>
- *     </row>
- *   </thead>
- *   <tfoot>
- *    <row>
- *     <entry>string</entry>
- *     <entry>string (s)</entry>
- *    </row>
- *    <row>
- *     <entry>int64</entry>
- *     <entry>int64 (x)</entry>
- *    </row>
- *    <row>
- *     <entry>boolean</entry>
- *     <entry>boolean (b)</entry>
- *    </row>
- *    <row>
- *     <entry>double</entry>
- *     <entry>double (d)</entry>
- *    </row>
- *    <row>
- *     <entry>array</entry>
- *     <entry>array of variants (av)</entry>
- *    </row>
- *    <row>
- *     <entry>object</entry>
- *     <entry>dictionary of string-variant (a{sv})</entry>
- *    </row>
- *    <row>
- *     <entry>null</entry>
- *     <entry>maybe variant (mv)</entry>
- *    </row>
- *   </tfoot>
- *  </tgroup>
- * </table>
+ * ## Objects
+ * JSON objects map to GVariant dictionaries of string to variants `(a{sv})`.
+ *
+ * ## Null values
+ * JSON null values map to GVariant maybe variants `(mv)`.
  */
 
 /* custom extension to the GVariantClass enumeration to differentiate
@@ -457,7 +440,7 @@ json_gvariant_serialize_data (GVariant *variant, gsize *length)
 
   g_object_unref (generator);
 
-  json_node_free (json_node);
+  json_node_unref (json_node);
 
   return json;
 }
@@ -1138,6 +1121,30 @@ json_to_gvariant_recurse (JsonNode      *json_node,
       goto out;
     }
 
+  if (JSON_NODE_TYPE (json_node) == JSON_NODE_VALUE &&
+      json_node_get_value_type (json_node) == G_TYPE_STRING)
+    {
+      const gchar* str = json_node_get_string (json_node);
+      switch (class)
+        {
+        case G_VARIANT_CLASS_BOOLEAN:
+        case G_VARIANT_CLASS_BYTE:
+        case G_VARIANT_CLASS_INT16:
+        case G_VARIANT_CLASS_UINT16:
+        case G_VARIANT_CLASS_INT32:
+        case G_VARIANT_CLASS_UINT32:
+        case G_VARIANT_CLASS_INT64:
+        case G_VARIANT_CLASS_UINT64:
+        case G_VARIANT_CLASS_HANDLE:
+        case G_VARIANT_CLASS_DOUBLE:
+        case G_VARIANT_CLASS_STRING:
+          variant = gvariant_simple_from_string (str, class, error);
+          goto out;
+        default:
+          break;
+        }
+    }
+
   switch (class)
     {
     case G_VARIANT_CLASS_BOOLEAN:
@@ -1186,7 +1193,11 @@ json_to_gvariant_recurse (JsonNode      *json_node,
       break;
 
     case G_VARIANT_CLASS_DOUBLE:
-      if (json_node_assert_type (json_node, JSON_NODE_VALUE, G_TYPE_DOUBLE, error))
+      /* Doubles can look like ints to the json parser: when they don't have a dot */
+      if (JSON_NODE_TYPE (json_node) == JSON_NODE_VALUE &&
+          json_node_get_value_type (json_node) == G_TYPE_INT64)
+        variant = g_variant_new_double (json_node_get_int (json_node));
+      else if (json_node_assert_type (json_node, JSON_NODE_VALUE, G_TYPE_DOUBLE, error))
         variant = g_variant_new_double (json_node_get_double (json_node));
       break;
 
index 6644b21..38cfc94 100644 (file)
 #ifndef __JSON_GVARIANT_H__
 #define __JSON_GVARIANT_H__
 
-#include <glib.h>
-#include <json-glib/json-glib.h>
+#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
+#error "Only <json-glib/json-glib.h> can be included directly."
+#endif
+
+#include <json-glib/json-types.h>
 
 G_BEGIN_DECLS
 
+JSON_AVAILABLE_IN_1_0
 JsonNode * json_gvariant_serialize        (GVariant *variant);
+JSON_AVAILABLE_IN_1_0
 gchar *    json_gvariant_serialize_data   (GVariant *variant,
                                            gsize    *length);
 
+JSON_AVAILABLE_IN_1_0
 GVariant * json_gvariant_deserialize      (JsonNode     *json_node,
                                            const gchar  *signature,
                                            GError      **error);
+JSON_AVAILABLE_IN_1_0
 GVariant * json_gvariant_deserialize_data (const gchar  *json,
                                            gssize        length,
                                            const gchar  *signature,
index 36a73c8..7555384 100644 (file)
 
 /* VOID:BOXED,STRING (./json-marshal.list:3) */
 void
-_json_marshal_VOID__BOXED_STRING (GClosure     *closure,
-                                  GValue       *return_value G_GNUC_UNUSED,
-                                  guint         n_param_values,
-                                  const GValue *param_values,
-                                  gpointer      invocation_hint G_GNUC_UNUSED,
-                                  gpointer      marshal_data)
+json_marshal_VOID__BOXED_STRING (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
 {
   typedef void (*GMarshalFunc_VOID__BOXED_STRING) (gpointer     data1,
                                                    gpointer     arg_1,
                                                    gpointer     arg_2,
                                                    gpointer     data2);
-  register GMarshalFunc_VOID__BOXED_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
+  GMarshalFunc_VOID__BOXED_STRING callback;
+  GCClosure *cc = (GCClosure*) closure;
+  gpointer data1, data2;
 
   g_return_if_fail (n_param_values == 3);
 
@@ -93,20 +93,20 @@ _json_marshal_VOID__BOXED_STRING (GClosure     *closure,
 
 /* VOID:BOXED,INT (./json-marshal.list:4) */
 void
-_json_marshal_VOID__BOXED_INT (GClosure     *closure,
-                               GValue       *return_value G_GNUC_UNUSED,
-                               guint         n_param_values,
-                               const GValue *param_values,
-                               gpointer      invocation_hint G_GNUC_UNUSED,
-                               gpointer      marshal_data)
+json_marshal_VOID__BOXED_INT (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
 {
   typedef void (*GMarshalFunc_VOID__BOXED_INT) (gpointer     data1,
                                                 gpointer     arg_1,
                                                 gint         arg_2,
                                                 gpointer     data2);
-  register GMarshalFunc_VOID__BOXED_INT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
+  GMarshalFunc_VOID__BOXED_INT callback;
+  GCClosure *cc = (GCClosure*) closure;
+  gpointer data1, data2;
 
   g_return_if_fail (n_param_values == 3);
 
index f4f7658..6d9c224 100644 (file)
@@ -1,37 +1,37 @@
 
-#ifndef ___json_marshal_MARSHAL_H__
-#define ___json_marshal_MARSHAL_H__
+#ifndef __json_marshal_MARSHAL_H__
+#define __json_marshal_MARSHAL_H__
 
 #include       <glib-object.h>
 
 G_BEGIN_DECLS
 
 /* VOID:VOID (./json-marshal.list:1) */
-#define _json_marshal_VOID__VOID       g_cclosure_marshal_VOID__VOID
+#define json_marshal_VOID__VOID        g_cclosure_marshal_VOID__VOID
 
 /* VOID:BOXED (./json-marshal.list:2) */
-#define _json_marshal_VOID__BOXED      g_cclosure_marshal_VOID__BOXED
+#define json_marshal_VOID__BOXED       g_cclosure_marshal_VOID__BOXED
 
 /* VOID:BOXED,STRING (./json-marshal.list:3) */
-extern void _json_marshal_VOID__BOXED_STRING (GClosure     *closure,
-                                              GValue       *return_value,
-                                              guint         n_param_values,
-                                              const GValue *param_values,
-                                              gpointer      invocation_hint,
-                                              gpointer      marshal_data);
+extern void json_marshal_VOID__BOXED_STRING (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
 
 /* VOID:BOXED,INT (./json-marshal.list:4) */
-extern void _json_marshal_VOID__BOXED_INT (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data);
+extern void json_marshal_VOID__BOXED_INT (GClosure     *closure,
+                                          GValue       *return_value,
+                                          guint         n_param_values,
+                                          const GValue *param_values,
+                                          gpointer      invocation_hint,
+                                          gpointer      marshal_data);
 
 /* VOID:POINTER (./json-marshal.list:5) */
-#define _json_marshal_VOID__POINTER    g_cclosure_marshal_VOID__POINTER
+#define json_marshal_VOID__POINTER     g_cclosure_marshal_VOID__POINTER
 
 G_END_DECLS
 
-#endif /* ___json_marshal_MARSHAL_H__ */
+#endif /* __json_marshal_MARSHAL_H__ */
 
index 88a814e..1b7f0c0 100644 (file)
@@ -3,6 +3,7 @@
  * This file is part of JSON-GLib
  * Copyright (C) 2007  OpenedHand Ltd.
  * Copyright (C) 2009  Intel Corp.
+ * Copyright (C) 2015  Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * Author:
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
+ *   Philip Withnall  <philip.withnall@collabora.co.uk>
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <glib.h>
 
+#include "json-types.h"
 #include "json-types-private.h"
+#include "json-debug.h"
 
 /**
  * SECTION:json-node
  * #JsonObject or the #JsonArray using json_node_get_object() or
  * json_node_get_array() respectively, and then retrieve the nodes
  * they contain.
+ *
+ * A #JsonNode may be marked as immutable using json_node_seal(). This marks the
+ * node and all its descendents as read-only, and means that subsequent calls to
+ * setter functions (such as json_node_set_array()) on them will abort as a
+ * programmer error. By marking a node tree as immutable, it may be referenced
+ * in multiple places and its hash value cached for fast lookups, without the
+ * possibility of a value deep within the tree changing and affecting hash
+ * values. Immutable #JsonNodes may be passed to functions which retain a
+ * reference to them without needing to take a copy.
+ *
+ * #JsonNode supports two types of memory management: alloc/free semantics, and
+ * ref/unref semantics. The two may be mixed to a limited extent: nodes may be
+ * allocated (which gives them a reference count of 1), referenced zero or more
+ * times, unreferenced exactly that number of times (using json_node_unref()),
+ * then either unreferenced exactly once more or freed (using json_node_free())
+ * to destroy them. json_node_free() must not be used when a node might have a
+ * reference count not equal to 1. To this end, json-glib uses json_node_copy()
+ * and json_node_unref() internally.
  */
 
-G_DEFINE_BOXED_TYPE (JsonNode, json_node, json_node_copy, json_node_free);
+G_DEFINE_BOXED_TYPE (JsonNode, json_node, json_node_copy, json_node_unref);
 
 /**
  * json_node_get_value_type:
@@ -89,7 +109,7 @@ json_node_get_value_type (JsonNode *node)
 }
 
 /**
- * json_node_alloc:
+ * json_node_alloc: (constructor)
  *
  * Allocates a new #JsonNode. Use json_node_init() and its variants
  * to initialize the returned value.
@@ -102,12 +122,20 @@ json_node_get_value_type (JsonNode *node)
 JsonNode *
 json_node_alloc (void)
 {
-  return g_slice_new0 (JsonNode);
+  JsonNode *node = NULL;
+
+  node = g_slice_new0 (JsonNode);
+  node->ref_count = 1;
+  node->allocated = TRUE;
+
+  return node;
 }
 
 static void
 json_node_unset (JsonNode *node)
 {
+  /* Note: Don't use JSON_NODE_IS_VALID here because this may legitimately be
+   * called with (node->ref_count == 0) from json_node_unref(). */
   g_assert (node != NULL);
 
   switch (node->type)
@@ -152,6 +180,7 @@ json_node_init (JsonNode *node,
 {
   g_return_val_if_fail (type >= JSON_NODE_OBJECT &&
                         type <= JSON_NODE_NULL, NULL);
+  g_return_val_if_fail (node->ref_count == 1, NULL);
 
   json_node_unset (node);
 
@@ -342,7 +371,7 @@ json_node_init_null (JsonNode *node)
 }
 
 /**
- * json_node_new:
+ * json_node_new: (constructor)
  * @type: a #JsonNodeType
  *
  * Creates a new #JsonNode of @type.
@@ -350,11 +379,11 @@ json_node_init_null (JsonNode *node)
  * This is a convenience function for json_node_alloc() and json_node_init(),
  * and it's the equivalent of:
  *
- * |[
*   return json_node_init (json_node_alloc (), type);
+ * |[<!-- language="C" -->
    json_node_init (json_node_alloc (), type);
  * ]|
  *
- * Return value: the newly created #JsonNode
+ * Return value: (transfer full): the newly created #JsonNode
  */
 JsonNode *
 json_node_new (JsonNodeType type)
@@ -369,8 +398,12 @@ json_node_new (JsonNodeType type)
  * json_node_copy:
  * @node: a #JsonNode
  *
- * Copies @node. If the node contains complex data types then the reference
- * count of the objects is increased.
+ * Copies @node. If the node contains complex data types, their reference
+ * counts are increased, regardless of whether the node is mutable or
+ * immutable.
+ *
+ * The copy will be immutable if, and only if, @node is immutable. However,
+ * there should be no need to copy an immutable node.
  *
  * Return value: (transfer full): the copied #JsonNode
  */
@@ -379,10 +412,20 @@ json_node_copy (JsonNode *node)
 {
   JsonNode *copy;
 
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
 
-  copy = g_slice_new0 (JsonNode);
+  copy = json_node_alloc ();
   copy->type = node->type;
+  copy->immutable = node->immutable;
+
+#ifdef JSON_ENABLE_DEBUG
+  if (node->immutable)
+    {
+      JSON_NOTE (NODE, "Copying immutable JsonNode %p of type %s",
+                 node,
+                 json_node_type_name (node));
+    }
+#endif
 
   switch (copy->type)
     {
@@ -410,18 +453,64 @@ json_node_copy (JsonNode *node)
 }
 
 /**
+ * json_node_ref:
+ * @node: a #JsonNode
+ *
+ * Increment the reference count of @node.
+ *
+ * Since: 1.2
+ * Returns: (transfer full): a pointer to @node
+ */
+JsonNode *
+json_node_ref (JsonNode *node)
+{
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
+
+  g_atomic_int_inc (&node->ref_count);
+
+  return node;
+}
+
+/**
+ * json_node_unref:
+ * @node: (transfer full): a #JsonNode
+ *
+ * Decrement the reference count of @node. If it reaches zero, the node is
+ * freed.
+ *
+ * Since: 1.2
+ */
+void
+json_node_unref (JsonNode *node)
+{
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
+
+  if (g_atomic_int_dec_and_test (&node->ref_count))
+    {
+      json_node_unset (node);
+      if (node->allocated)
+        g_slice_free (JsonNode, node);
+    }
+}
+
+/**
  * json_node_set_object:
  * @node: a #JsonNode initialized to %JSON_NODE_OBJECT
- * @object: a #JsonObject
+ * @object: (nullable): a #JsonObject
  *
  * Sets @objects inside @node. The reference count of @object is increased.
+ *
+ * If @object is %NULL, the node’s existing object is cleared.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_object (JsonNode   *node,
                       JsonObject *object)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_OBJECT);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.object != NULL)
     json_object_unref (node->data.object);
@@ -438,13 +527,16 @@ json_node_set_object (JsonNode   *node,
  * @object: (transfer full): a #JsonObject
  *
  * Sets @object inside @node. The reference count of @object is not increased.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_take_object (JsonNode   *node,
                        JsonObject *object)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_OBJECT);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.object)
     {
@@ -467,7 +559,7 @@ json_node_take_object (JsonNode   *node,
 JsonObject *
 json_node_get_object (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
   g_return_val_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_OBJECT, NULL);
 
   return node->data.object;
@@ -485,7 +577,7 @@ json_node_get_object (JsonNode *node)
 JsonObject *
 json_node_dup_object (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
   g_return_val_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_OBJECT, NULL);
 
   if (node->data.object)
@@ -499,14 +591,17 @@ json_node_dup_object (JsonNode *node)
  * @node: a #JsonNode initialized to %JSON_NODE_ARRAY
  * @array: a #JsonArray
  *
- * Sets @array inside @node and increases the #JsonArray reference count
+ * Sets @array inside @node and increases the #JsonArray reference count.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_array (JsonNode  *node,
                      JsonArray *array)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_ARRAY);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.array)
     json_array_unref (node->data.array);
@@ -523,13 +618,16 @@ json_node_set_array (JsonNode  *node,
  * @array: (transfer full): a #JsonArray
  *
  * Sets @array into @node without increasing the #JsonArray reference count.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_take_array (JsonNode  *node,
                       JsonArray *array)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_ARRAY);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.array)
     {
@@ -552,7 +650,7 @@ json_node_take_array (JsonNode  *node,
 JsonArray *
 json_node_get_array (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
   g_return_val_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_ARRAY, NULL);
 
   return node->data.array;
@@ -571,7 +669,7 @@ json_node_get_array (JsonNode *node)
 JsonArray *
 json_node_dup_array (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
   g_return_val_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_ARRAY, NULL);
 
   if (node->data.array)
@@ -592,7 +690,7 @@ void
 json_node_get_value (JsonNode *node,
                      GValue   *value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
 
   if (node->data.value)
@@ -627,15 +725,18 @@ json_node_get_value (JsonNode *node,
  * @node: a #JsonNode initialized to %JSON_NODE_VALUE
  * @value: the #GValue to set
  *
- * Sets @value inside @node. The passed #GValue is copied into the #JsonNode
+ * Sets @value inside @node. The passed #GValue is copied into the #JsonNode.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_value (JsonNode     *node,
                      const GValue *value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
   g_return_if_fail (G_VALUE_TYPE (value) != G_TYPE_INVALID);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.value == NULL)
     node->data.value = json_value_alloc ();
@@ -673,7 +774,7 @@ json_node_set_value (JsonNode     *node,
       break;
 
     default:
-      g_warning ("Invalid value of type '%s'",
+      g_message ("Invalid value of type '%s'",
                  g_type_name (G_VALUE_TYPE (value)));
       return;
     }
@@ -689,14 +790,82 @@ json_node_set_value (JsonNode     *node,
 void
 json_node_free (JsonNode *node)
 {
+  g_return_if_fail (node == NULL || JSON_NODE_IS_VALID (node));
+  g_return_if_fail (node == NULL || node->allocated);
+
   if (G_LIKELY (node))
     {
+      if (node->ref_count > 1)
+        g_warning ("Freeing a JsonNode %p owned by other code.", node);
+
       json_node_unset (node);
       g_slice_free (JsonNode, node);
     }
 }
 
 /**
+ * json_node_seal:
+ * @node: a #JsonNode
+ *
+ * Seals the #JsonNode, making it immutable to further changes. In order to be
+ * sealed, the @node must have a type and value set. The value will be
+ * recursively sealed — if the node holds an object, that #JsonObject will be
+ * sealed, etc.
+ *
+ * If the @node is already immutable, this is a no-op.
+ *
+ * Since: 1.2
+ */
+void
+json_node_seal (JsonNode *node)
+{
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
+
+  if (node->immutable)
+    return;
+
+  switch (node->type)
+    {
+    case JSON_NODE_OBJECT:
+      g_return_if_fail (node->data.object != NULL);
+      json_object_seal (node->data.object);
+      break;
+    case JSON_NODE_ARRAY:
+      g_return_if_fail (node->data.array != NULL);
+      json_array_seal (node->data.array);
+      break;
+    case JSON_NODE_NULL:
+      break;
+    case JSON_NODE_VALUE:
+      g_return_if_fail (node->data.value != NULL);
+      json_value_seal (node->data.value);
+      break;
+    default:
+      g_assert_not_reached ();
+    }
+
+  node->immutable = TRUE;
+}
+
+/**
+ * json_node_is_immutable:
+ * @node: a #JsonNode
+ *
+ * Check whether the given @node has been marked as immutable by calling
+ * json_node_seal() on it.
+ *
+ * Since: 1.2
+ * Returns: %TRUE if the @node is immutable
+ */
+gboolean
+json_node_is_immutable (JsonNode *node)
+{
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), FALSE);
+
+  return node->immutable;
+}
+
+/**
  * json_node_type_name:
  * @node: a #JsonNode
  *
@@ -755,7 +924,10 @@ json_node_type_get_name (JsonNodeType node_type)
  * @node: a #JsonNode
  * @parent: (transfer none): the parent #JsonNode of @node
  *
- * Sets the parent #JsonNode of @node
+ * Sets the parent #JsonNode of @node.
+ *
+ * It is an error to call this with an immutable @parent. @node may be
+ * immutable.
  *
  * Since: 0.8
  */
@@ -763,7 +935,9 @@ void
 json_node_set_parent (JsonNode *node,
                       JsonNode *parent)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
+  g_return_if_fail (parent == NULL ||
+                    !json_node_is_immutable (parent));
 
   node->parent = parent;
 }
@@ -780,7 +954,7 @@ json_node_set_parent (JsonNode *node,
 JsonNode *
 json_node_get_parent (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
 
   return node->parent;
 }
@@ -792,13 +966,16 @@ json_node_get_parent (JsonNode *node)
  *
  * Sets @value as the string content of the @node, replacing any existing
  * content.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_string (JsonNode    *node,
                       const gchar *value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.value == NULL)
     node->data.value = json_value_init (json_value_alloc (), JSON_VALUE_STRING);
@@ -819,7 +996,7 @@ json_node_set_string (JsonNode    *node,
 const gchar *
 json_node_get_string (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
 
   if (JSON_NODE_TYPE (node) == JSON_NODE_NULL)
     return NULL;
@@ -842,7 +1019,7 @@ json_node_get_string (JsonNode *node)
 gchar *
 json_node_dup_string (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), NULL);
 
   return g_strdup (json_node_get_string (node));
 }
@@ -854,13 +1031,16 @@ json_node_dup_string (JsonNode *node)
  *
  * Sets @value as the integer content of the @node, replacing any existing
  * content.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_int (JsonNode *node,
                    gint64    value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.value == NULL)
     node->data.value = json_value_init (json_value_alloc (), JSON_VALUE_INT);
@@ -881,7 +1061,7 @@ json_node_set_int (JsonNode *node,
 gint64
 json_node_get_int (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, 0);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), 0);
 
   if (JSON_NODE_TYPE (node) == JSON_NODE_NULL)
     return 0;
@@ -905,13 +1085,16 @@ json_node_get_int (JsonNode *node)
  *
  * Sets @value as the double content of the @node, replacing any existing
  * content.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_double (JsonNode *node,
                       gdouble   value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.value == NULL)
     node->data.value = json_value_init (json_value_alloc (), JSON_VALUE_DOUBLE);
@@ -932,7 +1115,7 @@ json_node_set_double (JsonNode *node,
 gdouble
 json_node_get_double (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, 0.0);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), 0.0);
 
   if (JSON_NODE_TYPE (node) == JSON_NODE_NULL)
     return 0;
@@ -956,13 +1139,16 @@ json_node_get_double (JsonNode *node)
  *
  * Sets @value as the boolean content of the @node, replacing any existing
  * content.
+ *
+ * It is an error to call this on an immutable node.
  */
 void
 json_node_set_boolean (JsonNode *node,
                        gboolean  value)
 {
-  g_return_if_fail (node != NULL);
+  g_return_if_fail (JSON_NODE_IS_VALID (node));
   g_return_if_fail (JSON_NODE_TYPE (node) == JSON_NODE_VALUE);
+  g_return_if_fail (!node->immutable);
 
   if (node->data.value == NULL)
     node->data.value = json_value_init (json_value_alloc (), JSON_VALUE_BOOLEAN);
@@ -983,7 +1169,7 @@ json_node_set_boolean (JsonNode *node,
 gboolean
 json_node_get_boolean (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, FALSE);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), FALSE);
 
   if (JSON_NODE_TYPE (node) == JSON_NODE_NULL)
     return FALSE;
@@ -1013,7 +1199,7 @@ json_node_get_boolean (JsonNode *node)
 JsonNodeType
 json_node_get_node_type (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, JSON_NODE_NULL);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), JSON_NODE_NULL);
 
   return node->type;
 }
@@ -1022,9 +1208,10 @@ json_node_get_node_type (JsonNode *node)
  * json_node_is_null:
  * @node: a #JsonNode
  *
- * Checks whether @node is a %JSON_NODE_NULL
+ * Checks whether @node is a %JSON_NODE_NULL.
  *
- * <note>A null node is not the same as a %NULL #JsonNode</note>
+ * A %JSON_NODE_NULL node is not the same as a %NULL #JsonNode; a
+ * %JSON_NODE_NULL represents a 'null' value in the JSON tree.
  *
  * Return value: %TRUE if the node is null
  *
@@ -1033,7 +1220,251 @@ json_node_get_node_type (JsonNode *node)
 gboolean
 json_node_is_null (JsonNode *node)
 {
-  g_return_val_if_fail (node != NULL, TRUE);
+  g_return_val_if_fail (JSON_NODE_IS_VALID (node), TRUE);
 
   return node->type == JSON_NODE_NULL;
 }
+
+/**
+ * json_type_is_a:
+ * @sub: sub-type
+ * @super: super-type
+ *
+ * Check whether @sub is a sub-type of, or equal to, @super. The only sub-type
+ * relationship in the JSON Schema type system is that
+ * %WBL_PRIMITIVE_TYPE_INTEGER is a sub-type of %WBL_PRIMITIVE_TYPE_NUMBER.
+ *
+ * Formally, this function calculates: `@sub <: @super`.
+ *
+ * Reference: http://json-schema.org/latest/json-schema-core.html#rfc.section.3.5
+ *
+ * Returns: %TRUE if @sub is a sub-type of, or equal to, @super; %FALSE
+ *    otherwise
+ * Since: 1.2
+ */
+static gboolean
+json_type_is_a (JsonNode  *sub,
+                JsonNode  *super)
+{
+  if (super->type == JSON_NODE_VALUE && sub->type == JSON_NODE_VALUE)
+    {
+      JsonValueType super_value_type, sub_value_type;
+
+      if (super->data.value == NULL || sub->data.value == NULL)
+        return FALSE;
+
+      super_value_type = super->data.value->type;
+      sub_value_type = sub->data.value->type;
+
+      return (super_value_type == sub_value_type ||
+              (super_value_type == JSON_VALUE_DOUBLE &&
+              sub_value_type == JSON_VALUE_INT));
+    }
+
+  return (super->type == sub->type);
+}
+
+/**
+ * json_string_hash:
+ * @key: (type utf8): a JSON string to hash
+ *
+ * Calculate a hash value for the given @key (a UTF-8 JSON string).
+ *
+ * Note: Member names are compared byte-wise, without applying any Unicode
+ * decomposition or normalisation. This is not explicitly mentioned in the JSON
+ * standard (ECMA-404), but is assumed.
+ *
+ * Returns: hash value for @key
+ * Since: 1.2
+ */
+guint
+json_string_hash (gconstpointer key)
+{
+  return g_str_hash (key);
+}
+
+/**
+ * json_string_equal:
+ * @a: (type utf8): a JSON string
+ * @b: (type utf8): another JSON string
+ *
+ * Check whether @a and @b are equal UTF-8 JSON strings.
+ *
+ * Returns: %TRUE if @a and @b are equal; %FALSE otherwise
+ * Since: 1.2
+ */
+gboolean
+json_string_equal (gconstpointer  a,
+                   gconstpointer  b)
+{
+  return g_str_equal (a, b);
+}
+
+/**
+ * json_string_compare:
+ * @a: (type utf8): a JSON string
+ * @b: (type utf8): another JSON string
+ *
+ * Check whether @a and @b are equal UTF-8 JSON strings and return an ordering
+ * over them in strcmp() style.
+ *
+ * Returns: an integer less than zero if @a < @b, equal to zero if @a == @b, and
+ *    greater than zero if @a > @b
+ * Since: 1.2
+ */
+gint
+json_string_compare (gconstpointer  a,
+                     gconstpointer  b)
+{
+  return g_strcmp0 (a, b);
+}
+
+/**
+ * json_node_hash:
+ * @key: (type JsonNode): a JSON node to hash
+ *
+ * Calculate a hash value for the given @key (a #JsonNode).
+ *
+ * The hash is calculated over the node and its value, recursively. If the node
+ * is immutable, this is a fast operation; otherwise, it scales proportionally
+ * with the size of the node’s value (for example, with the number of members
+ * in the #JsonObject if this node contains an object).
+ *
+ * Returns: hash value for @key
+ * Since: 1.2
+ */
+guint
+json_node_hash (gconstpointer key)
+{
+  JsonNode *node;  /* unowned */
+
+  /* These are all randomly generated and arbitrary. */
+  const guint value_hash = 0xc19e75ad;
+  const guint array_hash = 0x865acfc2;
+  const guint object_hash = 0x3c8f3135;
+
+  node = (JsonNode *) key;
+
+  /* XOR the hash values with a (constant) random number depending on the node’s
+   * type so that empty values, arrays and objects do not all collide at the
+   * hash value 0. */
+  switch (node->type)
+    {
+    case JSON_NODE_NULL:
+      return 0;
+    case JSON_NODE_VALUE:
+      return value_hash ^ json_value_hash (node->data.value);
+    case JSON_NODE_ARRAY:
+      return array_hash ^ json_array_hash (json_node_get_array (node));
+    case JSON_NODE_OBJECT:
+      return object_hash ^ json_object_hash (json_node_get_object (node));
+    default:
+      g_assert_not_reached ();
+    }
+}
+
+/**
+ * json_node_equal:
+ * @a: (type JsonNode): a JSON node
+ * @b: (type JsonNode): another JSON node
+ *
+ * Check whether @a and @b are equal #JsonNodes, meaning they have the same
+ * type and same values (checked recursively). Note that integer values are
+ * compared numerically, ignoring type, so a double value 4.0 is equal to the
+ * integer value 4.
+ *
+ * Returns: %TRUE if @a and @b are equal; %FALSE otherwise
+ * Since: 1.2
+ */
+gboolean
+json_node_equal (gconstpointer  a,
+                 gconstpointer  b)
+{
+  JsonNode *node_a, *node_b;  /* unowned */
+
+  node_a = (JsonNode *) a;
+  node_b = (JsonNode *) b;
+
+  /* Identity comparison. */
+  if (node_a == node_b)
+    return TRUE;
+
+  /* Eliminate mismatched types rapidly. */
+  if (!json_type_is_a (node_a, node_b) &&
+      !json_type_is_a (node_b, node_a))
+    {
+      return FALSE;
+    }
+
+  switch (node_a->type)
+    {
+    case JSON_NODE_NULL:
+      /* Types match already. */
+      return TRUE;
+    case JSON_NODE_ARRAY:
+      return json_array_equal (json_node_get_array (node_a),
+                               json_node_get_array (node_b));
+    case JSON_NODE_OBJECT:
+      return json_object_equal (json_node_get_object (node_a),
+                                json_node_get_object (node_b));
+    case JSON_NODE_VALUE:
+      /* Handled below. */
+      break;
+    default:
+      g_assert_not_reached ();
+    }
+
+  /* Handle values. */
+  switch (node_a->data.value->type)
+    {
+    case JSON_VALUE_NULL:
+      /* Types already match. */
+      return TRUE;
+    case JSON_VALUE_BOOLEAN:
+      return (json_node_get_boolean (node_a) == json_node_get_boolean (node_b));
+    case JSON_VALUE_STRING:
+      return json_string_equal (json_node_get_string (node_a),
+                                json_node_get_string (node_b));
+    case JSON_VALUE_DOUBLE:
+    case JSON_VALUE_INT: {
+      gdouble val_a, val_b;
+      JsonValueType value_type_a, value_type_b;
+
+      value_type_a = node_a->data.value->type;
+      value_type_b = node_b->data.value->type;
+
+      /* Integer comparison doesn’t need to involve doubles… */
+      if (value_type_a == JSON_VALUE_INT &&
+          value_type_b == JSON_VALUE_INT)
+        {
+          return (json_node_get_int (node_a) ==
+                  json_node_get_int (node_b));
+        }
+
+      /* …but everything else does. We can use bitwise double equality here,
+       * since we’re not doing any calculations which could introduce floating
+       * point error. We expect that the doubles in the JSON nodes come directly
+       * from strtod() or similar, so should be bitwise equal for equal string
+       * representations.
+       *
+       * Interesting background reading:
+       * http://randomascii.wordpress.com/2012/06/26/\
+       *   doubles-are-not-floats-so-dont-compare-them/
+       */
+      if (value_type_a == JSON_VALUE_INT)
+        val_a = json_node_get_int (node_a);
+      else
+        val_a = json_node_get_double (node_a);
+
+      if (value_type_b == JSON_VALUE_INT)
+        val_b = json_node_get_int (node_b);
+      else
+        val_b = json_node_get_double (node_b);
+
+      return (val_a == val_b);
+    }
+    case JSON_VALUE_INVALID:
+    default:
+      g_assert_not_reached ();
+    }
+}
index e7a7e29..4d89cd6 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
-
 #include <glib.h>
 
 #include "json-types-private.h"
  * SECTION:json-object
  * @short_description: a JSON object representation
  *
- * #JsonObject is the representation of the object type inside JSON. It contains
- * #JsonNode<!-- -->s, which may contain fundamental types, arrays or other
- * objects. Each member of an object is accessed using its name.
+ * #JsonObject is the representation of the object type inside JSON. It
+ * contains #JsonNodes, which may contain fundamental types, arrays or other
+ * objects; each node inside an object, or "member", is accessed using a
+ * unique string, or "name".
  *
  * Since objects can be expensive, they are reference counted. You can control
  * the lifetime of a #JsonObject using json_object_ref() and json_object_unref().
 G_DEFINE_BOXED_TYPE (JsonObject, json_object, json_object_ref, json_object_unref);
 
 /**
- * json_object_new:
+ * json_object_new: (constructor)
  * 
  * Creates a new #JsonObject, an JSON object type representation.
  *
- * Return value: the newly created #JsonObject
+ * Return value: (transfer full): the newly created #JsonObject
  */
 JsonObject *
 json_object_new (void)
 {
   JsonObject *object;
 
-  object = g_slice_new (JsonObject);
+  object = g_slice_new0 (JsonObject);
   
   object->ref_count = 1;
   object->members = g_hash_table_new_full (g_str_hash, g_str_equal,
                                            g_free,
-                                           (GDestroyNotify) json_node_free);
+                                           (GDestroyNotify) json_node_unref);
   object->members_ordered = NULL;
 
   return object;
@@ -80,7 +78,7 @@ json_object_new (void)
  *
  * Increase by one the reference count of a #JsonObject.
  *
- * Return value: the passed #JsonObject, with the reference count
+ * Return value: (transfer none): the passed #JsonObject, with the reference count
  *   increased by one.
  */
 JsonObject *
@@ -89,7 +87,7 @@ json_object_ref (JsonObject *object)
   g_return_val_if_fail (object != NULL, NULL);
   g_return_val_if_fail (object->ref_count > 0, NULL);
 
-  g_atomic_int_add (&object->ref_count, 1);
+  object->ref_count++;
 
   return object;
 }
@@ -108,7 +106,7 @@ json_object_unref (JsonObject *object)
   g_return_if_fail (object != NULL);
   g_return_if_fail (object->ref_count > 0);
 
-  if (g_atomic_int_dec_and_test (&object->ref_count))
+  if (--object->ref_count == 0)
     {
       g_list_free (object->members_ordered);
       g_hash_table_destroy (object->members);
@@ -119,6 +117,58 @@ json_object_unref (JsonObject *object)
     }
 }
 
+/**
+ * json_object_seal:
+ * @object: a #JsonObject
+ *
+ * Seals the #JsonObject, making it immutable to further changes. This will
+ * recursively seal all members of the object too.
+ *
+ * If the @object is already immutable, this is a no-op.
+ *
+ * Since: 1.2
+ */
+void
+json_object_seal (JsonObject *object)
+{
+  JsonObjectIter iter;
+  JsonNode *node;
+
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (object->ref_count > 0);
+
+  if (object->immutable)
+    return;
+
+  /* Propagate to all members. */
+  json_object_iter_init (&iter, object);
+
+  while (json_object_iter_next (&iter, NULL, &node))
+    json_node_seal (node);
+
+  object->immutable_hash = json_object_hash (object);
+  object->immutable = TRUE;
+}
+
+/**
+ * json_object_is_immutable:
+ * @object: a #JsonObject
+ *
+ * Check whether the given @object has been marked as immutable by calling
+ * json_object_seal() on it.
+ *
+ * Since: 1.2
+ * Returns: %TRUE if the @object is immutable
+ */
+gboolean
+json_object_is_immutable (JsonObject *object)
+{
+  g_return_val_if_fail (object != NULL, FALSE);
+  g_return_val_if_fail (object->ref_count > 0, FALSE);
+
+  return object->immutable;
+}
+
 static inline void
 object_set_member_internal (JsonObject  *object,
                             const gchar *member_name,
@@ -449,7 +499,7 @@ json_object_get_members (JsonObject *object)
  * Retrieves all the values of the members of a #JsonObject.
  *
  * Return value: (element-type JsonNode) (transfer container): a #GList of
- *   #JsonNode<!-- -->s. The content of the list is owned by the #JsonObject
+ *   #JsonNodes. The content of the list is owned by the #JsonObject
  *   and should never be modified or freed. When you have finished using the
  *   returned list, use g_list_free() to free the resources it has allocated.
  */
@@ -476,7 +526,7 @@ json_object_get_values (JsonObject *object)
  * inside a #JsonObject
  *
  * Return value: (transfer full): a copy of the node for the requested
- *   object member or %NULL. Use json_node_free() when done.
+ *   object member or %NULL. Use json_node_unref() when done.
  *
  * Since: 0.6
  */
@@ -724,11 +774,13 @@ json_object_get_array_member (JsonObject  *object,
  * @member_name: the name of the member
  *
  * Convenience function that retrieves the object
- * stored in @member_name of @object
+ * stored in @member_name of @object. It is an error to specify a @member_name
+ * which does not exist.
  *
  * See also: json_object_get_member()
  *
- * Return value: (transfer none): the object inside the object's member
+ * Return value: (transfer none) (nullable): the object inside the object’s
+ *    member, or %NULL if the value for the member is `null`
  *
  * Since: 0.8
  */
@@ -851,3 +903,170 @@ json_object_foreach_member (JsonObject        *object,
       func (object, member_name, member_node, data);
     }
 }
+
+/**
+ * json_object_hash:
+ * @key: (type JsonObject): a JSON object to hash
+ *
+ * Calculate a hash value for the given @key (a #JsonObject).
+ *
+ * The hash is calculated over the object and all its members, recursively. If
+ * the object is immutable, this is a fast operation; otherwise, it scales
+ * proportionally with the number of members in the object.
+ *
+ * Returns: hash value for @key
+ * Since: 1.2
+ */
+guint
+json_object_hash (gconstpointer key)
+{
+  JsonObject *object = (JsonObject *) key;
+  guint hash = 0;
+  JsonObjectIter iter;
+  const gchar *member_name;
+  JsonNode *node;
+
+  g_return_val_if_fail (object != NULL, 0);
+
+  /* If the object is immutable, use the cached hash. */
+  if (object->immutable)
+    return object->immutable_hash;
+
+  /* Otherwise, calculate from scratch. */
+  json_object_iter_init (&iter, object);
+
+  while (json_object_iter_next (&iter, &member_name, &node))
+    hash ^= (json_string_hash (member_name) ^ json_node_hash (node));
+
+  return hash;
+}
+
+/**
+ * json_object_equal:
+ * @a: (type JsonObject): a JSON object
+ * @b: (type JsonObject): another JSON object
+ *
+ * Check whether @a and @b are equal #JsonObjects, meaning they have the same
+ * set of members, and the values of corresponding members are equal.
+ *
+ * Returns: %TRUE if @a and @b are equal; %FALSE otherwise
+ * Since: 1.2
+ */
+gboolean
+json_object_equal (gconstpointer  a,
+                   gconstpointer  b)
+{
+  JsonObject *object_a, *object_b;
+  guint size_a, size_b;
+  JsonObjectIter iter_a;
+  JsonNode *child_a, *child_b;  /* unowned */
+  const gchar *member_name;
+
+  object_a = (JsonObject *) a;
+  object_b = (JsonObject *) b;
+
+  /* Identity comparison. */
+  if (object_a == object_b)
+    return TRUE;
+
+  /* Check sizes. */
+  size_a = json_object_get_size (object_a);
+  size_b = json_object_get_size (object_b);
+
+  if (size_a != size_b)
+    return FALSE;
+
+  /* Check member names and values. Check the member names first
+   * to avoid expensive recursive value comparisons which might
+   * be unnecessary. */
+  json_object_iter_init (&iter_a, object_a);
+
+  while (json_object_iter_next (&iter_a, &member_name, NULL))
+    {
+      if (!json_object_has_member (object_b, member_name))
+        return FALSE;
+    }
+
+  json_object_iter_init (&iter_a, object_a);
+
+  while (json_object_iter_next (&iter_a, &member_name, &child_a))
+    {
+      child_b = json_object_get_member (object_b, member_name);
+
+      if (!json_node_equal (child_a, child_b))
+        return FALSE;
+    }
+
+  return TRUE;
+}
+
+/**
+ * json_object_iter_init:
+ * @iter: an uninitialised #JsonObjectIter
+ * @object: the #JsonObject to iterate over
+ *
+ * Initialise the @iter and associate it with @object.
+ *
+ * |[<!-- language="C" -->
+ * JsonObjectIter iter;
+ * const gchar *member_name;
+ * JsonNode *member_node;
+ *
+ * json_object_iter_init (&iter, some_object);
+ * while (json_object_iter_next (&iter, &member_name, &member_node))
+ *   {
+ *     // Do something with @member_name and @member_node.
+ *   }
+ * ]|
+ *
+ * Since: 1.2
+ */
+void
+json_object_iter_init (JsonObjectIter  *iter,
+                       JsonObject      *object)
+{
+  JsonObjectIterReal *iter_real = (JsonObjectIterReal *) iter;;
+
+  g_return_if_fail (iter != NULL);
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (object->ref_count > 0);
+
+  iter_real->object = object;
+  g_hash_table_iter_init (&iter_real->members_iter, object->members);
+}
+
+/**
+ * json_object_iter_next:
+ * @iter: a #JsonObjectIter
+ * @member_name: (out callee-allocates) (transfer none) (optional): return
+ *    location for the member name, or %NULL to ignore
+ * @member_node: (out callee-allocates) (transfer none) (optional): return
+ *    location for the member value, or %NULL to ignore
+ *
+ * Advance @iter and retrieve the next member in the object. If the end of the
+ * object is reached, %FALSE is returned and @member_name and @member_node are
+ * set to invalid values. After that point, the @iter is invalid.
+ *
+ * The order in which members are returned by the iterator is undefined. The
+ * iterator is invalidated if its #JsonObject is modified during iteration.
+ *
+ * Returns: %TRUE if @member_name and @member_node are valid; %FALSE if the end
+ *    of the object has been reached
+ *
+ * Since: 1.2
+ */
+gboolean
+json_object_iter_next (JsonObjectIter  *iter,
+                       const gchar    **member_name,
+                       JsonNode       **member_node)
+{
+  JsonObjectIterReal *iter_real = (JsonObjectIterReal *) iter;
+
+  g_return_val_if_fail (iter != NULL, FALSE);
+  g_return_val_if_fail (iter_real->object != NULL, FALSE);
+  g_return_val_if_fail (iter_real->object->ref_count > 0, FALSE);
+
+  return g_hash_table_iter_next (&iter_real->members_iter,
+                                 (gpointer *) member_name,
+                                 (gpointer *) member_node);
+}
index f9722bd..10ce3d8 100644 (file)
@@ -4,6 +4,7 @@
  *
  * Copyright © 2007, 2008, 2009 OpenedHand Ltd
  * Copyright © 2009, 2010 Intel Corp.
+ * Copyright © 2015 Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,7 @@
  *
  * Author:
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
+ *   Philip Withnall  <philip.withnall@collabora.co.uk>
  */
 
 /**
@@ -30,9 +32,7 @@
  * inside a file or inside a static buffer.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 
 #include "json-parser.h"
 #include "json-scanner.h"
 
-GQuark
-json_parser_error_quark (void)
-{
-  return g_quark_from_static_string ("json-parser-error");
-}
-
-#define JSON_PARSER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), JSON_TYPE_PARSER, JsonParserPrivate))
-
 struct _JsonParserPrivate
 {
   JsonNode *root;
@@ -68,6 +60,7 @@ struct _JsonParserPrivate
 
   guint has_assignment : 1;
   guint is_filename    : 1;
+  guint is_immutable   : 1;
 };
 
 static const gchar symbol_names[] =
@@ -106,7 +99,17 @@ enum
 
 static guint parser_signals[LAST_SIGNAL] = { 0, };
 
-G_DEFINE_TYPE (JsonParser, json_parser, G_TYPE_OBJECT);
+enum
+{
+  PROP_IMMUTABLE = 1,
+  PROP_LAST
+};
+
+static GParamSpec *parser_props[PROP_LAST] = { NULL, };
+
+G_DEFINE_QUARK (json-parser-error-quark, json_parser_error)
+
+G_DEFINE_TYPE_WITH_PRIVATE (JsonParser, json_parser, G_TYPE_OBJECT)
 
 static guint json_parse_array  (JsonParser   *parser,
                                 JsonScanner  *scanner,
@@ -131,7 +134,7 @@ json_parser_clear (JsonParser *parser)
 
   if (priv->root)
     {
-      json_node_free (priv->root);
+      json_node_unref (priv->root);
       priv->root = NULL;
     }
 }
@@ -156,16 +159,73 @@ json_parser_finalize (GObject *gobject)
 }
 
 static void
+json_parser_set_property (GObject      *gobject,
+                          guint         prop_id,
+                          const GValue *value,
+                          GParamSpec   *pspec)
+{
+  JsonParserPrivate *priv = JSON_PARSER (gobject)->priv;
+
+  switch (prop_id)
+    {
+    case PROP_IMMUTABLE:
+      /* Construct-only. */
+      priv->is_immutable = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+      break;
+    }
+}
+
+static void
+json_parser_get_property (GObject    *gobject,
+                          guint       prop_id,
+                          GValue     *value,
+                          GParamSpec *pspec)
+{
+  JsonParserPrivate *priv = JSON_PARSER (gobject)->priv;
+
+  switch (prop_id)
+    {
+    case PROP_IMMUTABLE:
+      g_value_set_boolean (value, priv->is_immutable);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+      break;
+    }
+}
+
+static void
 json_parser_class_init (JsonParserClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (JsonParserPrivate));
-
+  gobject_class->set_property = json_parser_set_property;
+  gobject_class->get_property = json_parser_get_property;
   gobject_class->dispose = json_parser_dispose;
   gobject_class->finalize = json_parser_finalize;
 
   /**
+   * JsonParser:immutable:
+   *
+   * Whether the #JsonNode tree built by the #JsonParser should be immutable
+   * when created. Making the output immutable on creation avoids the expense
+   * of traversing it to make it immutable later.
+   *
+   * Since: 1.2
+   */
+  parser_props[PROP_IMMUTABLE] =
+    g_param_spec_boolean ("immutable",
+                          "Immutable Output",
+                          "Whether the parser output is immutable.",
+                          FALSE,
+                          G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, parser_props);
+
+  /**
    * JsonParser::parse-start:
    * @parser: the #JsonParser that received the signal
    * 
@@ -178,7 +238,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, parse_start),
                   NULL, NULL,
-                  _json_marshal_VOID__VOID,
+                  json_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
   /**
    * JsonParser::parse-end:
@@ -193,7 +253,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, parse_end),
                   NULL, NULL,
-                  _json_marshal_VOID__VOID,
+                  json_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
   /**
    * JsonParser::object-start:
@@ -208,7 +268,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, object_start),
                   NULL, NULL,
-                  _json_marshal_VOID__VOID,
+                  json_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
   /**
    * JsonParser::object-member:
@@ -226,7 +286,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, object_member),
                   NULL, NULL,
-                  _json_marshal_VOID__BOXED_STRING,
+                  json_marshal_VOID__BOXED_STRING,
                   G_TYPE_NONE, 2,
                   JSON_TYPE_OBJECT,
                   G_TYPE_STRING);
@@ -244,7 +304,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, object_end),
                   NULL, NULL,
-                  _json_marshal_VOID__BOXED,
+                  json_marshal_VOID__BOXED,
                   G_TYPE_NONE, 1,
                   JSON_TYPE_OBJECT);
   /**
@@ -260,7 +320,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, array_start),
                   NULL, NULL,
-                  _json_marshal_VOID__VOID,
+                  json_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
   /**
    * JsonParser::array-element:
@@ -278,7 +338,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, array_element),
                   NULL, NULL,
-                  _json_marshal_VOID__BOXED_INT,
+                  json_marshal_VOID__BOXED_INT,
                   G_TYPE_NONE, 2,
                   JSON_TYPE_ARRAY,
                   G_TYPE_INT);
@@ -296,7 +356,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, array_end),
                   NULL, NULL,
-                  _json_marshal_VOID__BOXED,
+                  json_marshal_VOID__BOXED,
                   G_TYPE_NONE, 1,
                   JSON_TYPE_ARRAY);
   /**
@@ -313,7 +373,7 @@ json_parser_class_init (JsonParserClass *klass)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (JsonParserClass, error),
                   NULL, NULL,
-                  _json_marshal_VOID__POINTER,
+                  json_marshal_VOID__POINTER,
                   G_TYPE_NONE, 1,
                   G_TYPE_POINTER);
 }
@@ -321,9 +381,9 @@ json_parser_class_init (JsonParserClass *klass)
 static void
 json_parser_init (JsonParser *parser)
 {
-  JsonParserPrivate *priv;
+  JsonParserPrivate *priv = json_parser_get_instance_private (parser);
 
-  parser->priv = priv = JSON_PARSER_GET_PRIVATE (parser);
+  parser->priv = priv;
 
   priv->root = NULL;
   priv->current_node = NULL;
@@ -434,6 +494,9 @@ json_parse_value (JsonParser   *parser,
       break;
     }
 
+  if (priv->is_immutable && *node != NULL)
+    json_node_seal (*node);
+
   return G_TOKEN_NONE;
 }
 
@@ -490,7 +553,7 @@ json_parse_array (JsonParser   *parser,
         {
           /* the json_parse_* functions will have set the error code */
           json_array_unref (array);
-          json_node_free (priv->current_node);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return token;
@@ -498,40 +561,60 @@ json_parse_array (JsonParser   *parser,
 
       next_token = json_scanner_peek_next_token (scanner);
 
+      /* look for missing commas */
+      if (next_token != G_TOKEN_COMMA && next_token != G_TOKEN_RIGHT_BRACE)
+        {
+          priv->error_code = JSON_PARSER_ERROR_MISSING_COMMA;
+
+          json_array_unref (array);
+          json_node_free (priv->current_node);
+          json_node_free (element);
+          priv->current_node = old_current;
+
+          return G_TOKEN_COMMA;
+        }
+
+      /* look for trailing commas */
       if (next_token == G_TOKEN_COMMA)
         {
           token = json_scanner_get_next_token (scanner);
           next_token = json_scanner_peek_next_token (scanner);
 
-          /* look for trailing commas */
           if (next_token == G_TOKEN_RIGHT_BRACE)
             {
               priv->error_code = JSON_PARSER_ERROR_TRAILING_COMMA;
 
               json_array_unref (array);
-              json_node_free (priv->current_node);
-              json_node_free (element);
+              json_node_unref (priv->current_node);
+              json_node_unref (element);
               priv->current_node = old_current;
 
               return G_TOKEN_RIGHT_BRACE;
             }
         }
 
-      JSON_NOTE (PARSER, "Array element %d completed", idx + 1);
+      JSON_NOTE (PARSER, "Array element %d completed", idx);
       json_node_set_parent (element, priv->current_node);
+      if (priv->is_immutable)
+        json_node_seal (element);
       json_array_add_element (array, element);
 
       g_signal_emit (parser, parser_signals[ARRAY_ELEMENT], 0,
                      array,
                      idx);
 
+      idx += 1;
       token = next_token;
     }
 
 array_done:
   json_scanner_get_next_token (scanner);
 
+  json_array_seal (array);
+
   json_node_take_array (priv->current_node, array);
+  if (priv->is_immutable)
+    json_node_seal (priv->current_node);
   json_node_set_parent (priv->current_node, old_current);
 
   g_signal_emit (parser, parser_signals[ARRAY_END], 0, array);
@@ -584,7 +667,7 @@ json_parse_object (JsonParser   *parser,
           priv->error_code = JSON_PARSER_ERROR_INVALID_BAREWORD;
 
           json_object_unref (object);
-          json_node_free (priv->current_node);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return G_TOKEN_STRING;
@@ -600,7 +683,7 @@ json_parse_object (JsonParser   *parser,
           priv->error_code = JSON_PARSER_ERROR_EMPTY_MEMBER_NAME;
 
           json_object_unref (object);
-          json_node_free (priv->current_node);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return G_TOKEN_STRING;
@@ -618,7 +701,7 @@ json_parse_object (JsonParser   *parser,
 
           g_free (name);
           json_object_unref (object);
-          json_node_free (priv->current_node);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return ':';
@@ -654,7 +737,7 @@ json_parse_object (JsonParser   *parser,
           /* the json_parse_* functions will have set the error code */
           g_free (name);
           json_object_unref (object);
-          json_node_free (priv->current_node);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return token;
@@ -672,8 +755,8 @@ json_parse_object (JsonParser   *parser,
               priv->error_code = JSON_PARSER_ERROR_TRAILING_COMMA;
 
               json_object_unref (object);
-              json_node_free (member);
-              json_node_free (priv->current_node);
+              json_node_unref (member);
+              json_node_unref (priv->current_node);
               priv->current_node = old_current;
 
               return G_TOKEN_RIGHT_BRACE;
@@ -684,8 +767,8 @@ json_parse_object (JsonParser   *parser,
           priv->error_code = JSON_PARSER_ERROR_MISSING_COMMA;
 
           json_object_unref (object);
-          json_node_free (member);
-          json_node_free (priv->current_node);
+          json_node_unref (member);
+          json_node_unref (priv->current_node);
           priv->current_node = old_current;
 
           return G_TOKEN_COMMA;
@@ -693,6 +776,8 @@ json_parse_object (JsonParser   *parser,
 
       JSON_NOTE (PARSER, "Object member '%s' completed", name);
       json_node_set_parent (member, priv->current_node);
+      if (priv->is_immutable)
+        json_node_seal (member);
       json_object_set_member (object, name, member);
 
       g_signal_emit (parser, parser_signals[OBJECT_MEMBER], 0,
@@ -706,7 +791,11 @@ json_parse_object (JsonParser   *parser,
 
   json_scanner_get_next_token (scanner);
 
+  json_object_seal (object);
+
   json_node_take_object (priv->current_node, object);
+  if (priv->is_immutable)
+    json_node_seal (priv->current_node);
   json_node_set_parent (priv->current_node, old_current);
 
   g_signal_emit (parser, parser_signals[OBJECT_END], 0, object);
@@ -872,6 +961,21 @@ json_parser_new (void)
   return g_object_new (JSON_TYPE_PARSER, NULL);
 }
 
+/**
+ * json_parser_new_immutable:
+ *
+ * Creates a new #JsonParser instance with its #JsonParser:immutable property
+ * set to %TRUE to create immutable output trees.
+ *
+ * Since: 1.2
+ * Returns: (transfer full): a new #JsonParser
+ */
+JsonParser *
+json_parser_new_immutable (void)
+{
+  return g_object_new (JSON_TYPE_PARSER, "immutable", TRUE, NULL);
+}
+
 static gboolean
 json_parser_load (JsonParser   *parser,
                   const gchar  *data,
@@ -886,6 +990,15 @@ json_parser_load (JsonParser   *parser,
 
   json_parser_clear (parser);
 
+  if (!g_utf8_validate (data, length, NULL))
+    {
+      g_set_error_literal (error, JSON_PARSER_ERROR,
+                           JSON_PARSER_ERROR_INVALID_DATA,
+                           _("JSON data must be UTF-8 encoded"));
+      g_signal_emit (parser, parser_signals[ERROR], 0, *error);
+      return FALSE;
+    }
+
   scanner = json_scanner_create (parser);
   json_scanner_input_text (scanner, data, length);
 
@@ -1084,6 +1197,10 @@ json_parser_get_root (JsonParser *parser)
 {
   g_return_val_if_fail (JSON_IS_PARSER (parser), NULL);
 
+  /* Sanity check. */
+  g_return_val_if_fail (!parser->priv->is_immutable ||
+                        json_node_is_immutable (parser->priv->root), NULL);
+
   return parser->priv->root;
 }
 
@@ -1207,6 +1324,7 @@ json_parser_load_from_stream (JsonParser    *parser,
   gsize pos;
   gssize res;
   gboolean retval = FALSE;
+  GError *internal_error;
 
   g_return_val_if_fail (JSON_IS_PARSER (parser), FALSE);
   g_return_val_if_fail (G_IS_INPUT_STREAM (stream), FALSE);
@@ -1237,7 +1355,11 @@ json_parser_load_from_stream (JsonParser    *parser,
   /* zero-terminate the content; we allocated an extra byte for this */
   content->data[pos] = 0;
 
-  retval = json_parser_load (parser, (const gchar *) content->data, content->len, error);
+  internal_error = NULL;
+  retval = json_parser_load (parser, (const gchar *) content->data, pos, &internal_error);
+
+  if (internal_error != NULL)
+    g_propagate_error (error, internal_error);
 
 out:
   g_byte_array_free (content, TRUE);
@@ -1245,94 +1367,22 @@ out:
   return retval;
 }
 
-typedef struct _LoadStreamData
-{
-  JsonParser *parser;
-  GError *error;
-  GCancellable *cancellable;
-  GAsyncReadyCallback callback;
-  gpointer user_data;
+typedef struct {
+  GInputStream *stream;
   GByteArray *content;
   gsize pos;
-} LoadStreamData;
-
-static void
-load_stream_data_free (gpointer data)
-{
-  LoadStreamData *closure;
-
-  if (G_UNLIKELY (data == NULL))
-    return;
-
-  closure = data;
-
-  if (closure->error)
-    g_error_free (closure->error);
-
-  if (closure->cancellable)
-    g_object_unref (closure->cancellable);
-
-  if (closure->content)
-    g_byte_array_free (closure->content, TRUE);
-
-  g_object_unref (closure->parser);
-
-  g_free (closure);
-}
+} LoadData;
 
 static void
-load_stream_data_read_callback (GObject      *object,
-                                GAsyncResult *read_res,
-                                gpointer      user_data)
+load_data_free (gpointer data_)
 {
-  GInputStream *stream = G_INPUT_STREAM (object);
-  LoadStreamData *data = user_data;
-  GError *error = NULL;
-  gssize read_size;
-
-  read_size = g_input_stream_read_finish (stream, read_res, &error);
-  if (read_size < 0)
-    {
-      if (error != NULL)
-        data->error = error;
-      else
-        {
-          GSimpleAsyncResult *res;
-
-          /* EOF */
-          res = g_simple_async_result_new (G_OBJECT (data->parser),
-                                           data->callback,
-                                           data->user_data,
-                                           json_parser_load_from_stream_async);
-          g_simple_async_result_set_op_res_gpointer (res, data, load_stream_data_free);
-          g_simple_async_result_complete (res);
-          g_object_unref (res);
-        }
-    }
-  else if (read_size > 0)
+  if (data_ != NULL)
     {
-      data->pos += read_size;
+      LoadData *data = data_;
 
-      g_byte_array_set_size (data->content, data->pos + GET_DATA_BLOCK_SIZE);
-
-      g_input_stream_read_async (stream, data->content->data + data->pos,
-                                 GET_DATA_BLOCK_SIZE,
-                                 0,
-                                 data->cancellable,
-                                 load_stream_data_read_callback,
-                                 data);
-    }
-  else
-    {
-      GSimpleAsyncResult *res;
-
-      res = g_simple_async_result_new (G_OBJECT (data->parser),
-                                       data->callback,
-                                       data->user_data,
-                                       json_parser_load_from_stream_async);
-      g_simple_async_result_set_op_res_gpointer (res, data, load_stream_data_free);
-      g_simple_async_result_complete (res);
-      g_object_unref (res);
+      g_object_unref (data->stream);
+      g_byte_array_unref (data->content);
+      g_free (data);
     }
 }
 
@@ -1356,32 +1406,61 @@ json_parser_load_from_stream_finish (JsonParser    *parser,
                                      GAsyncResult  *result,
                                      GError       **error)
 {
-  GSimpleAsyncResult *simple;
-  LoadStreamData *data;
+  gboolean res;
 
   g_return_val_if_fail (JSON_IS_PARSER (parser), FALSE);
-  g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
+  g_return_val_if_fail (g_task_is_valid (result, parser), FALSE);
 
-  simple = G_SIMPLE_ASYNC_RESULT (result);
+  res = g_task_propagate_boolean (G_TASK (result), error);
+  if (res)
+    {
+      LoadData *data = g_task_get_task_data (G_TASK (result));
+      GError *internal_error = NULL;
+
+      /* We need to do this inside the finis() function because JsonParser will emit
+       * signals, and we need to ensure that the signals are emitted in the right
+       * context; it's easier to do that if we just rely on the async callback being
+       * called in the right context, even if it means making the finish() function
+       * necessary to complete the async operation.
+       */
+      res = json_parser_load (parser, (const gchar *) data->content->data, data->pos, &internal_error);
+      if (internal_error != NULL)
+        g_propagate_error (error, internal_error);
+    }
 
-  if (g_simple_async_result_propagate_error (simple, error))
-    return FALSE;
+  return res;
+}
 
-  g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == json_parser_load_from_stream_async);
+static void
+read_from_stream (GTask *task,
+                  gpointer source_obj,
+                  gpointer task_data,
+                  GCancellable *cancellable)
+{
+  LoadData *data = task_data;
+  GError *error = NULL;
+  gssize res;
 
-  data = g_simple_async_result_get_op_res_gpointer (simple);
+  data->pos = 0;
+  g_byte_array_set_size (data->content, data->pos + GET_DATA_BLOCK_SIZE + 1);
+  while ((res = g_input_stream_read (data->stream,
+                                     data->content->data + data->pos,
+                                     GET_DATA_BLOCK_SIZE,
+                                     cancellable, &error)) > 0)
+    {
+      data->pos += res;
+      g_byte_array_set_size (data->content, data->pos + GET_DATA_BLOCK_SIZE + 1);
+    }
 
-  if (data->error)
+  if (res < 0)
     {
-      g_propagate_error (error, data->error);
-      data->error = NULL;
-      return FALSE;
+      g_task_return_error (task, error);
+      return;
     }
 
-  g_byte_array_set_size (data->content, data->pos + 1);
+  /* zero-terminate the content; we allocated an extra byte for this */
   data->content->data[data->pos] = 0;
-
-  return json_parser_load (parser, (const gchar *) data->content->data, data->content->len, error);
+  g_task_return_boolean (task, TRUE);
 }
 
 /**
@@ -1410,26 +1489,21 @@ json_parser_load_from_stream_async (JsonParser          *parser,
                                     GAsyncReadyCallback  callback,
                                     gpointer             user_data)
 {
-  LoadStreamData *data;
+  LoadData *data;
+  GTask *task;
 
   g_return_if_fail (JSON_IS_PARSER (parser));
   g_return_if_fail (G_IS_INPUT_STREAM (stream));
   g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
 
-  data = g_new0 (LoadStreamData, 1);
+  data = g_new (LoadData, 1);
+  data->stream = g_object_ref (stream);
+  data->content = g_byte_array_new ();
+  data->pos = 0;
 
-  if (cancellable != NULL)
-    data->cancellable = g_object_ref (cancellable);
+  task = g_task_new (parser, cancellable, callback, user_data);
+  g_task_set_task_data (task, data, load_data_free);
 
-  data->callback = callback;
-  data->user_data = user_data;
-  data->content = g_byte_array_new ();
-  data->parser = g_object_ref (parser);
-
-  g_byte_array_set_size (data->content, data->pos + GET_DATA_BLOCK_SIZE);
-  g_input_stream_read_async (stream, data->content->data + data->pos,
-                             GET_DATA_BLOCK_SIZE, 0,
-                             data->cancellable,
-                             load_stream_data_read_callback,
-                             data);
+  g_task_run_in_thread (task, read_from_stream);
+  g_object_unref (task);
 }
index fc58b0a..c7223d2 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_PARSER_H__
+#define __JSON_PARSER_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_PARSER_H__
-#define __JSON_PARSER_H__
-
-#include <glib-object.h>
 #include <gio/gio.h>
 #include <json-glib/json-types.h>
 
@@ -55,6 +54,7 @@ typedef struct _JsonParserClass         JsonParserClass;
  * @JSON_PARSER_ERROR_MISSING_COLON: expected colon
  * @JSON_PARSER_ERROR_INVALID_BAREWORD: invalid bareword
  * @JSON_PARSER_ERROR_EMPTY_MEMBER_NAME: empty member name (Since: 0.16)
+ * @JSON_PARSER_ERROR_INVALID_DATA: invalid data (Since: 0.18)
  * @JSON_PARSER_ERROR_UNKNOWN: unknown error
  *
  * Error enumeration for #JsonParser
@@ -68,6 +68,7 @@ typedef enum {
   JSON_PARSER_ERROR_MISSING_COLON,
   JSON_PARSER_ERROR_INVALID_BAREWORD,
   JSON_PARSER_ERROR_EMPTY_MEMBER_NAME,
+  JSON_PARSER_ERROR_INVALID_DATA,
 
   JSON_PARSER_ERROR_UNKNOWN
 } JsonParserError;
@@ -139,37 +140,55 @@ struct _JsonParserClass
   void (* _json_reserved8) (void);
 };
 
+JSON_AVAILABLE_IN_1_0
 GQuark json_parser_error_quark (void);
+JSON_AVAILABLE_IN_1_0
 GType json_parser_get_type (void) G_GNUC_CONST;
 
+JSON_AVAILABLE_IN_1_0
 JsonParser *json_parser_new                     (void);
+JSON_AVAILABLE_IN_1_2
+JsonParser *json_parser_new_immutable           (void);
+JSON_AVAILABLE_IN_1_0
 gboolean    json_parser_load_from_file          (JsonParser           *parser,
                                                  const gchar          *filename,
                                                  GError              **error);
+JSON_AVAILABLE_IN_1_0
 gboolean    json_parser_load_from_data          (JsonParser           *parser,
                                                  const gchar          *data,
                                                  gssize                length,
                                                  GError              **error);
+JSON_AVAILABLE_IN_1_0
 gboolean    json_parser_load_from_stream        (JsonParser           *parser,
                                                  GInputStream         *stream,
                                                  GCancellable         *cancellable,
                                                  GError              **error);
+JSON_AVAILABLE_IN_1_0
 void        json_parser_load_from_stream_async  (JsonParser           *parser,
                                                  GInputStream         *stream,
                                                  GCancellable         *cancellable,
                                                  GAsyncReadyCallback   callback,
                                                  gpointer              user_data);
+JSON_AVAILABLE_IN_1_0
 gboolean    json_parser_load_from_stream_finish (JsonParser           *parser,
                                                  GAsyncResult         *result,
                                                  GError              **error);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *  json_parser_get_root                (JsonParser           *parser);
 
+JSON_AVAILABLE_IN_1_0
 guint       json_parser_get_current_line        (JsonParser           *parser);
+JSON_AVAILABLE_IN_1_0
 guint       json_parser_get_current_pos         (JsonParser           *parser);
+JSON_AVAILABLE_IN_1_0
 gboolean    json_parser_has_assignment          (JsonParser           *parser,
                                                  gchar               **variable_name);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonParser, g_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __JSON_PARSER_H__ */
index 4fb61bc..4604cd9 100644 (file)
  * The simple convenience function json_path_query() can be used for one-off
  * matching.
  *
- * <refsect2 id="json-path-syntax">
- *   <title>Syntax of the JSONPath expressions</title>
- *   <para>A JSONPath expression is composed by path indices and operators.
- *   Each path index can either be a member name or an element index inside
- *   a JSON tree. A JSONPath expression must start with the '$' operator; each
- *   path index is separated using either the dot notation or the bracket
- *   notation, e.g.:</para>
- *   |[
- *     /&ast; dot notation &ast;/
- *     $.store.book[0].title
- *     /&ast; bracket notation &ast;/
- *     $['store']['book'][0]['title']
- *   ]|
- *   <para>The available operators are:</para>
- *   <table frame='all' id="json-path-operators">
- *     <title>Operators</title>
- *     <tgroup cols='4'>
- *       <colspec name='operator'/>
- *       <colspec name='description'/>
- *       <colspec name='example'/>
- *       <colspec name='results'/>
- *       <thead>
- *         <row>
- *           <entry>Operator</entry>
- *           <entry>Description</entry>
- *           <entry>Example</entry>
- *           <entry>Results</entry>
- *         </row>
- *       </thead>
- *       <tbody>
- *         <row>
- *           <entry>$</entry>
- *           <entry>The root node</entry>
- *           <entry>$</entry>
- *           <entry>The whole document</entry>
- *         </row>
- *         <row>
- *           <entry>. or []</entry>
- *           <entry>The child member or element</entry>
- *           <entry>$.store.book</entry>
- *           <entry>The contents of the book member of the store object</entry>
- *         </row>
- *         <row>
- *           <entry>..</entry>
- *           <entry>Recursive descent</entry>
- *           <entry>$..author</entry>
- *           <entry>The content of the author member in every object</entry>
- *         </row>
- *         <row>
- *           <entry>*</entry>
- *           <entry>Wildcard</entry>
- *           <entry>$.store.book[*].author</entry>
- *           <entry>The content of the author member of any object of the
- *           array contained in the book member of the store object</entry>
- *         </row>
- *         <row>
- *           <entry>[]</entry>
- *           <entry>Subscript</entry>
- *           <entry>$.store.book[0]</entry>
- *           <entry>The first element of the array contained in the book
- *           member of the store object</entry>
- *         </row>
- *         <row>
- *           <entry>[,]</entry>
- *           <entry>Set</entry>
- *           <entry>$.store.book[0,1]</entry>
- *           <entry>The first two elements of the array contained in the
- *           book member of the store object</entry>
- *         </row>
- *         <row>
- *           <entry>[start:end:step]</entry>
- *           <entry>Slice</entry>
- *           <entry>$.store.book[:2]</entry>
- *           <entry>The first two elements of the array contained in the
- *           book member of the store object; the start and step are omitted
- *           and implied to be 0 and 1, respectively</entry>
- *         </row>
- *       </tbody>
- *     </tgroup>
- *   </table>
- *   <para>More information about JSONPath is available on Stefan Gössner's
- *   <ulink url="http://goessner.net/articles/JsonPath/">website</ulink>.</para>
- * </refsect2>
+ * ## Syntax of the JSONPath expressions ##
  *
- * <example id="json-path-example">
- *   <title>Example of JsonPath usage</title>
- *   <para>The following example shows some of the results of using #JsonPath
- *   on a JSON tree. We use the following JSON description of a
- *   bookstore:</para>
- * <programlisting><![CDATA[
-{ "store": {
-    "book": [
-      { "category": "reference",
-        "author": "Nigel Rees",
-        "title": "Sayings of the Century",
-        "price": "8.95"
-      },
-      { "category": "fiction",
-        "author": "Evelyn Waugh",
-        "title": "Sword of Honour",
-        "price": "12.99"
-      },
-      { "category": "fiction",
-        "author": "Herman Melville",
-        "title": "Moby Dick",
-        "isbn": "0-553-21311-3",
-        "price": "8.99"
-      },
-      { "category": "fiction",
-        "author": "J. R. R. Tolkien",
-        "title": "The Lord of the Rings",
-        "isbn": "0-395-19395-8",
-        "price": "22.99"
-      }
-    ],
-    "bicycle": {
-      "color": "red",
-      "price": "19.95"
-    }
-  }
-}
-]]></programlisting>
- *   <para>We can parse the JSON using #JsonParser:</para>
- *   <programlisting>
- * JsonParser *parser = json_parser_new ();
- * json_parser_load_from_data (parser, json_data, -1, NULL);
- *   </programlisting>
- *   <para>If we run the following code:</para>
- *   <programlisting>
- * JsonNode *result;
- * JsonPath *path = json_path_new ();
- * json_path_compile (path, "$.store..author", NULL);
- * result = json_path_match (path, json_parser_get_root (parser));
- *   </programlisting>
- *   <para>The <emphasis>result</emphasis> #JsonNode will contain an array
- *   with all values of the <emphasis>author</emphasis> member of the objects
- *   in the JSON tree. If we use a #JsonGenerator to convert the #JsonNode
- *   to a string and print it:</para>
- *   <programlisting>
- * JsonGenerator *generator = json_generator_new ();
- * char *str;
- * json_generator_set_pretty (generator, TRUE);
- * json_generator_set_root (generator, result);
- * str = json_generator_to_data (generator, NULL);
- * g_print ("Results: %s\n", str);
- *   </programlisting>
- *   <para>The output will be:</para>
- *   <programlisting><![CDATA[
-[
-  "Nigel Rees",
-  "Evelyn Waugh",
-  "Herman Melville",
-  "J. R. R. Tolkien"
-]
-]]></programlisting>
- * </example>
+ * A JSONPath expression is composed by path indices and operators.
+ * Each path index can either be a member name or an element index inside
+ * a JSON tree. A JSONPath expression must start with the '$' operator; each
+ * path index is separated using either the dot notation or the bracket
+ * notation, e.g.:
+ *
+ * |[
+ *   // dot notation
+ *   $.store.book[0].title
+ *
+ *   // bracket notation
+ *   $['store']['book'][0]['title']
+ * ]|
+ *
+ * The available operators are:
+ *
+ * * Root node
+ *   The '$' character represents the root node of the JSON tree, and
+ *   matches the entire document.
+ *
+ * * Child nodes can either be matched using '.' or '[]'. For instance,
+ *   both `$.store.book` and `$['store']['book'] match the contents of
+ *   the book member of the store object.
+ *
+ * * Child nodes can be reached without specifying the whole tree structure
+ *   through the recursive descent operator, or '..'. For instance,
+ *   `$..author` matches all author member in every object.
+ *
+ * * Child nodes can grouped through the wildcard operator, or '*'. For
+ *   instance, `$.store.book[*].author` matches all author members of any
+ *   object element contained in the book array of the store object.
+ *
+ * * Element nodes can be accessed using their index (starting from zero)
+ *   in the subscript operator '[]'. For instance, `$.store.book[0]` matches
+ *   the first element of the book array of the store object.
+ *
+ * * Subsets of element nodes can be accessed using the set notation
+ *   operator '[start,end]'. For instance, `$.store.book[0,2]` matches the
+ *   first, second, and third elements of the book array of the store
+ *   object.
+ *
+ * * Slices of element nodes can be accessed using the slice notation
+ *   operation '[start:end:step]'. If start is omitted, the starting index
+ *   of the slice is implied to be zero; if end is omitted, the ending index
+ *   of the slice is implied to be the length of the array; if step is
+ *   omitted, the step of the slice is implied to be 1. For instance,
+ *   `$.store.book[:2]` matches the first two elements of the book array
+ *   of the store object.
+ *
+ * More information about JSONPath is available on Stefan Gössner's
+ * [JSONPath website](http://goessner.net/articles/JsonPath/).
+ *
+ * ## Example of JSONPath matches
+ * The following example shows some of the results of using #JsonPath
+ * on a JSON tree. We use the following JSON description of a bookstore:
+ * |[
+ *   { "store": {
+ *       "book": [
+ *         { "category": "reference", "author": "Nigel Rees",
+ *           "title": "Sayings of the Century", "price": "8.95"  },
+ *         { "category": "fiction", "author": "Evelyn Waugh",
+ *           "title": "Sword of Honour", "price": "12.99" },
+ *         { "category": "fiction", "author": "Herman Melville",
+ *           "title": "Moby Dick", "isbn": "0-553-21311-3",
+ *           "price": "8.99" },
+ *         { "category": "fiction", "author": "J. R. R. Tolkien",
+ *           "title": "The Lord of the Rings", "isbn": "0-395-19395-8",
+ *           "price": "22.99" }
+ *       ],
+ *       "bicycle": { "color": "red", "price": "19.95" }
+ *     }
+ *   }
+ * ]|
+ *
+ * We can parse the JSON using #JsonParser:
+ *
+ * |[<!-- language="C" -->
+ *   JsonParser *parser = json_parser_new ();
+ *   json_parser_load_from_data (parser, json_data, -1, NULL);
+ * ]|
+ *
+ * If we run the following code:
+ *
+ * |[<!-- language="C" -->
+ *   JsonNode *result;
+ *   JsonPath *path = json_path_new ();
+ *   json_path_compile (path, "$.store..author", NULL);
+ *   result = json_path_match (path, json_parser_get_root (parser));
+ * ]|
+ *
+ * The result #JsonNode will contain an array with all values of the
+ * author member of the objects in the JSON tree. If we use a
+ * #JsonGenerator to convert the #JsonNode to a string and print it:
+ *
+ * |[<!-- language="C" -->
+ *   JsonGenerator *generator = json_generator_new ();
+ *   json_generator_set_root (generator, result);
+ *   char *str = json_generator_to_data (generator, NULL);
+ *   g_print ("Results: %s\n", str);
+ * ]|
+ *
+ * The output will be:
+ *
+ * |[
+ *   ["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"]
+ * ]|
  *
  * #JsonPath is available since JSON-GLib 0.14
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 
@@ -260,6 +210,8 @@ struct _PathNode
   } data;
 };
 
+G_DEFINE_QUARK (json-path-error-quark, json_path_error)
+
 G_DEFINE_TYPE (JsonPath, json_path, G_TYPE_OBJECT)
 
 static void
@@ -308,12 +260,6 @@ json_path_init (JsonPath *self)
 {
 }
 
-GQuark
-json_path_error_quark (void)
-{
-  return g_quark_from_static_string ("json-path-error");
-}
-
 /**
  * json_path_new:
  *
@@ -333,6 +279,71 @@ json_path_new (void)
   return g_object_new (JSON_TYPE_PATH, NULL);
 }
 
+#ifdef JSON_ENABLE_DEBUG
+/* used as the function for a g_list_foreach() on a list of PathNode; needs
+ * a GString as the payload to build the output string
+ */
+static void
+json_path_foreach_print (gpointer data,
+                         gpointer user_data)
+{
+  PathNode *cur_node = data;
+  GString *buf = user_data;
+
+  switch (cur_node->node_type)
+    {
+    case JSON_PATH_NODE_ROOT:
+      g_string_append (buf, "<root");
+      break;
+
+    case JSON_PATH_NODE_CHILD_MEMBER:
+      g_string_append_printf (buf, "<member '%s'", cur_node->data.member_name);
+      break;
+
+    case JSON_PATH_NODE_CHILD_ELEMENT:
+      g_string_append_printf (buf, "<element '%d'", cur_node->data.element_index);
+      break;
+
+    case JSON_PATH_NODE_RECURSIVE_DESCENT:
+      g_string_append (buf, "<recursive descent");
+      break;
+
+    case JSON_PATH_NODE_WILDCARD_MEMBER:
+      g_string_append (buf, "<wildcard member");
+      break;
+
+    case JSON_PATH_NODE_WILDCARD_ELEMENT:
+      g_string_append (buf, "<wildcard element");
+      break;
+
+    case JSON_PATH_NODE_ELEMENT_SET:
+      {
+        int i;
+
+        g_string_append (buf, "<element set ");
+        for (i = 0; i < cur_node->data.set.n_indices - 1; i++)
+          g_string_append_printf (buf, "'%d', ", cur_node->data.set.indices[i]);
+
+        g_string_append_printf (buf, "'%d'", cur_node->data.set.indices[i]);
+      }
+      break;
+
+    case JSON_PATH_NODE_ELEMENT_SLICE:
+      g_string_append_printf (buf, "<slice start '%d', end '%d', step '%d'",
+                              cur_node->data.slice.start,
+                              cur_node->data.slice.end,
+                              cur_node->data.slice.step);
+      break;
+
+    default:
+      g_string_append (buf, "<unknown node");
+      break;
+    }
+
+  g_string_append (buf, ">");
+}
+#endif /* JSON_ENABLE_DEBUG */
+
 /**
  * json_path_compile:
  * @path: a #JsonPath
@@ -356,7 +367,9 @@ json_path_compile (JsonPath    *path,
 {
   const char *p, *end_p;
   PathNode *root = NULL;
-  GList *nodes, *l;
+  GList *nodes = NULL;
+
+  g_return_val_if_fail (expression != NULL, FALSE);
 
   p = expression;
 
@@ -376,7 +389,7 @@ json_path_compile (JsonPath    *path,
                 return FALSE;
               }
 
-            if (!(*(p + 1) == '.' || *(p + 1) == '['))
+            if (!(*(p + 1) == '.' || *(p + 1) == '[' || *(p + 1) == '\0'))
               {
                 /* translators: the %c is the invalid character */
                 g_set_error (error, JSON_PATH_ERROR,
@@ -417,6 +430,14 @@ json_path_compile (JsonPath    *path,
                 while (!(*end_p == '.' || *end_p == '[' || *end_p == '\0'))
                   end_p += 1;
 
+                if (end_p == p + 1)
+                  {
+                    g_set_error_literal (error, JSON_PATH_ERROR,
+                                         JSON_PATH_ERROR_INVALID_QUERY,
+                                         _("Missing member name or wildcard after . character"));
+                    goto fail;
+                  }
+
                 node = g_new0 (PathNode, 1);
                 node->node_type = JSON_PATH_NODE_CHILD_MEMBER;
                 node->data.member_name = g_strndup (p + 1, end_p - p - 1);
@@ -627,6 +648,14 @@ json_path_compile (JsonPath    *path,
           break;
 
         default:
+          if (nodes == NULL)
+            {
+              g_set_error(error, JSON_PATH_ERROR,
+                          JSON_PATH_ERROR_INVALID_QUERY,
+                          _("Invalid first character '%c'"),
+                          *p);
+              return FALSE;
+            }
           break;
         }
 
@@ -636,77 +665,18 @@ json_path_compile (JsonPath    *path,
   nodes = g_list_reverse (nodes);
 
 #ifdef JSON_ENABLE_DEBUG
-  if (_json_get_debug_flags () & JSON_DEBUG_PATH)
+  if (JSON_HAS_DEBUG (PATH))
     {
       GString *buf = g_string_new (NULL);
 
-      for (l = nodes; l != NULL; l = l->next)
-        {
-          PathNode *cur_node = l->data;
-
-          switch (cur_node->node_type)
-            {
-            case JSON_PATH_NODE_ROOT:
-              g_string_append (buf, "<root");
-              break;
-
-            case JSON_PATH_NODE_CHILD_MEMBER:
-              g_string_append_printf (buf, "<member '%s'", cur_node->data.member_name);
-              break;
-
-            case JSON_PATH_NODE_CHILD_ELEMENT:
-              g_string_append_printf (buf, "<element '%d'", cur_node->data.element_index);
-              break;
-
-            case JSON_PATH_NODE_RECURSIVE_DESCENT:
-              g_string_append (buf, "<recursive descent");
-              break;
-
-            case JSON_PATH_NODE_WILDCARD_MEMBER:
-              g_string_append (buf, "<wildcard member");
-              break;
-
-            case JSON_PATH_NODE_WILDCARD_ELEMENT:
-              g_string_append (buf, "<wildcard element");
-              break;
-
-            case JSON_PATH_NODE_ELEMENT_SET:
-              {
-                int i;
-
-                g_string_append (buf, "<element set ");
-                for (i = 0; i < cur_node->data.set.n_indices - 1; i++)
-                  g_string_append_printf (buf, "'%d', ", cur_node->data.set.indices[i]);
-
-                g_string_append_printf (buf, "'%d'", cur_node->data.set.indices[i]);
-              }
-              break;
-
-            case JSON_PATH_NODE_ELEMENT_SLICE:
-              g_string_append_printf (buf, "<slice start '%d', end '%d', step '%d'",
-                                      cur_node->data.slice.start,
-                                      cur_node->data.slice.end,
-                                      cur_node->data.slice.step);
-              break;
-
-            default:
-              g_string_append (buf, "<unknown node");
-              break;
-            }
-
-          if (l->next != NULL)
-            g_string_append (buf, ">, ");
-          else
-            g_string_append (buf, ">");
-        }
+      g_list_foreach (nodes, json_path_foreach_print, buf);
 
       g_message ("[PATH] " G_STRLOC ": expression '%s' => '%s'", expression, buf->str);
       g_string_free (buf, TRUE);
     }
 #endif /* JSON_ENABLE_DEBUG */
 
-  if (path->nodes != NULL)
-    g_list_free_full (path->nodes, path_node_free);
+  g_list_free_full (path->nodes, path_node_free);
 
   path->nodes = nodes;
   path->is_compiled = (path->nodes != NULL);
@@ -729,7 +699,10 @@ walk_path_node (GList      *path,
   switch (node->node_type)
     {
     case JSON_PATH_NODE_ROOT:
-      walk_path_node (path->next, root, results);
+      if (path->next != NULL)
+          walk_path_node (path->next, root, results);
+      else
+          json_array_add_element (results, json_node_copy (root));
       break;
 
     case JSON_PATH_NODE_CHILD_MEMBER:
@@ -958,12 +931,12 @@ walk_path_node (GList      *path,
  * Matches the JSON tree pointed by @root using the expression compiled
  * into the #JsonPath.
  *
- * The matching #JsonNode<!-- -->s will be copied into a #JsonArray and
+ * The matching #JsonNodes will be copied into a #JsonArray and
  * returned wrapped in a #JsonNode.
  *
  * Return value: (transfer full): a newly-created #JsonNode of type
- *   %JSON_NODE_ARRAY containing an array of matching #JsonNode<!-- -->s.
- *   Use json_node_free() when done
+ *   %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
+ *   Use json_node_unref() when done
  *
  * Since: 0.14
  */
@@ -1002,8 +975,8 @@ json_path_match (JsonPath *path,
  * matches it against the JSON tree pointed by @root.
  *
  * Return value: (transfer full): a newly-created #JsonNode of type
- *   %JSON_NODE_ARRAY containing an array of matching #JsonNode<!-- -->s.
- *   Use json_node_free() when done
+ *   %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
+ *   Use json_node_unref() when done
  *
  * Since: 0.14
  */
index 2bae608..3c3ddf0 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_PATH_H__
+#define __JSON_PATH_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_PATH_H__
-#define __JSON_PATH_H__
-
 #include <json-glib/json-types.h>
 
 G_BEGIN_DECLS
@@ -59,9 +59,8 @@ typedef enum {
 /**
  * JsonPath:
  *
- * The <structname>JsonPath</structname> structure is an opaque object
- * whose members cannot be directly accessed except through the provided
- * API.
+ * The `JsonPath` structure is an opaque object whose members cannot be
+ * directly accessed except through the provided API.
  *
  * Since: 0.14
  */
@@ -70,28 +69,38 @@ typedef struct _JsonPath        JsonPath;
 /**
  * JsonPathClass:
  *
- * The <structname>JsonPathClass</structname> structure is an opaque
- * object class whose members cannot be directly accessed.
+ * The `JsonPathClass` structure is an opaque object class whose members
+ * cannot be directly accessed.
  *
  * Since: 0.14
  */
 typedef struct _JsonPathClass   JsonPathClass;
 
+JSON_AVAILABLE_IN_1_0
 GType json_path_get_type (void) G_GNUC_CONST;
+JSON_AVAILABLE_IN_1_0
 GQuark json_path_error_quark (void);
 
+JSON_AVAILABLE_IN_1_0
 JsonPath *      json_path_new           (void);
 
+JSON_AVAILABLE_IN_1_0
 gboolean        json_path_compile       (JsonPath    *path,
                                          const char  *expression,
                                          GError     **error);
+JSON_AVAILABLE_IN_1_0
 JsonNode *      json_path_match         (JsonPath    *path,
                                          JsonNode    *root);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *      json_path_query         (const char  *expression,
                                          JsonNode    *root,
                                          GError     **error);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonPath, g_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __JSON_PATH_H__ */
index 721f069..afc2414 100644 (file)
  * called, e.g.:
  *
  * |[
- * /&ast; ask for the 7th element; if the element does not exist, the
- *  &ast; reader will be put in an error state
- *  &ast;/
+ * // ask for the 7th element; if the element does not exist, the
+ * // reader will be put in an error state
  * json_reader_read_element (reader, 6);
  *
- * /&ast; in case of error, this will return NULL, otherwise it will
- *  &ast; return the value of the element
- *  &ast;/
+ * // in case of error, this will return NULL, otherwise it will
+ * // return the value of the element
  * str = json_reader_get_string_value (value);
  *
- * /&ast; this function resets the error state if any was set &ast;/
+ * // this function resets the error state if any was set
  * json_reader_end_element (reader);
  * ]|
  *
  * If you want to detect the error state as soon as possible, you can use
  * json_reader_get_error():
  *
- * |[
- * /&ast; like the example above, but in this case we print out the
- *  &ast; error immediately
- *  &ast;/
+ * |[<!-- language="C" -->
+ * // like the example above, but in this case we print out the
+ * // error immediately
  * if (!json_reader_read_element (reader, 6))
  *   {
  *     const GError *error = json_reader_get_error (reader);
  * #JsonReader is available since JSON-GLib 0.12.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 
 #include <glib/gi18n-lib.h>
 
 #include "json-reader.h"
-
 #include "json-types-private.h"
-
 #include "json-debug.h"
 
 #define json_reader_return_if_error_set(r)      G_STMT_START {  \
@@ -93,7 +86,8 @@ struct _JsonReaderPrivate
   JsonNode *current_node;
   JsonNode *previous_node;
 
-  gchar *current_member;
+  /* Stack of member names. */
+  GPtrArray *members;
 
   GError *error;
 };
@@ -109,7 +103,9 @@ enum
 
 static GParamSpec *reader_properties[PROP_LAST] = { NULL, };
 
-G_DEFINE_TYPE (JsonReader, json_reader, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (JsonReader, json_reader, G_TYPE_OBJECT)
+
+G_DEFINE_QUARK (json-reader-error-quark, json_reader_error)
 
 static void
 json_reader_finalize (GObject *gobject)
@@ -117,12 +113,13 @@ json_reader_finalize (GObject *gobject)
   JsonReaderPrivate *priv = JSON_READER (gobject)->priv;
 
   if (priv->root != NULL)
-    json_node_free (priv->root);
+    json_node_unref (priv->root);
 
   if (priv->error != NULL)
     g_clear_error (&priv->error);
 
-  g_free (priv->current_member);
+  if (priv->members != NULL)
+    g_ptr_array_unref (priv->members);
 
   G_OBJECT_CLASS (json_reader_parent_class)->finalize (gobject);
 }
@@ -168,8 +165,6 @@ json_reader_class_init (JsonReaderClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (JsonReaderPrivate));
-
   /**
    * JsonReader:root:
    *
@@ -195,14 +190,8 @@ json_reader_class_init (JsonReaderClass *klass)
 static void
 json_reader_init (JsonReader *self)
 {
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, JSON_TYPE_READER,
-                                            JsonReaderPrivate);
-}
-
-GQuark
-json_reader_error_quark (void)
-{
-  return g_quark_from_static_string ("json-reader-error");
+  self->priv = json_reader_get_instance_private (self);
+  self->priv->members = g_ptr_array_new_with_free_func (g_free);
 }
 
 /**
@@ -228,12 +217,18 @@ json_reader_new (JsonNode *node)
  * @reader: a #JsonReader
  *
  * Unsets the error state of @reader, if set
+ *
+ * Return value: TRUE if an error was set.
  */
-static inline void
+static inline gboolean
 json_reader_unset_error (JsonReader *reader)
 {
   if (reader->priv->error != NULL)
-    g_clear_error (&(reader->priv->error));
+    {
+      g_clear_error (&(reader->priv->error));
+      return TRUE;
+    }
+  return FALSE;
 }
 
 /**
@@ -263,7 +258,7 @@ json_reader_set_root (JsonReader *reader,
 
   if (priv->root != NULL)
     {
-      json_node_free (priv->root);
+      json_node_unref (priv->root);
       priv->root = NULL;
       priv->current_node = NULL;
       priv->previous_node = NULL;
@@ -332,7 +327,7 @@ json_reader_set_error (JsonReader      *reader,
 const GError *
 json_reader_get_error (JsonReader *reader)
 {
-  g_return_val_if_fail (JSON_IS_READER (reader), FALSE);
+  g_return_val_if_fail (JSON_IS_READER (reader), NULL);
 
   return reader->priv->error;
 }
@@ -438,7 +433,21 @@ json_reader_is_value (JsonReader *reader)
  *
  * If @reader is not currently on an array or an object, or if the @index_ is
  * bigger than the size of the array or the object, the #JsonReader will be
- * put in an error state until json_reader_end_element() is called.
+ * put in an error state until json_reader_end_element() is called. This means
+ * that if used conditionally, json_reader_end_element() must be called on both
+ * code paths:
+ *
+ * |[
+ * if (!json_reader_read_element (reader, 1))
+ *   {
+ *     json_reader_end_element (reader);
+ *     g_set_error (error, …);
+ *     return FALSE;
+ *   }
+ *
+ * str_value = json_reader_get_string_value (reader);
+ * json_reader_end_element (reader);
+ * ]|
  *
  * Return value: %TRUE on success, and %FALSE otherwise
  *
@@ -495,13 +504,12 @@ json_reader_read_element (JsonReader *reader,
                                         index_);
 
         priv->previous_node = priv->current_node;
-        g_free (priv->current_member);
 
         members = json_object_get_members (object);
         name = g_list_nth_data (members, index_);
 
         priv->current_node = json_object_get_member (object, name);
-        priv->current_member = g_strdup (name);
+        g_ptr_array_add (priv->members, g_strdup (name));
 
         g_list_free (members);
       }
@@ -534,7 +542,8 @@ json_reader_end_element (JsonReader *reader)
 
   g_return_if_fail (JSON_IS_READER (reader));
 
-  json_reader_unset_error (reader);
+  if (json_reader_unset_error (reader))
+    return;
 
   priv = reader->priv;
 
@@ -543,8 +552,8 @@ json_reader_end_element (JsonReader *reader)
   else
     tmp = NULL;
 
-  g_free (priv->current_member);
-  priv->current_member = NULL;
+  if (json_node_get_node_type (priv->previous_node) == JSON_NODE_OBJECT)
+    g_ptr_array_remove_index (priv->members, priv->members->len - 1);
 
   priv->current_node = priv->previous_node;
   priv->previous_node = tmp;
@@ -611,16 +620,29 @@ json_reader_count_elements (JsonReader *reader)
  * |[
  * json_reader_read_member (reader, "author");
  * author = json_reader_get_string_value (reader);
- * json_reader_end_element (reader);
+ * json_reader_end_member (reader);
  *
- * json_reader_read_element (reader, "title");
+ * json_reader_read_member (reader, "title");
  * title = json_reader_get_string_value (reader);
- * json_reader_end_element (reader);
+ * json_reader_end_member (reader);
  * ]|
  *
  * If @reader is not currently on an object, or if the @member_name is not
  * defined in the object, the #JsonReader will be put in an error state until
- * json_reader_end_member() is called.
+ * json_reader_end_member() is called. This means that if used conditionally,
+ * json_reader_end_member() must be called on both code paths:
+ *
+ * |[
+ * if (!json_reader_read_member (reader, "title"))
+ *   {
+ *     json_reader_end_member (reader);
+ *     g_set_error (error, …);
+ *     return FALSE;
+ *   }
+ *
+ * str_value = json_reader_get_string_value (reader);
+ * json_reader_end_member (reader);
+ * ]|
  *
  * Return value: %TRUE on success, and %FALSE otherwise
  *
@@ -655,11 +677,9 @@ json_reader_read_member (JsonReader  *reader,
                                     "object at the current position."),
                                   member_name);
 
-  g_free (priv->current_member);
-
   priv->previous_node = priv->current_node;
   priv->current_node = json_object_get_member (object, member_name);
-  priv->current_member = g_strdup (member_name);
+  g_ptr_array_add (priv->members, g_strdup (member_name));
 
   return TRUE;
 }
@@ -683,7 +703,8 @@ json_reader_end_member (JsonReader *reader)
 
   g_return_if_fail (JSON_IS_READER (reader));
 
-  json_reader_unset_error (reader);
+  if (json_reader_unset_error (reader))
+    return;
 
   priv = reader->priv;
 
@@ -692,8 +713,7 @@ json_reader_end_member (JsonReader *reader)
   else
     tmp = NULL;
 
-  g_free (priv->current_member);
-  priv->current_member = NULL;
+  g_ptr_array_remove_index (priv->members, priv->members->len - 1);
 
   priv->current_node = priv->previous_node;
   priv->previous_node = tmp;
@@ -1038,8 +1058,12 @@ json_reader_get_member_name (JsonReader *reader)
     {
       json_reader_set_error (reader, JSON_READER_ERROR_INVALID_NODE,
                              _("No node available at the current position"));
-      return FALSE;
+      return NULL;
     }
 
-  return reader->priv->current_member;
+  if (reader->priv->members->len == 0)
+    return NULL;
+
+  return g_ptr_array_index (reader->priv->members,
+                            reader->priv->members->len - 1);
 }
index 6ee0b54..786ed7b 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_READER_H__
+#define __JSON_READER_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_READER_H__
-#define __JSON_READER_H__
-
 #include <json-glib/json-types.h>
 
 G_BEGIN_DECLS
@@ -80,8 +80,8 @@ typedef enum {
 /**
  * JsonReader:
  *
- * The <structname>JsonReader</structname> structure contains only
- * private data and should only be accessed using the provided API
+ * The `JsonReader` structure contains only private data and should
+ * be accessed using the provided API
  *
  * Since: 0.12
  */
@@ -96,8 +96,7 @@ struct _JsonReader
 /**
  * JsonReaderClass:
  *
- * The <structname>JsonReaderClass</structname> structure contains only
- * private data
+ * The `JsonReaderClass` structure contains only private data
  *
  * Since: 0.12
  */
@@ -113,38 +112,64 @@ struct _JsonReaderClass
   void (*_json_padding4) (void);
 };
 
+JSON_AVAILABLE_IN_1_0
 GQuark json_reader_error_quark (void);
+JSON_AVAILABLE_IN_1_0
 GType json_reader_get_type (void) G_GNUC_CONST;
 
+JSON_AVAILABLE_IN_1_0
 JsonReader *           json_reader_new               (JsonNode     *node);
 
+JSON_AVAILABLE_IN_1_0
 void                   json_reader_set_root          (JsonReader   *reader,
                                                       JsonNode     *root);
 
+JSON_AVAILABLE_IN_1_0
 const GError *         json_reader_get_error         (JsonReader   *reader);
 
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_is_array          (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_read_element      (JsonReader   *reader,
                                                       guint         index_);
+JSON_AVAILABLE_IN_1_0
 void                   json_reader_end_element       (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gint                   json_reader_count_elements    (JsonReader   *reader);
 
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_is_object         (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_read_member       (JsonReader   *reader,
                                                       const gchar  *member_name);
+JSON_AVAILABLE_IN_1_0
 void                   json_reader_end_member        (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gint                   json_reader_count_members     (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gchar **               json_reader_list_members      (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 const gchar *          json_reader_get_member_name   (JsonReader   *reader);
 
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_is_value          (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 JsonNode *             json_reader_get_value         (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gint64                 json_reader_get_int_value     (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gdouble                json_reader_get_double_value  (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 const gchar *          json_reader_get_string_value  (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_get_boolean_value (JsonReader   *reader);
+JSON_AVAILABLE_IN_1_0
 gboolean               json_reader_get_null_value    (JsonReader   *reader);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonReader, g_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __JSON_READER_H__ */
index dacb418..daf9ead 100644 (file)
  * 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.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <errno.h>
 #include <stdlib.h>
@@ -579,6 +575,30 @@ json_scanner_get_unichar (JsonScanner *scanner,
   return uchar;
 }
 
+/*
+ * decode_utf16_surrogate_pair:
+ * @units: (array length=2): a pair of UTF-16 code points
+ *
+ * Decodes a surrogate pair of UTF-16 code points into the equivalent
+ * Unicode code point.
+ *
+ * Returns: the Unicode code point equivalent to the surrogate pair
+ */
+static inline gunichar
+decode_utf16_surrogate_pair (const gunichar units[2])
+{
+  gunichar ucs;
+
+  g_assert (0xd800 <= units[0] && units[0] <= 0xdbff);
+  g_assert (0xdc00 <= units[1] && units[1] <= 0xdfff);
+
+  ucs = 0x10000;
+  ucs += (units[0] & 0x3ff) << 10;
+  ucs += (units[1] & 0x3ff);
+
+  return ucs;
+}
+
 void
 json_scanner_unexp_token (JsonScanner *scanner,
                           GTokenType   expected_token,
@@ -1115,19 +1135,25 @@ json_scanner_get_token_ll (JsonScanner *scanner,
 
                               ucs = json_scanner_get_unichar (scanner, line_p, position_p);
 
+                              /* resolve UTF-16 surrogates for Unicode characters not in the BMP,
+                                * as per ECMA 404, § 9, "String"
+                                */
                               if (g_unichar_type (ucs) == G_UNICODE_SURROGATE)
                                 {
                                   /* read next surrogate */
-                                  if ('\\' == json_scanner_get_char (scanner, line_p, position_p)
-                                      && 'u' == json_scanner_get_char (scanner, line_p, position_p))
+                                  if ('\\' == json_scanner_get_char (scanner, line_p, position_p) &&
+                                      'u' == json_scanner_get_char (scanner, line_p, position_p))
                                     {
-                                      gunichar ucs_lo = json_scanner_get_unichar (scanner, line_p, position_p);
-                                      g_assert (g_unichar_type (ucs_lo) == G_UNICODE_SURROGATE);
-                                      ucs = (((ucs & 0x3ff) << 10) | (ucs_lo & 0x3ff)) + 0x10000;
+                                      gunichar units[2];
+
+                                      units[0] = ucs;
+                                      units[1] = json_scanner_get_unichar (scanner, line_p, position_p);
+
+                                      ucs = decode_utf16_surrogate_pair (units);
+                                      g_assert (g_unichar_validate (ucs));
                                     }
                                 }
 
-                              g_assert (g_unichar_validate (ucs));
                               gstring = g_string_append_unichar (gstring, ucs);
                             }
                           break;
index 25b076a..4d1f982 100644 (file)
@@ -14,9 +14,7 @@
  * 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.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
index e49ccb1..471225e 100644 (file)
@@ -27,9 +27,7 @@
  * json_serialize_gobject() respectively.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <string.h>
 #include <stdlib.h>
@@ -184,12 +182,14 @@ G_DEFINE_INTERFACE (JsonSerializable, json_serializable, G_TYPE_OBJECT);
  * @pspec: a #GParamSpec
  *
  * Calls the default implementation of the #JsonSerializable
- * serialize_property() virtual function
+ * #JsonSerializableIface.serialize_property() virtual function.
  *
  * This function can be used inside a custom implementation
- * of the serialize_property() virtual function in lieu of:
+ * of the #JsonSerializableIface.serialize_property() virtual
+ * function in lieu of calling the default implementation
+ * through g_type_default_interface_peek():
  *
- * |[
+ * |[<!-- language="C" -->
  *   JsonSerializable *iface;
  *   JsonNode *node;
  *
@@ -234,7 +234,7 @@ json_serializable_default_serialize_property (JsonSerializable *serializable,
  * This function can be used inside a custom implementation
  * of the deserialize_property() virtual function in lieu of:
  *
- * |[
+ * |[<!-- language="C" -->
  *   JsonSerializable *iface;
  *   gboolean res;
  *
@@ -273,7 +273,8 @@ json_serializable_default_deserialize_property (JsonSerializable *serializable,
  * @serializable: a #JsonSerializable
  * @name: the name of the property
  *
- * FIXME
+ * Calls the #JsonSerializableIface.find_property() implementation on
+ * the @serializable instance. *
  *
  * Return value: (transfer none): the #GParamSpec for the property
  *   or %NULL if no property was found
@@ -296,7 +297,8 @@ json_serializable_find_property (JsonSerializable *serializable,
  * @n_pspecs: (out): return location for the length of the array
  *   of #GParamSpec returned by the function
  *
- * FIXME
+ * Calls the #JsonSerializableIface.list_properties() implementation on
+ * the @serializable instance.
  *
  * Return value: (array length=n_pspecs) (transfer container): an array
  *   of #GParamSpec. Use g_free() to free the array when done.
@@ -312,6 +314,17 @@ json_serializable_list_properties (JsonSerializable *serializable,
   return JSON_SERIALIZABLE_GET_IFACE (serializable)->list_properties (serializable, n_pspecs);
 }
 
+/**
+ * json_serializable_set_property:
+ * @serializable: a #JsonSerializable
+ * @pspec: a #GParamSpec
+ * @value: the property value to set
+ *
+ * Calls the #JsonSerializableIface.set_property() implementation
+ * on the @serializable instance.
+ *
+ * Since: 0.14
+ */
 void
 json_serializable_set_property (JsonSerializable *serializable,
                                 GParamSpec       *pspec,
@@ -326,6 +339,17 @@ json_serializable_set_property (JsonSerializable *serializable,
                                                             value);
 }
 
+/**
+ * json_serializable_get_property:
+ * @serializable: a #JsonSerializable
+ * @pspec: a #GParamSpec
+ * @value: (out): return location for the property value
+ *
+ * Calls the #JsonSerializableIface.get_property() implementation
+ * on the @serializable instance.
+ *
+ * Since: 0.14
+ */
 void
 json_serializable_get_property (JsonSerializable *serializable,
                                 GParamSpec       *pspec,
index efce6a9..db5dea6 100644 (file)
 
 G_BEGIN_DECLS
 
+#define JSON_NODE_IS_VALID(n) \
+  ((n) != NULL && \
+   (n)->type >= JSON_NODE_OBJECT && \
+   (n)->type <= JSON_NODE_NULL && \
+   (n)->ref_count >= 1)
+
 typedef struct _JsonValue JsonValue;
 
 typedef enum {
@@ -44,6 +50,10 @@ struct _JsonNode
   /*< private >*/
   JsonNodeType type;
 
+  volatile gint ref_count;
+  gboolean immutable : 1;
+  gboolean allocated : 1;
+
   union {
     JsonObject *object;
     JsonArray *array;
@@ -53,8 +63,8 @@ struct _JsonNode
   JsonNode *parent;
 };
 
-#define JSON_VALUE_INIT                 { JSON_VALUE_INVALID, 1, { 0 } }
-#define JSON_VALUE_INIT_TYPE(t)         { (t), 1, { 0 } }
+#define JSON_VALUE_INIT                 { JSON_VALUE_INVALID, 1, FALSE, { 0 }, NULL }
+#define JSON_VALUE_INIT_TYPE(t)         { (t), 1, FALSE, { 0 }, NULL }
 #define JSON_VALUE_IS_VALID(v)          ((v) != NULL && (v)->type != JSON_VALUE_INVALID)
 #define JSON_VALUE_HOLDS(v,t)           ((v) != NULL && (v)->type == (t))
 #define JSON_VALUE_HOLDS_INT(v)         (JSON_VALUE_HOLDS((v), JSON_VALUE_INT))
@@ -69,6 +79,7 @@ struct _JsonValue
   JsonValueType type;
 
   volatile gint ref_count;
+  gboolean immutable : 1;
 
   union {
     gint64 v_int;
@@ -82,7 +93,9 @@ struct _JsonArray
 {
   GPtrArray *elements;
 
+  guint immutable_hash;  /* valid iff immutable */
   volatile gint ref_count;
+  gboolean immutable : 1;
 };
 
 struct _JsonObject
@@ -92,9 +105,20 @@ struct _JsonObject
   /* the members of the object, ordered in reverse */
   GList *members_ordered;
 
+  guint immutable_hash;  /* valid iff immutable */
   volatile gint ref_count;
+  gboolean immutable : 1;
 };
 
+typedef struct
+{
+  JsonObject *object;  /* unowned */
+  GHashTableIter members_iter;  /* iterator over @members */
+  gpointer padding[2];  /* for future expansion */
+} JsonObjectIterReal;
+
+G_STATIC_ASSERT (sizeof (JsonObjectIterReal) == sizeof (JsonObjectIter));
+
 G_GNUC_INTERNAL
 const gchar *   json_node_type_get_name         (JsonNodeType     node_type);
 G_GNUC_INTERNAL
@@ -137,6 +161,12 @@ void            json_value_set_string           (JsonValue       *value,
 G_GNUC_INTERNAL
 const gchar *   json_value_get_string           (const JsonValue *value);
 
+G_GNUC_INTERNAL
+void            json_value_seal                 (JsonValue       *value);
+
+G_GNUC_INTERNAL
+guint           json_value_hash                 (gconstpointer    key);
+
 G_END_DECLS
 
 #endif /* __JSON_TYPES_PRIVATE_H__ */
index 3f7ff52..22e1147 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_TYPES_H__
+#define __JSON_TYPES_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_TYPES_H__
-#define __JSON_TYPES_H__
-
 #include <glib-object.h>
+#include <json-glib/json-version-macros.h>
 
 G_BEGIN_DECLS
 
-#ifdef JSON_DISABLE_DEPRECATION_WARNINGS
-#define JSON_DEPRECATED
-#define JSON_DEPRECATED_FOR(x)
-#else
-#define JSON_DEPRECATED         G_DEPRECATED
-#define JSON_DEPRECATED_FOR(x)  G_DEPRECATED_FOR(x)
-#endif
-
 /**
  * JSON_NODE_TYPE:
  * @node: a #JsonNode
@@ -183,177 +176,348 @@ typedef void (* JsonArrayForeach) (JsonArray  *array,
 /*
  * JsonNode
  */
+
+JSON_AVAILABLE_IN_1_0
 GType                 json_node_get_type        (void) G_GNUC_CONST;
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_new             (JsonNodeType  type);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_alloc           (void);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init            (JsonNode     *node,
                                                  JsonNodeType  type);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_object     (JsonNode     *node,
                                                  JsonObject   *object);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_array      (JsonNode     *node,
                                                  JsonArray    *array);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_int        (JsonNode     *node,
                                                  gint64        value);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_double     (JsonNode     *node,
                                                  gdouble       value);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_boolean    (JsonNode     *node,
                                                  gboolean      value);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_string     (JsonNode     *node,
                                                  const char   *value);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_init_null       (JsonNode     *node);
 
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_copy            (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_free            (JsonNode     *node);
 
+JSON_AVAILABLE_IN_1_2
+JsonNode *            json_node_ref             (JsonNode     *node);
+JSON_AVAILABLE_IN_1_2
+void                  json_node_unref           (JsonNode     *node);
+
+JSON_AVAILABLE_IN_1_0
 JsonNodeType          json_node_get_node_type   (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 GType                 json_node_get_value_type  (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_parent      (JsonNode     *node,
                                                  JsonNode     *parent);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_node_get_parent      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 const gchar *         json_node_type_name       (JsonNode     *node);
 
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_object      (JsonNode     *node,
                                                  JsonObject   *object);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_take_object     (JsonNode     *node,
                                                  JsonObject   *object);
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_node_get_object      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_node_dup_object      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_array       (JsonNode     *node,
                                                  JsonArray    *array);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_take_array      (JsonNode     *node,
                                                  JsonArray    *array);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_node_get_array       (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_node_dup_array       (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_value       (JsonNode     *node,
                                                  const GValue *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_get_value       (JsonNode     *node,
                                                  GValue       *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_string      (JsonNode     *node,
                                                  const gchar  *value);
+JSON_AVAILABLE_IN_1_0
 const gchar *         json_node_get_string      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 gchar *               json_node_dup_string      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_int         (JsonNode     *node,
                                                  gint64        value);
+JSON_AVAILABLE_IN_1_0
 gint64                json_node_get_int         (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_double      (JsonNode     *node,
                                                  gdouble       value);
+JSON_AVAILABLE_IN_1_0
 gdouble               json_node_get_double      (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_node_set_boolean     (JsonNode     *node,
                                                  gboolean      value);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_node_get_boolean     (JsonNode     *node);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_node_is_null         (JsonNode     *node);
 
+JSON_AVAILABLE_IN_1_2
+void                  json_node_seal            (JsonNode     *node);
+gboolean              json_node_is_immutable    (JsonNode     *node);
+
+JSON_AVAILABLE_IN_1_2
+guint                 json_string_hash            (gconstpointer  key);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_string_equal           (gconstpointer  a,
+                                                   gconstpointer  b);
+JSON_AVAILABLE_IN_1_2
+gint                  json_string_compare         (gconstpointer  a,
+                                                   gconstpointer  b);
+
+JSON_AVAILABLE_IN_1_2
+guint                 json_node_hash              (gconstpointer  key);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_node_equal             (gconstpointer  a,
+                                                   gconstpointer  b);
+
 /*
  * JsonObject
  */
+JSON_AVAILABLE_IN_1_0
 GType                 json_object_get_type           (void) G_GNUC_CONST;
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_object_new                (void);
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_object_ref                (JsonObject  *object);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_unref              (JsonObject  *object);
 
-JSON_DEPRECATED_FOR(json_object_set_member)
+JSON_DEPRECATED_IN_1_0_FOR(json_object_set_member)
 void                  json_object_add_member         (JsonObject  *object,
                                                       const gchar *member_name,
                                                       JsonNode    *node);
 
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_member         (JsonObject  *object,
                                                       const gchar *member_name,
                                                       JsonNode    *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_int_member     (JsonObject  *object,
                                                       const gchar *member_name,
                                                       gint64       value);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_double_member  (JsonObject  *object,
                                                       const gchar *member_name,
                                                       gdouble      value);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_boolean_member (JsonObject  *object,
                                                       const gchar *member_name,
                                                       gboolean     value);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_string_member  (JsonObject  *object,
                                                       const gchar *member_name,
                                                       const gchar *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_null_member    (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_array_member   (JsonObject  *object,
                                                       const gchar *member_name,
                                                       JsonArray   *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_set_object_member  (JsonObject  *object,
                                                       const gchar *member_name,
                                                       JsonObject  *value);
+JSON_AVAILABLE_IN_1_0
 GList *               json_object_get_members        (JsonObject  *object);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_object_get_member         (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_object_dup_member         (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 gint64                json_object_get_int_member     (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 gdouble               json_object_get_double_member  (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_object_get_boolean_member (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 const gchar *         json_object_get_string_member  (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_object_get_null_member    (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_object_get_array_member   (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_object_get_object_member  (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_object_has_member         (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_remove_member      (JsonObject  *object,
                                                       const gchar *member_name);
+JSON_AVAILABLE_IN_1_0
 GList *               json_object_get_values         (JsonObject  *object);
+JSON_AVAILABLE_IN_1_0
 guint                 json_object_get_size           (JsonObject  *object);
+JSON_AVAILABLE_IN_1_0
 void                  json_object_foreach_member     (JsonObject  *object,
                                                       JsonObjectForeach func,
                                                       gpointer     data);
 
+JSON_AVAILABLE_IN_1_2
+void                  json_object_seal               (JsonObject  *object);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_object_is_immutable       (JsonObject  *object);
+
+JSON_AVAILABLE_IN_1_2
+guint                 json_object_hash               (gconstpointer key);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_object_equal              (gconstpointer a,
+                                                      gconstpointer b);
+
+/**
+ * JsonObjectIter:
+ *
+ * An iterator used to iterate over the members of a #JsonObject. This must
+ * be allocated on the stack and initialised using json_object_iter_init().
+ * The order in which members are returned by the iterator is undefined. The
+ * iterator is invalidated if its #JsonObject is modified during iteration.
+ *
+ * All the fields in the #JsonObjectIter structure are private and should
+ * never be accessed directly.
+ *
+ * Since: 1.2 
+ */
+typedef struct {
+  /*< private >*/
+  gpointer priv_pointer[6];
+  int      priv_int[2];
+  gboolean priv_boolean[1];
+} JsonObjectIter;
+
+JSON_AVAILABLE_IN_1_2
+void                  json_object_iter_init          (JsonObjectIter  *iter,
+                                                      JsonObject      *object);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_object_iter_next          (JsonObjectIter  *iter,
+                                                      const gchar    **member_name,
+                                                      JsonNode       **member_node);
+
+JSON_AVAILABLE_IN_1_0
 GType                 json_array_get_type            (void) G_GNUC_CONST;
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_array_new                 (void);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_array_sized_new           (guint        n_elements);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_array_ref                 (JsonArray   *array);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_unref               (JsonArray   *array);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_element         (JsonArray   *array,
                                                       JsonNode    *node);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_int_element     (JsonArray   *array,
                                                       gint64       value);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_double_element  (JsonArray   *array,
                                                       gdouble      value);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_boolean_element (JsonArray   *array,
                                                       gboolean     value);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_string_element  (JsonArray   *array,
                                                       const gchar *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_null_element    (JsonArray   *array);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_array_element   (JsonArray   *array,
                                                       JsonArray   *value);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_add_object_element  (JsonArray   *array,
                                                       JsonObject  *value);
+JSON_AVAILABLE_IN_1_0
 GList *               json_array_get_elements        (JsonArray   *array);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_array_get_element         (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 gint64                json_array_get_int_element     (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 gdouble               json_array_get_double_element  (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_array_get_boolean_element (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 const gchar *         json_array_get_string_element  (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 gboolean              json_array_get_null_element    (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 JsonArray *           json_array_get_array_element   (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 JsonObject *          json_array_get_object_element  (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 JsonNode *            json_array_dup_element         (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_remove_element      (JsonArray   *array,
                                                       guint        index_);
+JSON_AVAILABLE_IN_1_0
 guint                 json_array_get_length          (JsonArray   *array);
+JSON_AVAILABLE_IN_1_0
 void                  json_array_foreach_element     (JsonArray   *array,
                                                       JsonArrayForeach func,
                                                       gpointer     data);
+JSON_AVAILABLE_IN_1_2
+void                  json_array_seal                (JsonArray   *array);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_array_is_immutable        (JsonArray   *array);
+
+JSON_AVAILABLE_IN_1_2
+guint                 json_array_hash                (gconstpointer key);
+JSON_AVAILABLE_IN_1_2
+gboolean              json_array_equal               (gconstpointer a,
+                                                      gconstpointer b);
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonArray, json_array_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonObject, json_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonNode, json_node_free)
+#endif
 
 G_END_DECLS
 
diff --git a/json-glib/json-utils.c b/json-glib/json-utils.c
new file mode 100644 (file)
index 0000000..78583cd
--- /dev/null
@@ -0,0 +1,103 @@
+/* json-utils.c - JSON utility API
+ * 
+ * This file is part of JSON-GLib
+ * Copyright 2015  Emmanuele Bassi
+ *
+ * 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.1 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, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * SECTION:json-utils
+ * @Title: Utility API
+ * @Short_description: Various utility functions
+ *
+ * Various utility functions.
+ */
+
+#include "config.h"
+
+#include "json-utils.h"
+#include "json-parser.h"
+#include "json-generator.h"
+
+/**
+ * json_from_string:
+ * @str: a valid UTF-8 string containing JSON data
+ * @error: return location for a #GError
+ *
+ * Parses the string in @str and returns a #JsonNode representing
+ * the JSON tree.
+ *
+ * In case of parsing error, this function returns %NULL and sets
+ * @error appropriately.
+ *
+ * Returns: (transfer full): a #JsonNode, or %NULL
+ *
+ * Since: 1.2
+ */
+JsonNode *
+json_from_string (const char  *str,
+                  GError     **error)
+{
+  JsonParser *parser;
+  JsonNode *retval;
+
+  g_return_val_if_fail (str != NULL, NULL);
+
+  error = NULL;
+  parser = json_parser_new ();
+  if (!json_parser_load_from_data (parser, str, -1, error))
+    {
+      g_object_unref (parser);
+      return NULL;
+    }
+
+  retval = json_node_copy (json_parser_get_root (parser));
+
+  g_object_unref (parser);
+
+  return retval;
+}
+
+/**
+ * json_to_string:
+ * @node: a #JsonNode
+ * @pretty: whether the output should be prettyfied for printing
+ *
+ * Generates a stringified JSON representation of the contents of
+ * the passed @node.
+ *
+ * Returns: (transfer full): the string representation of the #JsonNode
+ *
+ * Since: 1.2
+ */
+char *
+json_to_string (JsonNode *node,
+                gboolean  pretty)
+{
+  JsonGenerator *generator;
+  char *retval;
+
+  g_return_val_if_fail (node != NULL, NULL);
+
+  generator = json_generator_new ();
+  json_generator_set_pretty (generator, pretty);
+  json_generator_set_root (generator, node);
+
+  retval = json_generator_to_data (generator, NULL);
+
+  g_object_unref (generator);
+
+  return retval;
+}
diff --git a/json-glib/json-utils.h b/json-glib/json-utils.h
new file mode 100644 (file)
index 0000000..e709ecd
--- /dev/null
@@ -0,0 +1,40 @@
+/* json-utils.h - JSON utility API
+ * 
+ * This file is part of JSON-GLib
+ * Copyright 2015  Emmanuele Bassi
+ *
+ * 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.1 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __JSON_UTILS_H__
+#define __JSON_UTILS_H__
+
+#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
+#error "Only <json-glib/json-glib.h> can be included directly."
+#endif
+
+#include <json-glib/json-types.h>
+
+G_BEGIN_DECLS
+
+JSON_AVAILABLE_IN_1_2
+JsonNode *      json_from_string        (const char  *str,
+                                         GError     **error);
+JSON_AVAILABLE_IN_1_2
+char *          json_to_string          (JsonNode    *node,
+                                         gboolean     pretty);
+
+G_END_DECLS
+
+#endif /* __JSON_UTILS_H__ */
index 7e9babd..1b6f971 100644 (file)
@@ -2,6 +2,7 @@
  * 
  * This file is part of JSON-GLib
  * Copyright (C) 2012  Emmanuele Bassi <ebassi@gnome.org>
+ * Copyright (C) 2015 Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * Author:
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
+ *   Philip Withnall  <philip.withnall@collabora.co.uk>
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <glib.h>
 
@@ -111,7 +111,7 @@ json_value_ref (JsonValue *value)
 {
   g_return_val_if_fail (value != NULL, NULL);
 
-  g_atomic_int_add (&value->ref_count, 1);
+  value->ref_count++;
 
   return value;
 }
@@ -121,7 +121,7 @@ json_value_unref (JsonValue *value)
 {
   g_return_if_fail (value != NULL);
 
-  if (g_atomic_int_dec_and_test (&value->ref_count))
+  if (--value->ref_count == 0)
     json_value_free (value);
 }
 
@@ -167,12 +167,77 @@ json_value_free (JsonValue *value)
     }
 }
 
+/**
+ * json_value_seal:
+ * @value: a #JsonValue
+ *
+ * Seals the #JsonValue, making it immutable to further changes.
+ *
+ * If the @value is already immutable, this is a no-op.
+ *
+ * Since: 1.2
+ */
+void
+json_value_seal (JsonValue *value)
+{
+  g_return_if_fail (JSON_VALUE_IS_VALID (value));
+  g_return_if_fail (value->ref_count > 0);
+
+  value->immutable = TRUE;
+}
+
+guint
+json_value_hash (gconstpointer key)
+{
+  JsonValue *value;
+  guint value_hash;
+  guint type_hash;
+
+  value = (JsonValue *) key;
+
+  /* Hash the type and value separately.
+   * Use the top 3 bits to store the type. */
+  type_hash = value->type << (sizeof (guint) * 8 - 3);
+
+  switch (value->type)
+    {
+    case JSON_VALUE_NULL:
+      value_hash = 0;
+      break;
+    case JSON_VALUE_BOOLEAN:
+      value_hash = json_value_get_boolean (value) ? 1 : 0;
+      break;
+    case JSON_VALUE_STRING:
+      value_hash = json_string_hash (json_value_get_string (value));
+      break;
+    case JSON_VALUE_INT: {
+      gint64 v = json_value_get_int (value);
+      value_hash = g_int64_hash (&v);
+      break;
+    }
+    case JSON_VALUE_DOUBLE: {
+      gdouble v = json_value_get_double (value);
+      value_hash = g_double_hash (&v);
+      break;
+    }
+    case JSON_VALUE_INVALID:
+    default:
+      g_assert_not_reached ();
+    }
+
+  /* Mask out the top 3 bits of the @value_hash. */
+  value_hash &= ~(7 << (sizeof (guint) * 8 - 3));
+
+  return (type_hash | value_hash);
+}
+
 #define _JSON_VALUE_DEFINE_SET(Type,EType,CType,VField) \
 void \
 json_value_set_##Type (JsonValue *value, CType VField) \
 { \
   g_return_if_fail (JSON_VALUE_IS_VALID (value)); \
   g_return_if_fail (JSON_VALUE_HOLDS (value, JSON_VALUE_##EType)); \
+  g_return_if_fail (!value->immutable); \
 \
   value->data.VField = VField; \
 \
@@ -204,6 +269,7 @@ json_value_set_string (JsonValue *value,
 {
   g_return_if_fail (JSON_VALUE_IS_VALID (value));
   g_return_if_fail (JSON_VALUE_HOLDS_STRING (value));
+  g_return_if_fail (!value->immutable);
 
   g_free (value->data.v_str);
   value->data.v_str = g_strdup (v_str);
diff --git a/json-glib/json-version-macros.h b/json-glib/json-version-macros.h
new file mode 100644 (file)
index 0000000..efba7f4
--- /dev/null
@@ -0,0 +1,151 @@
+/* json-version-macros.h - JSON-GLib symbol versioning macros
+ * 
+ * This file is part of JSON-GLib
+ * Copyright © 2014  Emmanuele Bassi
+ *
+ * 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.1 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __JSON_VERSION_MACROS_H__
+#define __JSON_VERSION_MACROS_H__
+
+#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
+#error "Only <json-glib/json-glib.h> can be included directly."
+#endif
+
+#include "json-version.h"
+
+#ifndef _JSON_EXTERN
+#define _JSON_EXTERN extern
+#endif
+
+#ifdef JSON_DISABLE_DEPRECATION_WARNINGS
+#define JSON_DEPRECATED _JSON_EXTERN
+#define JSON_DEPRECATED_FOR(f) _JSON_EXTERN
+#define JSON_UNAVAILABLE(maj,min) _JSON_EXTERN
+#else
+#define JSON_DEPRECATED G_DEPRECATED _JSON_EXTERN
+#define JSON_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _JSON_EXTERN
+#define JSON_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _JSON_EXTERN
+#endif
+
+/* XXX: Each new cycle should add a new version symbol here */
+#define JSON_VERSION_1_0        (G_ENCODE_VERSION (1, 0))
+
+#define JSON_VERSION_1_2        (G_ENCODE_VERSION (1, 2))
+
+/* evaluates to the current stable version; for development cycles,
+ * this means the next stable target
+ */
+#if (JSON_MINOR_VERSION == 99)
+#define JSON_VERSION_CUR_STABLE         (G_ENCODE_VERSION (JSON_MAJOR_VERSION + 1, 0))
+#elif (JSON_MINOR_VERSION % 2)
+#define JSON_VERSION_CUR_STABLE         (G_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION + 1))
+#else
+#define JSON_VERSION_CUR_STABLE         (G_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION))
+#endif
+
+/* evaluates to the previous stable version */
+#if (JSON_MINOR_VERSION == 99)
+#define JSON_VERSION_PREV_STABLE        (G_ENCODE_VERSION (JSON_MAJOR_VERSION + 1, 0))
+#elif (JSON_MINOR_VERSION % 2)
+#define JSON_VERSION_PREV_STABLE        (G_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION - 1))
+#else
+#define JSON_VERSION_PREV_STABLE        (G_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION - 2))
+#endif
+
+/**
+ * JSON_VERSION_MIN_REQUIRED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the gdk.h header.
+ * The definition should be one of the predefined JSON version
+ * macros: %JSON_VERSION_1_0, %JSON_VERSION_1_2,...
+ *
+ * This macro defines the lower bound for the JSON-GLib API to use.
+ *
+ * If a function has been deprecated in a newer version of JSON-GLib,
+ * it is possible to use this symbol to avoid the compiler warnings
+ * without disabling warning for every deprecated function.
+ *
+ * Since: 1.0
+ */
+#ifndef JSON_VERSION_MIN_REQUIRED
+# define JSON_VERSION_MIN_REQUIRED      (JSON_VERSION_CUR_STABLE)
+#endif
+
+/**
+ * JSON_VERSION_MAX_ALLOWED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the json-glib.h header.
+
+ * The definition should be one of the predefined JSON-GLib version
+ * macros: %JSON_VERSION_1_0, %JSON_VERSION_1_2,...
+ *
+ * This macro defines the upper bound for the JSON API-GLib to use.
+ *
+ * If a function has been introduced in a newer version of JSON-GLib,
+ * it is possible to use this symbol to get compiler warnings when
+ * trying to use that function.
+ *
+ * Since: 1.0
+ */
+#ifndef JSON_VERSION_MAX_ALLOWED
+# if JSON_VERSION_MIN_REQUIRED > JSON_VERSION_PREV_STABLE
+#  define JSON_VERSION_MAX_ALLOWED      (JSON_VERSION_MIN_REQUIRED)
+# else
+#  define JSON_VERSION_MAX_ALLOWED      (JSON_VERSION_CUR_STABLE)
+# endif
+#endif
+
+/* sanity checks */
+#if JSON_VERSION_MAX_ALLOWED < JSON_VERSION_MIN_REQUIRED
+#error "JSON_VERSION_MAX_ALLOWED must be >= JSON_VERSION_MIN_REQUIRED"
+#endif
+#if JSON_VERSION_MIN_REQUIRED < JSON_VERSION_1_0
+#error "JSON_VERSION_MIN_REQUIRED must be >= JSON_VERSION_1_0"
+#endif
+
+/* XXX: Every new stable minor release should add a set of macros here */
+
+#if JSON_VERSION_MIN_REQUIRED >= JSON_VERSION_1_0
+# define JSON_DEPRECATED_IN_1_0                JSON_DEPRECATED
+# define JSON_DEPRECATED_IN_1_0_FOR(f)         JSON_DEPRECATED_FOR(f)
+#else
+# define JSON_DEPRECATED_IN_1_0                _JSON_EXTERN
+# define JSON_DEPRECATED_IN_1_0_FOR(f)         _JSON_EXTERN
+#endif
+
+#if JSON_VERSION_MAX_ALLOWED < JSON_VERSION_1_0
+# define JSON_AVAILABLE_IN_1_0                 JSON_UNAVAILABLE(1, 0)
+#else
+# define JSON_AVAILABLE_IN_1_0                 _JSON_EXTERN
+#endif
+
+#if JSON_VERSION_MIN_REQUIRED >= JSON_VERSION_1_2
+# define JSON_DEPRECATED_IN_1_2                JSON_DEPRECATED
+# define JSON_DEPRECATED_IN_1_2_FOR(f)         JSON_DEPRECATED_FOR(f)
+#else
+# define JSON_DEPRECATED_IN_1_2                _JSON_EXTERN
+# define JSON_DEPRECATED_IN_1_2_FOR(f)         _JSON_EXTERN
+#endif
+
+#if JSON_VERSION_MAX_ALLOWED < JSON_VERSION_1_2
+# define JSON_AVAILABLE_IN_1_2                 JSON_UNAVAILABLE(1, 2)
+#else
+# define JSON_AVAILABLE_IN_1_2                 _JSON_EXTERN
+#endif
+
+#endif /* __JSON_VERSION_MACROS_H__ */
index 80610af..e14b567 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_VERSION_H__
+#define __JSON_VERSION_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_VERSION_H__
-#define __JSON_VERSION_H__
-
 /**
  * SECTION:json-version
  * @short_description: JSON-GLib version checking
  *
  * Json major version component (e.g. 1 if %JSON_VERSION is 1.2.3)
  */
-#define JSON_MAJOR_VERSION              (0)
+#define JSON_MAJOR_VERSION              (1)
 
 /**
  * JSON_MINOR_VERSION:
  *
  * Json minor version component (e.g. 2 if %JSON_VERSION is 1.2.3)
  */
-#define JSON_MINOR_VERSION              (16)
+#define JSON_MINOR_VERSION              (2)
 
 /**
  * JSON_MICRO_VERSION:
  *
  * Json version.
  */
-#define JSON_VERSION                    (0.16.0)
+#define JSON_VERSION                    (1.2.0)
 
 /**
  * JSON_VERSION_S:
  *
- * Json version, encoded as a string, useful for printing and
+ * JSON-GLib version, encoded as a string, useful for printing and
  * concatenation.
  */
-#define JSON_VERSION_S                  "0.16.0"
+#define JSON_VERSION_S                  "1.2.0"
+
+#define JSON_ENCODE_VERSION(major,minor,micro) \
+        ((major) << 24 | (minor) << 16 | (micro) << 8)
 
 /**
  * JSON_VERSION_HEX:
  *
- * Json version, encoded as an hexadecimal number, useful for
+ * JSON-GLib version, encoded as an hexadecimal number, useful for
  * integer comparisons.
  */
-#define JSON_VERSION_HEX                (JSON_MAJOR_VERSION << 24 | \
-                                         JSON_MINOR_VERSION << 16 | \
-                                         JSON_MICRO_VERSION << 8)
+#define JSON_VERSION_HEX \
+        (JSON_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION, JSON_MICRO_VERSION))
 
 /**
  * JSON_CHECK_VERSION:
index bc05f1b..d18caa2 100644 (file)
  *   Emmanuele Bassi  <ebassi@linux.intel.com>
  */
 
+#ifndef __JSON_VERSION_H__
+#define __JSON_VERSION_H__
+
 #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION)
 #error "Only <json-glib/json-glib.h> can be included directly."
 #endif
 
-#ifndef __JSON_VERSION_H__
-#define __JSON_VERSION_H__
-
 /**
  * SECTION:json-version
  * @short_description: JSON-GLib version checking
 /**
  * JSON_VERSION_S:
  *
- * Json version, encoded as a string, useful for printing and
+ * JSON-GLib version, encoded as a string, useful for printing and
  * concatenation.
  */
 #define JSON_VERSION_S                  "@JSON_VERSION@"
 
+#define JSON_ENCODE_VERSION(major,minor,micro) \
+        ((major) << 24 | (minor) << 16 | (micro) << 8)
+
 /**
  * JSON_VERSION_HEX:
  *
- * Json version, encoded as an hexadecimal number, useful for
+ * JSON-GLib version, encoded as an hexadecimal number, useful for
  * integer comparisons.
  */
-#define JSON_VERSION_HEX                (JSON_MAJOR_VERSION << 24 | \
-                                         JSON_MINOR_VERSION << 16 | \
-                                         JSON_MICRO_VERSION << 8)
+#define JSON_VERSION_HEX \
+        (JSON_ENCODE_VERSION (JSON_MAJOR_VERSION, JSON_MINOR_VERSION, JSON_MICRO_VERSION))
 
 /**
  * JSON_CHECK_VERSION:
index 9815b95..8f379ca 100644 (file)
@@ -1,26 +1,21 @@
-include $(top_srcdir)/build/autotools/Makefile.am.gtest
-include $(top_srcdir)/build/autotools/Makefile.am.silent
+include $(top_srcdir)/build/autotools/glib-tap.mk
 
-NULL =
-
-DISTCLEANFILES =
-
-INCLUDES = \
-       -I$(top_srcdir)                 \
-       -I$(top_srcdir)/json-glib       \
-       $(NULL)
-
-AM_CPPFLAGS = $(JSON_DEBUG_CFLAGS) -DTESTS_DATA_DIR=\""$(top_srcdir)/json-glib/tests"\"
 AM_CFLAGS = -g $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
-LDADD = \
-       ../libjson-glib-1.0.la \
-       $(JSON_LIBS) \
+LDADD = $(top_builddir)/json-glib//libjson-glib-1.0.la $(JSON_LIBS)
+AM_CPPFLAGS = \
+       $(JSON_DEBUG_CFLAGS) \
+       -DG_LOG_DOMAIN=\"Json\" \
+       -I$(top_srcdir) \
+       -I$(top_builddir) \
+       -I$(top_srcdir)/json-glib \
+       -I$(top_builddir)/json-glib \
        $(NULL)
 
-EXTRA_DIST += stream-load.json
+dist_test_data = \
+       stream-load.json        \
+       $(NULL)
 
-noinst_PROGRAMS = $(TEST_PROGS)
-TEST_PROGS += \
+test_programs = \
        array                   \
        boxed                   \
        builder                 \
@@ -37,4 +32,4 @@ TEST_PROGS += \
        serialize-full          \
        $(NULL)
 
--include $(top_srcdir)/build/autotools/Makefile.am.gitignore
+include $(top_srcdir)/build/autotools/Makefile.am.gitignore
index 5c39fa7..30c6d8a 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 
-# JSON-GLib - JSON reader and writer library
+# GLIB - Library of useful C routines
+
+# this file should only be used in directories that generate test
+# or example binaries through noinst_PROGRAMS; it is *not* a full
+# generator of Git ignore files, and it's not meant to be used as
+# the top-level Git ignore file generator.
+
+
 
-# custom rules for quiet builds
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,21 +98,47 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(top_srcdir)/build/autotools/Makefile.am.gtest \
-       $(top_srcdir)/build/autotools/Makefile.am.silent \
-       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(top_srcdir)/build/depcomp
-noinst_PROGRAMS = $(am__EXEEXT_2)
+TESTS = $(am__EXEEXT_2)
+installed_test_PROGRAMS = $(am__EXEEXT_5)
+noinst_PROGRAMS = $(am__EXEEXT_6)
+check_PROGRAMS = $(am__EXEEXT_4)
+@ENABLE_ALWAYS_BUILD_TESTS_TRUE@am__append_1 = $(all_test_ltlibs)
+@ENABLE_ALWAYS_BUILD_TESTS_TRUE@am__append_2 = $(all_test_programs)
+@ENABLE_ALWAYS_BUILD_TESTS_TRUE@am__append_3 = $(all_test_scripts)
+@ENABLE_ALWAYS_BUILD_TESTS_TRUE@am__append_4 = $(all_test_data)
+@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__append_5 = $(all_test_ltlibs)
+@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__append_6 = $(all_test_programs)
+@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__append_7 = $(all_test_scripts)
+@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__append_8 = $(all_test_data)
+@ENABLE_INSTALLED_TESTS_TRUE@am__append_9 = $(test_programs) $(installed_test_programs) \
+@ENABLE_INSTALLED_TESTS_TRUE@                          $(test_extra_programs) $(installed_test_extra_programs)
+
+@ENABLE_INSTALLED_TESTS_TRUE@am__append_10 = $(test_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(installed_test_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(test_extra_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(test_installed_extra_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_test_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_test_extra_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_installed_test_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_installed_test_extra_scripts)
+@ENABLE_INSTALLED_TESTS_TRUE@am__append_11 = $(test_data) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(installed_test_data) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_test_data) \
+@ENABLE_INSTALLED_TESTS_TRUE@  $(dist_installed_test_data)
+@ENABLE_INSTALLED_TESTS_TRUE@am__append_12 = $(test_ltlibraries) $(installed_test_ltlibraries)
+@ENABLE_INSTALLED_TESTS_TRUE@am__append_13 = $(installed_test_meta_DATA)
 subdir = json-glib/tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/build/autotools/as-compiler-flag.m4 \
        $(top_srcdir)/build/autotools/as-linguas.m4 \
        $(top_srcdir)/build/autotools/gettext.m4 \
+       $(top_srcdir)/build/autotools/glibtests.m4 \
        $(top_srcdir)/build/autotools/gtk-doc.m4 \
        $(top_srcdir)/build/autotools/iconv.m4 \
        $(top_srcdir)/build/autotools/intlmacosx.m4 \
        $(top_srcdir)/build/autotools/introspection.m4 \
+       $(top_srcdir)/build/autotools/jh-catalog.m4 \
        $(top_srcdir)/build/autotools/lib-ld.m4 \
        $(top_srcdir)/build/autotools/lib-link.m4 \
        $(top_srcdir)/build/autotools/lib-prefix.m4 \
@@ -83,10 +153,44 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(installed_testdir)" \
+       "$(DESTDIR)$(installed_testdir)" \
+       "$(DESTDIR)$(installed_testdir)" \
+       "$(DESTDIR)$(installed_test_metadir)" \
+       "$(DESTDIR)$(installed_testdir)"
+LTLIBRARIES = $(installed_test_LTLIBRARIES) $(noinst_LTLIBRARIES)
 am__EXEEXT_1 =
 am__EXEEXT_2 = array$(EXEEXT) boxed$(EXEEXT) builder$(EXEEXT) \
        generator$(EXEEXT) gvariant$(EXEEXT) invalid$(EXEEXT) \
@@ -94,12 +198,16 @@ am__EXEEXT_2 = array$(EXEEXT) boxed$(EXEEXT) builder$(EXEEXT) \
        reader$(EXEEXT) serialize-simple$(EXEEXT) \
        serialize-complex$(EXEEXT) serialize-full$(EXEEXT) \
        $(am__EXEEXT_1)
-PROGRAMS = $(noinst_PROGRAMS)
+am__EXEEXT_3 = $(am__EXEEXT_2)
+@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__EXEEXT_4 = $(am__EXEEXT_3)
+@ENABLE_INSTALLED_TESTS_TRUE@am__EXEEXT_5 = $(am__EXEEXT_2)
+@ENABLE_ALWAYS_BUILD_TESTS_TRUE@am__EXEEXT_6 = $(am__EXEEXT_3)
+PROGRAMS = $(installed_test_PROGRAMS) $(noinst_PROGRAMS)
 array_SOURCES = array.c
 array_OBJECTS = array.$(OBJEXT)
 array_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-array_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+array_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -108,68 +216,74 @@ am__v_lt_1 =
 boxed_SOURCES = boxed.c
 boxed_OBJECTS = boxed.$(OBJEXT)
 boxed_LDADD = $(LDADD)
-boxed_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+boxed_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 builder_SOURCES = builder.c
 builder_OBJECTS = builder.$(OBJEXT)
 builder_LDADD = $(LDADD)
-builder_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+builder_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 generator_SOURCES = generator.c
 generator_OBJECTS = generator.$(OBJEXT)
 generator_LDADD = $(LDADD)
-generator_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+generator_DEPENDENCIES =  \
+       $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 gvariant_SOURCES = gvariant.c
 gvariant_OBJECTS = gvariant.$(OBJEXT)
 gvariant_LDADD = $(LDADD)
-gvariant_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+gvariant_DEPENDENCIES =  \
+       $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 invalid_SOURCES = invalid.c
 invalid_OBJECTS = invalid.$(OBJEXT)
 invalid_LDADD = $(LDADD)
-invalid_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+invalid_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 node_SOURCES = node.c
 node_OBJECTS = node.$(OBJEXT)
 node_LDADD = $(LDADD)
-node_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+node_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 object_SOURCES = object.c
 object_OBJECTS = object.$(OBJEXT)
 object_LDADD = $(LDADD)
-object_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+object_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 parser_SOURCES = parser.c
 parser_OBJECTS = parser.$(OBJEXT)
 parser_LDADD = $(LDADD)
-parser_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+parser_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 path_SOURCES = path.c
 path_OBJECTS = path.$(OBJEXT)
 path_LDADD = $(LDADD)
-path_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+path_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 reader_SOURCES = reader.c
 reader_OBJECTS = reader.$(OBJEXT)
 reader_LDADD = $(LDADD)
-reader_DEPENDENCIES = ../libjson-glib-1.0.la $(am__DEPENDENCIES_1) \
+reader_DEPENDENCIES = $(top_builddir)/json-glib//libjson-glib-1.0.la \
        $(am__DEPENDENCIES_1)
 serialize_complex_SOURCES = serialize-complex.c
 serialize_complex_OBJECTS = serialize-complex.$(OBJEXT)
 serialize_complex_LDADD = $(LDADD)
-serialize_complex_DEPENDENCIES = ../libjson-glib-1.0.la \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+serialize_complex_DEPENDENCIES =  \
+       $(top_builddir)/json-glib//libjson-glib-1.0.la \
+       $(am__DEPENDENCIES_1)
 serialize_full_SOURCES = serialize-full.c
 serialize_full_OBJECTS = serialize-full.$(OBJEXT)
 serialize_full_LDADD = $(LDADD)
-serialize_full_DEPENDENCIES = ../libjson-glib-1.0.la \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+serialize_full_DEPENDENCIES =  \
+       $(top_builddir)/json-glib//libjson-glib-1.0.la \
+       $(am__DEPENDENCIES_1)
 serialize_simple_SOURCES = serialize-simple.c
 serialize_simple_OBJECTS = serialize-simple.$(OBJEXT)
 serialize_simple_LDADD = $(LDADD)
-serialize_simple_DEPENDENCIES = ../libjson-glib-1.0.la \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+serialize_simple_DEPENDENCIES =  \
+       $(top_builddir)/json-glib//libjson-glib-1.0.la \
+       $(am__DEPENDENCIES_1)
+SCRIPTS = $(installed_test_SCRIPTS) $(noinst_SCRIPTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -215,6 +329,8 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+DATA = $(installed_test_meta_DATA) $(nobase_installed_test_DATA) \
+       $(noinst_DATA)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
@@ -234,6 +350,186 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+       $(top_srcdir)/build/autotools/Makefile.am.gitignore \
+       $(top_srcdir)/build/autotools/glib-tap.mk \
+       $(top_srcdir)/build/depcomp $(top_srcdir)/build/test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -274,6 +570,7 @@ GMSGFMT_015 = @GMSGFMT_015@
 GOBJECT_QUERY = @GOBJECT_QUERY@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -298,6 +595,7 @@ JSON_CFLAGS = @JSON_CFLAGS@
 JSON_DEBUG_CFLAGS = @JSON_DEBUG_CFLAGS@
 JSON_GCOV_CFLAGS = @JSON_GCOV_CFLAGS@
 JSON_GCOV_LDADD = @JSON_GCOV_LDADD@
+JSON_HIDDEN_VISIBILITY_CFLAGS = @JSON_HIDDEN_VISIBILITY_CFLAGS@
 JSON_LIBS = @JSON_LIBS@
 JSON_LT_LDFLAGS = @JSON_LT_LDFLAGS@
 JSON_MAJOR_VERSION = @JSON_MAJOR_VERSION@
@@ -319,6 +617,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LTP = @LTP@
 LTP_GENHTML = @LTP_GENHTML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -355,6 +654,9 @@ VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMLCATALOG = @XMLCATALOG@
+XML_CATALOG_FILE = @XML_CATALOG_FILE@
+XSLTPROC = @XSLTPROC@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -388,6 +690,8 @@ htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
+installed_test_metadir = @installed_test_metadir@
+installed_testdir = @installed_testdir@
 libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
@@ -407,40 +711,96 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-GTESTER = gtester
-GTESTER_REPORT = gtester-report
+TESTS_ENVIRONMENT = \
+       G_TEST_SRCDIR="$(abs_srcdir)"           \
+       G_TEST_BUILDDIR="$(abs_builddir)"       \
+       G_DEBUG=gc-friendly                     \
+       MALLOC_CHECK_=2                         \
+       MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
+
+LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/build/autotools/tap-driver.sh
+LOG_COMPILER = $(top_srcdir)/build/autotools/tap-test
+NULL = 
 
 # initialize variables for unconditional += appending
-EXTRA_DIST = stream-load.json
-TEST_PROGS = array boxed builder generator gvariant invalid node \
-       object parser path reader serialize-simple serialize-complex \
-       serialize-full $(NULL)
-QUIET_GEN = $(AM_V_GEN)
-QUIET_LN = $(QUIET_LN_$(V))
-QUIET_LN_ = $(QUIET_LN_$(AM_DEFAULT_VERBOSITY))
-QUIET_LN_0 = @echo '  LN     '$@;
-QUIET_RM = $(QUIET_RM_$(V))
-QUIET_RM_ = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
-QUIET_RM_0 = @echo '  RM     '$@;
-NULL = 
+BUILT_SOURCES = 
+BUILT_EXTRA_DIST = 
+CLEANFILES = *.log *.trs $(am__append_13)
 DISTCLEANFILES = 
-INCLUDES = \
-       -I$(top_srcdir)                 \
-       -I$(top_srcdir)/json-glib       \
+MAINTAINERCLEANFILES = 
+EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data)
+installed_test_LTLIBRARIES = $(am__append_12)
+installed_test_SCRIPTS = $(am__append_10)
+nobase_installed_test_DATA = $(am__append_11)
+noinst_LTLIBRARIES = $(am__append_1)
+noinst_SCRIPTS = $(am__append_3)
+noinst_DATA = $(am__append_4)
+check_LTLIBRARIES = $(am__append_5)
+check_SCRIPTS = $(am__append_7)
+check_DATA = $(am__append_8)
+
+# Note: build even the installed-only targets during 'make check' to ensure that they still work.
+# We need to do a bit of trickery here and manage disting via EXTRA_DIST instead of using dist_ prefixes to
+# prevent automake from mistreating gmake functions like $(wildcard ...) and $(addprefix ...) as if they were
+# filenames, including removing duplicate instances of the opening part before the space, eg. '$(addprefix'.
+all_test_programs = $(test_programs) $(uninstalled_test_programs) $(installed_test_programs) \
+                        $(test_extra_programs) $(uninstalled_test_extra_programs) $(installed_test_extra_programs)
+
+all_test_scripts = $(test_scripts) $(uninstalled_test_scripts) \
+       $(installed_test_scripts) $(test_extra_scripts) \
+       $(uninstalled_test_extra_scripts) \
+       $(installed_test_extra_scripts) $(all_dist_test_scripts)
+all_dist_test_scripts = $(dist_test_scripts) $(dist_uninstalled_test_scripts) $(dist_installed_test_scripts) \
+                        $(dist_test_extra_scripts) $(dist_uninstalled_test_extra_scripts) $(dist_installed_test_extra_scripts)
+
+all_test_data = $(test_data) $(uninstalled_test_data) \
+       $(installed_test_data) $(all_dist_test_data)
+all_dist_test_data = $(dist_test_data) $(dist_uninstalled_test_data) $(dist_installed_test_data)
+all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installed_test_ltlibraries)
+@ENABLE_INSTALLED_TESTS_TRUE@installed_testcases = $(test_programs) $(installed_test_programs) \
+@ENABLE_INSTALLED_TESTS_TRUE@                      $(test_scripts) $(installed_test_scripts) \
+@ENABLE_INSTALLED_TESTS_TRUE@                      $(dist_test_scripts) $(dist_installed_test_scripts)
+
+@ENABLE_INSTALLED_TESTS_TRUE@installed_test_meta_DATA = $(installed_testcases:=.test)
+AM_CFLAGS = -g $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
+LDADD = $(top_builddir)/json-glib//libjson-glib-1.0.la $(JSON_LIBS)
+AM_CPPFLAGS = \
+       $(JSON_DEBUG_CFLAGS) \
+       -DG_LOG_DOMAIN=\"Json\" \
+       -I$(top_srcdir) \
+       -I$(top_builddir) \
+       -I$(top_srcdir)/json-glib \
+       -I$(top_builddir)/json-glib \
        $(NULL)
 
-AM_CPPFLAGS = $(JSON_DEBUG_CFLAGS) -DTESTS_DATA_DIR=\""$(top_srcdir)/json-glib/tests"\"
-AM_CFLAGS = -g $(JSON_CFLAGS) $(MAINTAINER_CFLAGS)
-LDADD = \
-       ../libjson-glib-1.0.la \
-       $(JSON_LIBS) \
+dist_test_data = \
+       stream-load.json        \
+       $(NULL)
+
+test_programs = \
+       array                   \
+       boxed                   \
+       builder                 \
+       generator               \
+       gvariant                \
+       invalid                 \
+       node                    \
+       object                  \
+       parser                  \
+       path                    \
+       reader                  \
+       serialize-simple        \
+       serialize-complex       \
+       serialize-full          \
        $(NULL)
 
-all: all-am
+GIT_IGNORE_FILES = $(noinst_PROGRAMS) $(check_PROGRAMS) $(check_SCRIPTS) $(GIT_IGNORE_EXTRA)
+all: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.silent $(am__configure_deps)
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/glib-tap.mk $(top_srcdir)/build/autotools/Makefile.am.gitignore $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -452,7 +812,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/build/autotools/Make
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign json-glib/tests/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign json-glib/tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
@@ -461,7 +820,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
-$(top_srcdir)/build/autotools/Makefile.am.gtest $(top_srcdir)/build/autotools/Makefile.am.silent:
+$(top_srcdir)/build/autotools/glib-tap.mk $(top_srcdir)/build/autotools/Makefile.am.gitignore $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -472,6 +831,121 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
+clean-checkLTLIBRARIES:
+       -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES)
+       @list='$(check_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+install-installed_testLTLIBRARIES: $(installed_test_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       @list='$(installed_test_LTLIBRARIES)'; test -n "$(installed_testdir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(installed_testdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(installed_testdir)" || exit 1; \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(installed_testdir)'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(installed_testdir)"; \
+       }
+
+uninstall-installed_testLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(installed_test_LTLIBRARIES)'; test -n "$(installed_testdir)" || list=; \
+       for p in $$list; do \
+         $(am__strip_dir) \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(installed_testdir)/$$f'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(installed_testdir)/$$f"; \
+       done
+
+clean-installed_testLTLIBRARIES:
+       -test -z "$(installed_test_LTLIBRARIES)" || rm -f $(installed_test_LTLIBRARIES)
+       @list='$(installed_test_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+clean-noinstLTLIBRARIES:
+       -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+       @list='$(noinst_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+clean-checkPROGRAMS:
+       @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+install-installed_testPROGRAMS: $(installed_test_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(installed_test_PROGRAMS)'; test -n "$(installed_testdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(installed_testdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(installed_testdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(installed_testdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(installed_testdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-installed_testPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(installed_test_PROGRAMS)'; test -n "$(installed_testdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(installed_testdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(installed_testdir)" && rm -f $$files
+
+clean-installed_testPROGRAMS:
+       @list='$(installed_test_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
 clean-noinstPROGRAMS:
        @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
        echo " rm -f" $$list; \
@@ -480,48 +954,97 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
+
 array$(EXEEXT): $(array_OBJECTS) $(array_DEPENDENCIES) $(EXTRA_array_DEPENDENCIES) 
        @rm -f array$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(array_OBJECTS) $(array_LDADD) $(LIBS)
+
 boxed$(EXEEXT): $(boxed_OBJECTS) $(boxed_DEPENDENCIES) $(EXTRA_boxed_DEPENDENCIES) 
        @rm -f boxed$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(boxed_OBJECTS) $(boxed_LDADD) $(LIBS)
+
 builder$(EXEEXT): $(builder_OBJECTS) $(builder_DEPENDENCIES) $(EXTRA_builder_DEPENDENCIES) 
        @rm -f builder$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(builder_OBJECTS) $(builder_LDADD) $(LIBS)
+
 generator$(EXEEXT): $(generator_OBJECTS) $(generator_DEPENDENCIES) $(EXTRA_generator_DEPENDENCIES) 
        @rm -f generator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(generator_OBJECTS) $(generator_LDADD) $(LIBS)
+
 gvariant$(EXEEXT): $(gvariant_OBJECTS) $(gvariant_DEPENDENCIES) $(EXTRA_gvariant_DEPENDENCIES) 
        @rm -f gvariant$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(gvariant_OBJECTS) $(gvariant_LDADD) $(LIBS)
+
 invalid$(EXEEXT): $(invalid_OBJECTS) $(invalid_DEPENDENCIES) $(EXTRA_invalid_DEPENDENCIES) 
        @rm -f invalid$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(invalid_OBJECTS) $(invalid_LDADD) $(LIBS)
+
 node$(EXEEXT): $(node_OBJECTS) $(node_DEPENDENCIES) $(EXTRA_node_DEPENDENCIES) 
        @rm -f node$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(node_OBJECTS) $(node_LDADD) $(LIBS)
+
 object$(EXEEXT): $(object_OBJECTS) $(object_DEPENDENCIES) $(EXTRA_object_DEPENDENCIES) 
        @rm -f object$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(object_OBJECTS) $(object_LDADD) $(LIBS)
+
 parser$(EXEEXT): $(parser_OBJECTS) $(parser_DEPENDENCIES) $(EXTRA_parser_DEPENDENCIES) 
        @rm -f parser$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(parser_OBJECTS) $(parser_LDADD) $(LIBS)
+
 path$(EXEEXT): $(path_OBJECTS) $(path_DEPENDENCIES) $(EXTRA_path_DEPENDENCIES) 
        @rm -f path$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(path_OBJECTS) $(path_LDADD) $(LIBS)
+
 reader$(EXEEXT): $(reader_OBJECTS) $(reader_DEPENDENCIES) $(EXTRA_reader_DEPENDENCIES) 
        @rm -f reader$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(reader_OBJECTS) $(reader_LDADD) $(LIBS)
+
 serialize-complex$(EXEEXT): $(serialize_complex_OBJECTS) $(serialize_complex_DEPENDENCIES) $(EXTRA_serialize_complex_DEPENDENCIES) 
        @rm -f serialize-complex$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(serialize_complex_OBJECTS) $(serialize_complex_LDADD) $(LIBS)
+
 serialize-full$(EXEEXT): $(serialize_full_OBJECTS) $(serialize_full_DEPENDENCIES) $(EXTRA_serialize_full_DEPENDENCIES) 
        @rm -f serialize-full$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(serialize_full_OBJECTS) $(serialize_full_LDADD) $(LIBS)
+
 serialize-simple$(EXEEXT): $(serialize_simple_OBJECTS) $(serialize_simple_DEPENDENCIES) $(EXTRA_serialize_simple_DEPENDENCIES) 
        @rm -f serialize-simple$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(serialize_simple_OBJECTS) $(serialize_simple_LDADD) $(LIBS)
+install-installed_testSCRIPTS: $(installed_test_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(installed_test_SCRIPTS)'; test -n "$(installed_testdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(installed_testdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(installed_testdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(installed_testdir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(installed_testdir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-installed_testSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(installed_test_SCRIPTS)'; test -n "$(installed_testdir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(installed_testdir)'; $(am__uninstall_files_from_dir)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -545,22 +1068,25 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serialize-simple.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -570,6 +1096,51 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
+install-installed_test_metaDATA: $(installed_test_meta_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(installed_test_meta_DATA)'; test -n "$(installed_test_metadir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(installed_test_metadir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(installed_test_metadir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(installed_test_metadir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(installed_test_metadir)" || exit $$?; \
+       done
+
+uninstall-installed_test_metaDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(installed_test_meta_DATA)'; test -n "$(installed_test_metadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(installed_test_metadir)'; $(am__uninstall_files_from_dir)
+install-nobase_installed_testDATA: $(nobase_installed_test_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(nobase_installed_test_DATA)'; test -n "$(installed_testdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(installed_testdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(installed_testdir)" || exit 1; \
+       fi; \
+       $(am__nobase_list) | while read dir files; do \
+         xfiles=; for file in $$files; do \
+           if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+           else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+         test -z "$$xfiles" || { \
+           test "x$$dir" = x. || { \
+             echo " $(MKDIR_P) '$(DESTDIR)$(installed_testdir)/$$dir'"; \
+             $(MKDIR_P) "$(DESTDIR)$(installed_testdir)/$$dir"; }; \
+           echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(installed_testdir)/$$dir'"; \
+           $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(installed_testdir)/$$dir" || exit $$?; }; \
+       done
+
+uninstall-nobase_installed_testDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nobase_installed_test_DATA)'; test -n "$(installed_testdir)" || list=; \
+       $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+       dir='$(DESTDIR)$(installed_testdir)'; $(am__uninstall_files_from_dir)
 
 ID: $(am__tagged_files)
        $(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -623,6 +1194,260 @@ cscopelist-am: $(am__tagged_files)
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+         fi; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       elif test -n "$$redo_logs"; then \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
+           else \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+           fi; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
+           else \
+             color_start= color_end=; \
+           fi; \
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS) $(check_SCRIPTS) $(check_DATA)
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+array.log: array$(EXEEXT)
+       @p='array$(EXEEXT)'; \
+       b='array'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+boxed.log: boxed$(EXEEXT)
+       @p='boxed$(EXEEXT)'; \
+       b='boxed'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+builder.log: builder$(EXEEXT)
+       @p='builder$(EXEEXT)'; \
+       b='builder'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+generator.log: generator$(EXEEXT)
+       @p='generator$(EXEEXT)'; \
+       b='generator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+gvariant.log: gvariant$(EXEEXT)
+       @p='gvariant$(EXEEXT)'; \
+       b='gvariant'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+invalid.log: invalid$(EXEEXT)
+       @p='invalid$(EXEEXT)'; \
+       b='invalid'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+node.log: node$(EXEEXT)
+       @p='node$(EXEEXT)'; \
+       b='node'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+object.log: object$(EXEEXT)
+       @p='object$(EXEEXT)'; \
+       b='object'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+parser.log: parser$(EXEEXT)
+       @p='parser$(EXEEXT)'; \
+       b='parser'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+path.log: path$(EXEEXT)
+       @p='path$(EXEEXT)'; \
+       b='path'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+reader.log: reader$(EXEEXT)
+       @p='reader$(EXEEXT)'; \
+       b='reader'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+serialize-simple.log: serialize-simple$(EXEEXT)
+       @p='serialize-simple$(EXEEXT)'; \
+       b='serialize-simple'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+serialize-complex.log: serialize-complex$(EXEEXT)
+       @p='serialize-complex$(EXEEXT)'; \
+       b='serialize-complex'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+serialize-full.log: serialize-full$(EXEEXT)
+       @p='serialize-full$(EXEEXT)'; \
+       b='serialize-full'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
+
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -654,11 +1479,18 @@ distdir: $(DISTFILES)
          fi; \
        done
 check-am: all-am
-       $(MAKE) $(AM_MAKEFLAGS) check-local
-check: check-am
-all-am: Makefile $(PROGRAMS)
+       $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) \
+         $(check_SCRIPTS) $(check_DATA)
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA)
 installdirs:
-install: install-am
+       for dir in "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_testdir)" "$(DESTDIR)$(installed_test_metadir)" "$(DESTDIR)$(installed_testdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -678,8 +1510,12 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -689,9 +1525,13 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
+       clean-installed_testLTLIBRARIES clean-installed_testPROGRAMS \
+       clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \
        mostlyclean-am
 
 distclean: distclean-am
@@ -712,7 +1552,10 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-installed_testLTLIBRARIES \
+       install-installed_testPROGRAMS install-installed_testSCRIPTS \
+       install-installed_test_metaDATA \
+       install-nobase_installed_testDATA
 
 install-dvi: install-dvi-am
 
@@ -740,9 +1583,6 @@ install-ps-am:
 
 installcheck-am:
 
-maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
@@ -758,92 +1598,67 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
-       clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
-       ctags ctags-am distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
+uninstall-am: uninstall-installed_testLTLIBRARIES \
+       uninstall-installed_testPROGRAMS \
+       uninstall-installed_testSCRIPTS \
+       uninstall-installed_test_metaDATA \
+       uninstall-nobase_installed_testDATA
+
+.MAKE: all check check-am install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+       clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
+       clean-installed_testLTLIBRARIES clean-installed_testPROGRAMS \
+       clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \
+       cscopelist-am ctags ctags-am distclean distclean-compile \
+       distclean-generic distclean-libtool distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-installed_testLTLIBRARIES \
+       install-installed_testPROGRAMS install-installed_testSCRIPTS \
+       install-installed_test_metaDATA install-man \
+       install-nobase_installed_testDATA install-pdf install-pdf-am \
        install-ps install-ps-am install-strip installcheck \
        installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags tags-am uninstall uninstall-am
+       recheck tags tags-am uninstall uninstall-am \
+       uninstall-installed_testLTLIBRARIES \
+       uninstall-installed_testPROGRAMS \
+       uninstall-installed_testSCRIPTS \
+       uninstall-installed_test_metaDATA \
+       uninstall-nobase_installed_testDATA
 
+.PRECIOUS: Makefile
 
-### testing rules
 
-# test: run all tests in cwd and subdirs
-test: test-nonrecursive
-       @for subdir in $(SUBDIRS) . ; do \
-         test "$$subdir" = "." -o "$$subdir" = "po" || \
-         ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-       done
+@ENABLE_INSTALLED_TESTS_TRUE@%.test: %$(EXEEXT) Makefile
+@ENABLE_INSTALLED_TESTS_TRUE@  $(AM_V_GEN) (echo '[Test]' > $@.tmp; \
+@ENABLE_INSTALLED_TESTS_TRUE@  echo 'Type=session' >> $@.tmp; \
+@ENABLE_INSTALLED_TESTS_TRUE@  echo 'Exec=$(installed_testdir)/$<' >> $@.tmp; \
+@ENABLE_INSTALLED_TESTS_TRUE@  mv $@.tmp $@)
+
+.gitignore: Makefile.am
+       $(QUIET_GEN)if test -d "$(top_srcdir)/.git"; then \
+               ( echo "*.o" ; \
+                 echo ".gitignore" ; \
+               ) > .gitignore ; \
+               for p in $(GIT_IGNORE_FILES); do \
+                       echo "/$$p" >> .gitignore ; \
+               done \
+       fi
 
-# test-nonrecursive: run tests only in cwd
-test-nonrecursive: ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
-
-# test-report: run tests in subdirs and generate report
-# perf-report: run tests in subdirs with -m perf and generate report
-# full-report: like test-report: with -m perf and -m slow
-test-report perf-report full-report:   ${TEST_PROGS}
-       @test -z "${TEST_PROGS}" || { \
-         case $@ in \
-         test-report) test_options="-k";; \
-         perf-report) test_options="-k -m=perf";; \
-         full-report) test_options="-k -m=perf -m=slow";; \
-         esac ; \
-         if test -z "$$GTESTER_LOGDIR" ; then  \
-           ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
-         elif test -n "${TEST_PROGS}" ; then \
-           ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
-         fi ; \
-       }
-       @ ignore_logdir=true ; \
-         if test -z "$$GTESTER_LOGDIR" ; then \
-           GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
-           ignore_logdir=false ; \
-         fi ; \
-         if test -d "$(top_srcdir)/.git"; then \
-           export REVISION="`git describe`" ;  \
-         else \
-           export REVISION="$(JSON_VERSION) $(JSON_RELEASE_STATUS)" ; \
-         fi ; \
-         export TIMESTAMP=`date +%Y-%m-%dT%H:%M:%S%z` ; \
-         for subdir in $(SUBDIRS) . ; do \
-           test "$$subdir" = "." -o "$$subdir" = "po" || \
-           ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
-         done ; \
-         $$ignore_logdir || { \
-           echo '<?xml version="1.0"?>'                 > $@.xml ; \
-           echo '<report-collection>'                  >> $@.xml ; \
-           echo '<info>'                               >> $@.xml ; \
-           echo '  <package>$(PACKAGE)</package>'      >> $@.xml ; \
-           echo '  <version>$(JSON_VERSION)</version>' >> $@.xml ; \
-           echo "  <revision>$$REVISION</revision>"    >> $@.xml ; \
-           echo "  <date>$$TIMESTAMP</date>"           >> $@.xml ; \
-           echo '</info>'                              >> $@.xml ; \
-           for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
-             sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
-           done ; \
-           echo >> $@.xml ; \
-           echo '</report-collection>' >> $@.xml ; \
-           rm -rf "$$GTESTER_LOGDIR"/ ; \
-           ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
-         }
-.PHONY: test test-report perf-report full-report test-nonrecursive
-
-# run tests in cwd as part of make check
-check-local: test-nonrecursive
-
--include $(top_srcdir)/build/autotools/Makefile.am.gitignore
+gitignore: .gitignore
+
+gitignore-clean:
+       $(QUIET_RM)rm -f .gitignore
+
+.PHONY: gitignore gitignore-clean
+
+all-am: gitignore
+
+maintainer-clean: gitignore-clean
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 115e84a..98afeab 100644 (file)
@@ -144,10 +144,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
-
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/array/empty-array", test_empty_array);
index 5e0fb01..6e52e2a 100644 (file)
@@ -254,9 +254,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/boxed/serialize-property", test_serialize_boxed);
index 06a4c42..eaabb0d 100644 (file)
@@ -157,13 +157,10 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/builder/complex", test_builder_complex);
-  g_test_add_func ("/builder/complex", test_builder_empty);
+  g_test_add_func ("/builder/empty", test_builder_empty);
   g_test_add_func ("/builder/reset", test_builder_reset);
 
   return g_test_run ();
index 40ceb55..f156fde 100644 (file)
@@ -1,6 +1,4 @@
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -377,13 +375,48 @@ test_pretty (void)
   g_object_unref (parser);
 }
 
+typedef struct {
+    const gchar *str;
+    const gchar *expect;
+} FixtureString;
+
+static const FixtureString string_fixtures[] = {
+  { "abc", "\"abc\"" },
+  { "a\x7fxc", "\"a\\u007fxc\"" },
+  { "a\033xc", "\"a\\u001bxc\"" },
+  { "a\nxc", "\"a\\nxc\"" },
+  { "a\\xc", "\"a\\\\xc\"" },
+  { "Barney B\303\244r", "\"Barney B\303\244r\"" },
+};
+
+static void
+test_string_encode (gconstpointer data)
+{
+  const FixtureString *fixture = data;
+  JsonGenerator *generator = json_generator_new ();
+  JsonNode *node;
+  gsize length;
+  gchar *output;
+
+  node = json_node_init_string (json_node_alloc (), fixture->str);\
+  json_generator_set_root (generator, node);
+
+  output = json_generator_to_data (generator, &length);
+  g_assert_cmpstr (output, ==, fixture->expect);
+  g_assert_cmpuint (length, ==, strlen (fixture->expect));
+  g_free (output);
+  json_node_free (node);
+
+  g_object_unref (generator);
+}
 int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
+  gchar *escaped;
+  gchar *name;
+  gint i;
+
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/generator/empty-array", test_empty_array);
@@ -395,5 +428,14 @@ main (int   argc,
   g_test_add_func ("/generator/decimal-separator", test_decimal_separator);
   g_test_add_func ("/generator/pretty", test_pretty);
 
+  for (i = 0; i < G_N_ELEMENTS (string_fixtures); i++)
+    {
+      escaped = g_strescape (string_fixtures[i].str, NULL);
+      name = g_strdup_printf ("/generator/string/%s", escaped);
+      g_test_add_data_func (name, string_fixtures + i, test_string_encode);
+      g_free (escaped);
+      g_free (name);
+    }
+
   return g_test_run ();
 }
index c8eb143..701997d 100644 (file)
@@ -12,7 +12,7 @@ typedef struct
 
 /* each entry in this list spawns to a GVariant-to-JSON and
    JSON-to-GVariant test */
-const TestCase test_cases[] =
+static const TestCase two_way_test_cases[] =
   {
     /* boolean */
     { "/boolean", "(b)", "(true,)", "[true]" },
@@ -44,6 +44,9 @@ const TestCase test_cases[] =
     /* double */
     { "/double", "(d)", "(1.23,)", "[1.23]" },
 
+    /* double */
+    { "/double-whole", "(d)", "(123.0,)", "[123]" },
+
     /* string */
     { "/string", "(s)", "('hello world!',)", "[\"hello world!\"]" },
 
@@ -145,6 +148,19 @@ const TestCase test_cases[] =
       "[{\"true\":1,\"false\":0},[\"do\",null,\"did\"],[],null,{\"10000\":[\"yes\",\"august\"],\"0\":null}]" },
   };
 
+static const TestCase json_to_gvariant_test_cases[] =
+  {
+    { "/string-to-boolean", "(b)", "(true,)", "[\"true\"]" },
+    { "/string-to-byte", "(y)", "(byte 0xff,)", "[\"255\"]" },
+    { "/string-to-int16", "(n)", "(int16 -12345,)", "[\"-12345\"]" },
+    { "/string-to-uint16", "(q)", "(uint16 40001,)", "[\"40001\"]" },
+    { "/string-to-int32", "(i)", "(-7654321,)", "[\"-7654321\"]" },
+    { "/string-to-int64", "(x)", "(int64 -666999666999,)", "[\"-666999666999\"]" },
+    { "/string-to-uint64", "(t)", "(uint64 1999999999999999,)", "[\"1999999999999999\"]" },
+    { "/string-to-double", "(d)", "(1.23,)", "[\"1.23\"]" },
+    { "/string-to-double-whole", "(d)", "(123.0,)", "[\"123\"]" },
+  };
+
 static void
 test_gvariant_to_json (gconstpointer test_data)
 {
@@ -204,29 +220,37 @@ main (gint argc, gchar *argv[])
   TestCase test_case;
   gchar *test_name;
 
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   /* GVariant to JSON */
-  for (i = 0; i < sizeof (test_cases) / sizeof (TestCase); i++)
+  for (i = 0; i < G_N_ELEMENTS (two_way_test_cases); i++)
     {
-      test_case = test_cases[i];
+      test_case = two_way_test_cases[i];
       test_name = g_strdup_printf ("/gvariant/to-json/%s", test_case.test_name);
 
-      g_test_add_data_func (test_name, &test_cases[i], test_gvariant_to_json);
+      g_test_add_data_func (test_name, &two_way_test_cases[i], test_gvariant_to_json);
 
       g_free (test_name);
     }
 
   /* JSON to GVariant */
-  for (i = 0; i < sizeof (test_cases) / sizeof (TestCase); i++)
+  for (i = 0; i < G_N_ELEMENTS (two_way_test_cases); i++)
+    {
+      test_case = two_way_test_cases[i];
+      test_name = g_strdup_printf ("/gvariant/from-json/%s", test_case.test_name);
+
+      g_test_add_data_func (test_name, &two_way_test_cases[i], test_json_to_gvariant);
+
+      g_free (test_name);
+    }
+
+  /* JSON to GVariant one way tests */
+  for (i = 0; i < G_N_ELEMENTS (json_to_gvariant_test_cases); i++)
     {
-      test_case = test_cases[i];
+      test_case = json_to_gvariant_test_cases[i];
       test_name = g_strdup_printf ("/gvariant/from-json/%s", test_case.test_name);
 
-      g_test_add_data_func (test_name, &test_cases[i], test_json_to_gvariant);
+      g_test_add_data_func (test_name, &json_to_gvariant_test_cases[i], test_json_to_gvariant);
 
       g_free (test_name);
     }
index ad8e613..c5fad16 100644 (file)
@@ -1,6 +1,4 @@
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -145,6 +143,33 @@ test_invalid_object (gconstpointer user_data)
 }
 
 static void
+test_missing_comma (gconstpointer user_data)
+{
+  const char *json = user_data;
+  GError *error = NULL;
+  JsonParser *parser;
+  gboolean res;
+
+  parser = json_parser_new ();
+  g_assert (JSON_IS_PARSER (parser));
+
+  if (g_test_verbose ())
+    g_print ("invalid data: '%s'...", json);
+
+  res = json_parser_load_from_data (parser, json, -1, &error);
+
+  g_assert (!res);
+  g_assert_error (error, JSON_PARSER_ERROR, JSON_PARSER_ERROR_MISSING_COMMA);
+
+  if (g_test_verbose ())
+    g_print ("expected error: %s\n", error->message);
+
+  g_clear_error (&error);
+
+  g_object_unref (parser);
+}
+
+static void
 test_trailing_comma (gconstpointer user_data)
 {
   const char *json = user_data;
@@ -208,6 +233,10 @@ static const struct
   { "object-6", "{ \"a\" : 0 \"b\" : 1 }", test_invalid_object },
   { "object-7", "{ \"\" : false }", test_invalid_object },
 
+  /* missing commas */
+  { "missing-comma-1", "[ true false ]", test_missing_comma },
+  { "missing-comma-2", "{ \"foo\" : 42 \"bar\": null }", test_missing_comma },
+
   /* trailing commas */
   { "trailing-comma-1", "[ true, ]", test_trailing_comma },
   { "trailing-comma-2", "{ \"foo\" : 42, }", test_trailing_comma },
@@ -221,9 +250,6 @@ main (int   argc,
 {
   int i;
 
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   for (i = 0; i < n_test_invalid; i++)
index 1782c8e..23bda63 100644 (file)
@@ -242,13 +242,315 @@ test_gvalue_autopromotion (void)
   json_node_free (node);
 }
 
+/* Test that creating then sealing a node containing an int causes it to be
+ * immutable. */
+static void
+test_seal_int (void)
+{
+  JsonNode *node = NULL;
+
+  node = json_node_init_int (json_node_alloc (), 1);
+
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  json_node_free (node);
+}
+
+/* Test that creating then sealing a node containing a double causes it to be
+ * immutable. */
+static void
+test_seal_double (void)
+{
+  JsonNode *node = NULL;
+
+  node = json_node_init_double (json_node_alloc (), 15.2);
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  json_node_free (node);
+}
+
+/* Test that creating then sealing a node containing a boolean causes it to be
+ * immutable. */
+static void
+test_seal_boolean (void)
+{
+  JsonNode *node = NULL;
+
+  node = json_node_init_boolean (json_node_alloc (), TRUE);
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  json_node_free (node);
+}
+
+/* Test that creating then sealing a node containing a string causes it to be
+ * immutable. */
+static void
+test_seal_string (void)
+{
+  JsonNode *node = NULL;
+
+  node = json_node_init_string (json_node_alloc (), "hi there");
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  json_node_free (node);
+}
+
+/* Test that creating then sealing a node containing a null causes it to be
+ * immutable. */
+static void
+test_seal_null (void)
+{
+  JsonNode *node = NULL;
+
+  node = json_node_init_null (json_node_alloc ());
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  json_node_free (node);
+}
+
+/* Test that creating then sealing a node containing an object causes it to be
+ * immutable. */
+static void
+test_seal_object (void)
+{
+  JsonNode *node = NULL;
+  JsonObject *object = NULL;
+
+  object = json_object_new ();
+  node = json_node_init_object (json_node_alloc (), object);
+
+  g_assert_false (json_object_is_immutable (object));
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  g_assert_true (json_object_is_immutable (object));
+
+  json_node_free (node);
+  json_object_unref (object);
+}
+
+/* Test that creating then sealing a node containing an array causes it to be
+ * immutable. */
+static void
+test_seal_array (void)
+{
+  JsonNode *node = NULL;
+  JsonArray *array = NULL;
+
+  array = json_array_new ();
+  node = json_node_init_array (json_node_alloc (), array);
+
+  g_assert_false (json_array_is_immutable (array));
+  g_assert_false (json_node_is_immutable (node));
+  json_node_seal (node);
+  g_assert_true (json_node_is_immutable (node));
+  g_assert_true (json_array_is_immutable (array));
+
+  json_node_free (node);
+  json_array_unref (array);
+}
+
+/* Test that an immutable node containing an int cannot be modified. */
+static void
+test_immutable_int (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_int (json_node_alloc (), 5);
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_int (node, 1);
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_int: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing a double cannot be modified. */
+static void
+test_immutable_double (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_double (json_node_alloc (), 5.6);
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_double (node, 1.1);
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_double: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing a boolean cannot be modified. */
+static void
+test_immutable_boolean (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_boolean (json_node_alloc (), TRUE);
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_boolean (node, FALSE);
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_boolean: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing a string cannot be modified. */
+static void
+test_immutable_string (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_string (json_node_alloc (), "bonghits");
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_string (node, "asdasd");
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_string: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing an object cannot be modified. */
+static void
+test_immutable_object (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_object (json_node_alloc (), json_object_new ());
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_object (node, json_object_new ());
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_object: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing an array cannot be modified. */
+static void
+test_immutable_array (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+
+      node = json_node_init_array (json_node_alloc (), json_array_new ());
+      json_node_seal (node);
+
+      /* Boom. */
+      json_node_set_array (node, json_array_new ());
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_array: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node containing a value cannot be modified. */
+static void
+test_immutable_value (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+      GValue val = G_VALUE_INIT;
+
+      node = json_node_init_int (json_node_alloc (), 5);
+      json_node_seal (node);
+
+      /* Boom. */
+      g_value_init (&val, G_TYPE_INT);
+      g_value_set_int (&val, 50);
+      json_node_set_value (node, &val);
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_value: "
+                             "assertion '!node->immutable' failed*");
+}
+
+/* Test that an immutable node can be reparented but not to an immutable
+ * parent. */
+static void
+test_immutable_parent (void)
+{
+  if (g_test_subprocess ())
+    {
+      JsonNode *node = NULL;
+      JsonNode *parent_mutable = NULL;
+      JsonNode *parent_immutable = NULL;
+      JsonObject *object_mutable = NULL;
+      JsonObject *object_immutable = NULL;
+
+      node = json_node_init_int (json_node_alloc (), 5);
+      json_node_seal (node);
+
+      object_mutable = json_object_new ();
+      object_immutable = json_object_new ();
+
+      parent_mutable = json_node_init_object (json_node_alloc (),
+                                              object_mutable);
+      parent_immutable = json_node_init_object (json_node_alloc (),
+                                                object_immutable);
+
+      json_node_seal (parent_immutable);
+
+      /* Can we reparent the immutable node? */
+      json_object_set_member (object_mutable, "test", node);
+      json_node_set_parent (node, parent_mutable);
+
+      json_object_remove_member (object_mutable, "test");
+      json_node_set_parent (node, NULL);
+
+      /* Boom. */
+      json_node_set_parent (node, parent_immutable);
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*Json-CRITICAL **: json_node_set_parent: *");
+}
+
 int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/nodes/init/int", test_init_int);
@@ -263,6 +565,21 @@ main (int   argc,
   g_test_add_func ("/nodes/get/double", test_get_double);
   g_test_add_func ("/nodes/gvalue", test_gvalue);
   g_test_add_func ("/nodes/gvalue/autopromotion", test_gvalue_autopromotion);
+  g_test_add_func ("/nodes/seal/int", test_seal_int);
+  g_test_add_func ("/nodes/seal/double", test_seal_double);
+  g_test_add_func ("/nodes/seal/boolean", test_seal_boolean);
+  g_test_add_func ("/nodes/seal/string", test_seal_string);
+  g_test_add_func ("/nodes/seal/null", test_seal_null);
+  g_test_add_func ("/nodes/seal/object", test_seal_object);
+  g_test_add_func ("/nodes/seal/array", test_seal_array);
+  g_test_add_func ("/nodes/immutable/int", test_immutable_int);
+  g_test_add_func ("/nodes/immutable/double", test_immutable_double);
+  g_test_add_func ("/nodes/immutable/boolean", test_immutable_boolean);
+  g_test_add_func ("/nodes/immutable/string", test_immutable_string);
+  g_test_add_func ("/nodes/immutable/object", test_immutable_object);
+  g_test_add_func ("/nodes/immutable/array", test_immutable_array);
+  g_test_add_func ("/nodes/immutable/value", test_immutable_value);
+  g_test_add_func ("/nodes/immutable/parent", test_immutable_parent);
 
   return g_test_run ();
 }
index 750ab88..54b5934 100644 (file)
@@ -140,6 +140,33 @@ test_foreach_member (void)
 }
 
 static void
+test_iter (void)
+{
+  JsonObject *object = NULL;
+  TestForeachFixture fixture = { 0, };
+  JsonObjectIter iter;
+  const gchar *member_name;
+  JsonNode *member_node;
+
+  object = json_object_new ();
+
+  json_object_set_int_member (object, "integer", 42);
+  json_object_set_boolean_member (object, "boolean", TRUE);
+  json_object_set_string_member (object, "string", "hello");
+  json_object_set_double_member (object, "double", 3.14159);
+  json_object_set_null_member (object, "null");
+
+  json_object_iter_init (&iter, object);
+
+  while (json_object_iter_next (&iter, &member_name, &member_node))
+    verify_foreach (object, member_name, member_node, &fixture);
+
+  g_assert_cmpint (fixture.n_members, ==, json_object_get_size (object));
+
+  json_object_unref (object);
+}
+
+static void
 test_empty_member (void)
 {
   JsonObject *object = json_object_new ();
@@ -166,9 +193,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/object/empty-object", test_empty_object);
@@ -176,6 +200,7 @@ main (int   argc,
   g_test_add_func ("/object/set-member", test_set_member);
   g_test_add_func ("/object/remove-member", test_remove_member);
   g_test_add_func ("/object/foreach-member", test_foreach_member);
+  g_test_add_func ("/object/iter", test_iter);
   g_test_add_func ("/object/empty-member", test_empty_member);
 
   return g_test_run ();
index dc64f75..bdfbf13 100644 (file)
@@ -1,6 +1,4 @@
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -655,24 +653,33 @@ test_stream_sync (void)
   GFileInputStream *stream;
   GError *error = NULL;
   JsonNode *root;
+  JsonArray *array;
+  char *path;
 
   parser = json_parser_new ();
 
-  file = g_file_new_for_path (TESTS_DATA_DIR "/stream-load.json");
+  path = g_test_build_filename (G_TEST_DIST, "stream-load.json", NULL);
+  file = g_file_new_for_path (path);
   stream = g_file_read (file, NULL, &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
   g_assert (stream != NULL);
 
   json_parser_load_from_stream (parser, G_INPUT_STREAM (stream), NULL, &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   root = json_parser_get_root (parser);
   g_assert (root != NULL);
   g_assert (JSON_NODE_HOLDS_ARRAY (root));
 
+  array = json_node_get_array (root);
+  g_assert_cmpint (json_array_get_length (array), ==, 1);
+  g_assert (JSON_NODE_HOLDS_OBJECT (json_array_get_element (array, 0)));
+  g_assert (json_object_has_member (json_array_get_object_element (array, 0), "hello"));
+
   g_object_unref (stream);
   g_object_unref (file);
   g_object_unref (parser);
+  g_free (path);
 }
 
 static void
@@ -684,16 +691,20 @@ on_load_complete (GObject      *gobject,
   GMainLoop *main_loop = user_data;
   GError *error = NULL;
   JsonNode *root;
-  gboolean res;
+  JsonArray *array;
 
-  res = json_parser_load_from_stream_finish (parser, result, &error);
-  g_assert (res);
-  g_assert (error == NULL);
+  json_parser_load_from_stream_finish (parser, result, &error);
+  g_assert_no_error (error);
 
   root = json_parser_get_root (parser);
   g_assert (root != NULL);
   g_assert (JSON_NODE_HOLDS_ARRAY (root));
 
+  array = json_node_get_array (root);
+  g_assert_cmpint (json_array_get_length (array), ==, 1);
+  g_assert (JSON_NODE_HOLDS_OBJECT (json_array_get_element (array, 0)));
+  g_assert (json_object_has_member (json_array_get_object_element (array, 0), "hello"));
+
   g_main_loop_quit (main_loop);
 }
 
@@ -703,9 +714,13 @@ test_stream_async (void)
   GMainLoop *main_loop;
   GError *error = NULL;
   JsonParser *parser = json_parser_new ();
-  GFile *file = g_file_new_for_path (TESTS_DATA_DIR "/stream-load.json");
-  GFileInputStream *stream = g_file_read (file, NULL, &error);
+  GFile *file;
+  GFileInputStream *stream;
+  char *path;
 
+  path = g_test_build_filename (G_TEST_DIST, "stream-load.json", NULL);
+  file = g_file_new_for_path (path);
+  stream = g_file_read (file, NULL, &error);
   g_assert (error == NULL);
   g_assert (stream != NULL);
 
@@ -721,15 +736,13 @@ test_stream_async (void)
   g_object_unref (stream);
   g_object_unref (file);
   g_object_unref (parser);
+  g_free (path);
 }
 
 int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/parser/empty-string", test_empty);
index 2b7c1f2..0dce631 100644 (file)
@@ -39,131 +39,224 @@ static const struct {
   const char *desc;
   const char *expr;
   const char *res;
+
+  guint is_valid : 1;
+
+  JsonPathError error_code;
 } test_expressions[] = {
   {
+    "INVALID: invalid first character",
+    "/",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: Invalid character following root",
+    "$ponies",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: missing member name or wildcard after dot",
+    "$.store.",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: Malformed slice (missing step)",
+    "$.store.book[0:1:]",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: Malformed set",
+    "$.store.book[0,1~2]",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: Malformed array notation",
+    "${'store'}",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
+    "INVALID: Malformed slice (invalid separator)",
+    "$.store.book[0~2]",
+    NULL,
+    FALSE,
+    JSON_PATH_ERROR_INVALID_QUERY,
+  },
+  {
     "Title of the first book in the store, using objct notation.",
     "$.store.book[0].title",
-    "[\"Sayings of the Century\"]"
+    "[\"Sayings of the Century\"]",
+    TRUE,
   },
   {
     "Title of the first book in the store, using array notation.",
     "$['store']['book'][0]['title']",
-    "[\"Sayings of the Century\"]"
+    "[\"Sayings of the Century\"]",
+    TRUE,
   },
   {
     "All the authors from the every book.",
     "$.store.book[*].author",
-    "[\"Nigel Rees\",\"Evelyn Waugh\",\"Herman Melville\",\"J. R. R. Tolkien\"]"
+    "[\"Nigel Rees\",\"Evelyn Waugh\",\"Herman Melville\",\"J. R. R. Tolkien\"]",
+    TRUE,
   },
   {
     "All the authors.",
     "$..author",
-    "[\"Nigel Rees\",\"Evelyn Waugh\",\"Herman Melville\",\"J. R. R. Tolkien\"]"
+    "[\"Nigel Rees\",\"Evelyn Waugh\",\"Herman Melville\",\"J. R. R. Tolkien\"]",
+    TRUE,
   },
   {
     "Everything inside the store.",
     "$.store.*",
-    NULL
+    NULL,
+    TRUE,
   },
   {
     "All the prices in the store.",
     "$.store..price",
-    "[\"8.95\",\"12.99\",\"8.99\",\"22.99\",\"19.95\"]"
+    "[\"8.95\",\"12.99\",\"8.99\",\"22.99\",\"19.95\"]",
+    TRUE,
   },
   {
     "The third book.",
     "$..book[2]",
-    "[{\"category\":\"fiction\",\"author\":\"Herman Melville\",\"title\":\"Moby Dick\",\"isbn\":\"0-553-21311-3\",\"price\":\"8.99\"}]"
+    "[{\"category\":\"fiction\",\"author\":\"Herman Melville\",\"title\":\"Moby Dick\",\"isbn\":\"0-553-21311-3\",\"price\":\"8.99\"}]",
+    TRUE,
   },
   {
     "The last book.",
     "$..book[-1:]",
-    "[{\"category\":\"fiction\",\"author\":\"J. R. R. Tolkien\",\"title\":\"The Lord of the Rings\",\"isbn\":\"0-395-19395-8\",\"price\":\"22.99\"}]"
+    "[{\"category\":\"fiction\",\"author\":\"J. R. R. Tolkien\",\"title\":\"The Lord of the Rings\",\"isbn\":\"0-395-19395-8\",\"price\":\"22.99\"}]",
+    TRUE,
   },
   {
     "The first two books.",
     "$..book[0,1]",
-    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"}]"
+    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"}]",
+    TRUE,
   },
   {
     "The first two books, using a slice.",
     "$..book[:2]",
-    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"}]"
+    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"}]",
+    TRUE,
   },
   {
     "All the books.",
     "$['store']['book'][*]",
-    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"},{\"category\":\"fiction\",\"author\":\"Herman Melville\",\"title\":\"Moby Dick\",\"isbn\":\"0-553-21311-3\",\"price\":\"8.99\"},{\"category\":\"fiction\",\"author\":\"J. R. R. Tolkien\",\"title\":\"The Lord of the Rings\",\"isbn\":\"0-395-19395-8\",\"price\":\"22.99\"}]"
+    "[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"},{\"category\":\"fiction\",\"author\":\"Herman Melville\",\"title\":\"Moby Dick\",\"isbn\":\"0-553-21311-3\",\"price\":\"8.99\"},{\"category\":\"fiction\",\"author\":\"J. R. R. Tolkien\",\"title\":\"The Lord of the Rings\",\"isbn\":\"0-395-19395-8\",\"price\":\"22.99\"}]",
+    TRUE,
   },
   {
     "All the members of the bicycle object.",
     "$.store.bicycle.*",
-    "[\"red\",\"19.95\"]"
+    "[\"red\",\"19.95\"]",
+    TRUE,
   },
+  {
+    "The root node.",
+    "$",
+    "[{\"store\":{\"book\":[{\"category\":\"reference\",\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"price\":\"8.95\"},"
+                           "{\"category\":\"fiction\",\"author\":\"Evelyn Waugh\",\"title\":\"Sword of Honour\",\"price\":\"12.99\"},"
+                           "{\"category\":\"fiction\",\"author\":\"Herman Melville\",\"title\":\"Moby Dick\",\"isbn\":\"0-553-21311-3\",\"price\":\"8.99\"},"
+                           "{\"category\":\"fiction\",\"author\":\"J. R. R. Tolkien\",\"title\":\"The Lord of the Rings\",\"isbn\":\"0-395-19395-8\",\"price\":\"22.99\"}],"
+                 "\"bicycle\":{\"color\":\"red\",\"price\":\"19.95\"}}}]",
+    TRUE,
+  }
 };
 
 static void
-test_expression (void)
+path_expressions_valid (gconstpointer data)
 {
+  const int index_ = GPOINTER_TO_INT (data);
+  const char *expr = test_expressions[index_].expr;
+  const char *desc = test_expressions[index_].desc;
+
   JsonPath *path = json_path_new ();
-  int i;
+  GError *error = NULL;
 
-  for (i = 0; i < G_N_ELEMENTS (test_expressions); i++)
-    {
-      const char *expr = test_expressions[i].expr;
-      GError *error = NULL;
+  if (g_test_verbose ())
+    g_print ("* %s ('%s')\n", desc, expr);
 
-      g_assert (json_path_compile (path, expr, &error));
-      g_assert_no_error (error);
-    }
+  g_assert (json_path_compile (path, expr, &error));
+  g_assert_no_error (error);
+
+  g_object_unref (path);
+}
+
+static void
+path_expressions_invalid (gconstpointer data)
+{
+  const int index_ = GPOINTER_TO_INT (data);
+  const char *expr = test_expressions[index_].expr;
+  const char *desc = test_expressions[index_].desc;
+  const JsonPathError code = test_expressions[index_].error_code;
+
+  JsonPath *path = json_path_new ();
+  GError *error = NULL;
+
+  if (g_test_verbose ())
+    g_print ("* %s ('%s')\n", desc, expr);
+
+
+  g_assert (!json_path_compile (path, expr, &error));
+  g_assert_error (error, JSON_PATH_ERROR, code);
 
   g_object_unref (path);
 }
 
 static void
-test_match (void)
+path_match (gconstpointer data)
 {
+  const int index_ = GPOINTER_TO_INT (data);
+  const char *desc = test_expressions[index_].desc;
+  const char *expr = test_expressions[index_].expr;
+  const char *res  = test_expressions[index_].res;
+
   JsonParser *parser = json_parser_new ();
   JsonGenerator *gen = json_generator_new ();
   JsonPath *path = json_path_new ();
   JsonNode *root;
-  int i;
+  JsonNode *matches;
+  char *str;
 
   json_parser_load_from_data (parser, test_json, -1, NULL);
   root = json_parser_get_root (parser);
 
-  for (i = 0; i < G_N_ELEMENTS (test_expressions); i++)
-    {
-      const char *desc = test_expressions[i].desc;
-      const char *expr = test_expressions[i].expr;
-      const char *res  = test_expressions[i].res;
-      JsonNode *matches;
-      char *str;
-
-      if (res == NULL || *res == '\0')
-        continue;
-
-      g_assert (json_path_compile (path, expr, NULL));
+  g_assert (json_path_compile (path, expr, NULL));
 
-      matches = json_path_match (path, root);
-      g_assert (JSON_NODE_HOLDS_ARRAY (matches));
+  matches = json_path_match (path, root);
+  g_assert (JSON_NODE_HOLDS_ARRAY (matches));
 
-      json_generator_set_root (gen, matches);
-      str = json_generator_to_data (gen, NULL);
+  json_generator_set_root (gen, matches);
+  str = json_generator_to_data (gen, NULL);
 
-      if (g_test_verbose ())
-        {
-          g_print ("* expr[%02d]: %s ('%s') =>\n"
-                   "- result:   %s\n"
-                   "- expected: %s\n",
-                   i, desc, expr, str, res);
-        }
+  if (g_test_verbose ())
+    {
+      g_print ("* %s ('%s') =>\n"
+               "- result:   %s\n"
+               "- expected: %s\n",
+               desc, expr,
+               str,
+               res);
+    }
 
-      g_assert_cmpstr (str, ==, res);
+  g_assert_cmpstr (str, ==, res);
 
-      g_free (str);
-      json_node_free (matches);
-    }
+  g_free (str);
+  json_node_free (matches);
 
   g_object_unref (parser);
   g_object_unref (path);
@@ -174,14 +267,52 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
+  int i, j;
+
   g_test_init (&argc, &argv, NULL);
   g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=");
 
-  g_test_add_func ("/path/expressions", test_expression);
-  g_test_add_func ("/path/match", test_match);
+  for (i = 0, j = 1; i < G_N_ELEMENTS (test_expressions); i++)
+    {
+      char *path;
+
+      if (!test_expressions[i].is_valid)
+        continue;
+
+      path = g_strdup_printf ("/path/expressions/valid/%d", j++);
+
+      g_test_add_data_func (path, GINT_TO_POINTER (i), path_expressions_valid);
+
+      g_free (path);
+    }
+
+  for (i = 0, j = 1; i < G_N_ELEMENTS (test_expressions); i++)
+    {
+      char *path;
+
+      if (test_expressions[i].is_valid)
+        continue;
+
+      path = g_strdup_printf ("/path/expressions/invalid/%d", j++);
+
+      g_test_add_data_func (path, GINT_TO_POINTER (i), path_expressions_invalid);
+
+      g_free (path);
+    }
+
+  for (i = 0, j = 1; i < G_N_ELEMENTS (test_expressions); i++)
+    {
+      char *path;
+
+      if (!test_expressions[i].is_valid || test_expressions[i].res == NULL)
+        continue;
+
+      path = g_strdup_printf ("/path/match/%d", j++);
+
+      g_test_add_data_func (path, GINT_TO_POINTER (i), path_match);
+
+      g_free (path);
+    }
 
   return g_test_run ();
 }
index 2ed90d6..79f50e2 100644 (file)
@@ -11,6 +11,9 @@ static const gchar *test_base_array_data =
 static const gchar *test_base_object_data =
 "{ \"text\" : \"hello, world!\", \"foo\" : null, \"blah\" : 47, \"double\" : 42.47 }";
 
+static const gchar *test_reader_level_data =
+" { \"list\": { \"181195771\": { \"given_url\": \"http://www.gnome.org/json-glib-test\" } } }";
+
 static const gchar *expected_member_name[] = {
   "text",
   "foo",
@@ -133,18 +136,68 @@ test_base_array (void)
   g_object_unref (reader);
 }
 
+static void
+test_reader_level (void)
+{
+  JsonParser *parser = json_parser_new ();
+  JsonReader *reader = json_reader_new (NULL);
+  GError *error = NULL;
+  char **members;
+
+  json_parser_load_from_data (parser, test_reader_level_data, -1, &error);
+  g_assert (error == NULL);
+
+  json_reader_set_root (reader, json_parser_get_root (parser));
+
+  g_assert (json_reader_count_members (reader) > 0);
+
+  /* Grab the list */
+  g_assert (json_reader_read_member (reader, "list"));
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "list");
+
+  members = json_reader_list_members (reader);
+  g_assert (members != NULL);
+  g_strfreev (members);
+
+  g_assert (json_reader_read_member (reader, "181195771"));
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "181195771");
+
+  g_assert (!json_reader_read_member (reader, "resolved_url"));
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, NULL);
+  g_assert (json_reader_get_error (reader) != NULL);
+  json_reader_end_member (reader);
+
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "181195771");
+
+  g_assert (json_reader_read_member (reader, "given_url"));
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "given_url");
+  g_assert_cmpstr (json_reader_get_string_value (reader), ==, "http://www.gnome.org/json-glib-test");
+  json_reader_end_member (reader);
+
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "181195771");
+
+  json_reader_end_member (reader);
+
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, "list");
+
+  json_reader_end_member (reader);
+
+  g_assert_cmpstr (json_reader_get_member_name (reader), ==, NULL);
+
+  g_clear_object (&reader);
+  g_clear_object (&parser);
+}
+
 int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
   g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=");
 
   g_test_add_func ("/reader/base-array", test_base_array);
   g_test_add_func ("/reader/base-object", test_base_object);
+  g_test_add_func ("/reader/level", test_reader_level);
 
   return g_test_run ();
 }
index 7b26da5..9da8dd1 100644 (file)
@@ -301,9 +301,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/serialize/gobject-boxed", test_serialize);
index 88388ef..dd5da7a 100644 (file)
@@ -446,9 +446,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/deserialize/json-to-gobject", test_deserialize);
index 89611f7..e2e7be2 100644 (file)
@@ -157,9 +157,6 @@ int
 main (int   argc,
       char *argv[])
 {
-#if !GLIB_CHECK_VERSION (2, 35, 1)
-  g_type_init ();
-#endif
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/serialize/gobject", test_serialize);
index 6d67667..8868a19 100644 (file)
@@ -1,4 +1,6 @@
 # keep sorted alphabetically!
+json-glib/json-glib-format.c
+json-glib/json-glib-validate.c
 json-glib/json-gobject.c
 json-glib/json-gvariant.c
 json-glib/json-parser.c
index 96dde4f..0f5ce4c 100644 (file)
Binary files a/po/as.gmo and b/po/as.gmo differ
index 7188a13..3ec5b7c 100644 (file)
--- a/po/as.po
+++ b/po/as.po
@@ -2,16 +2,16 @@
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 #
-# Nilamdyuti Goswami <ngoswami@redhat.com>, 2012.
+# Nilamdyuti Goswami <ngoswami@redhat.com>, 2012, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-26 15:38+0530\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-08-20 13:18+0530\n"
 "Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
-"Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
+"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
 "Language: as\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,140 +19,217 @@ msgstr ""
 "X-Generator: Lokalize 1.5\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "আউটপুট ধূনীয়া কৰক"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "ইণ্ডেন্টেষণ স্থানসমূহ"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: ফাইল খোলোতে ত্ৰুটি: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: ফাইল বিশ্লেষণ কৰোতে ত্ৰুটি: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: stdout লৈ লিখোতে ত্ৰুটি"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: বন্ধ কৰোতে ত্ৰুটি: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ফাইল"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON ফাইলসমূহক ফৰমেট কৰক।"
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format এ JSON সম্পদসমূহক ফৰমেট কৰে।"
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "কমান্ডশাৰী বিকল্পসমূহ বিশ্লেষণ কৰোতে ত্ৰুটি: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "অধিক তথ্যৰ বাবে \"%s --help\" চেষ্টা কৰক।"
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: সন্ধানহীন ফাইলসমূহ"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON ফাইলসমূহ সত্যাপন কৰক।"
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate এ প্ৰদান কৰা URl ত JSON তথ্য সত্যাপন কৰে।"
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "এটা JSON আশা কৰা হৈছে, কিন্তু ৰুট ন'ডৰ ধৰণ '%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON অৱস্থাত অপ্ৰত্যাশিত ধৰণ '%s'"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
-msgstr "à¦\8fà¦\9fা à¦\9fিà¦\89পà§\81লৰ à¦¸à§\88তà§\87 à¦¸à¦\82à¦\97ত à¦¹à¦¬à¦²à§\87 JSON à¦\8fৰà§\87ত à¦\95িà¦\9bà§\81মান à¦\89পাদান à¦¸à¦¨à§\8dধানহিন"
+msgstr "à¦\8fà¦\9fা à¦\9fিà¦\89পà§\81লৰ à¦¸à§\88তà§\87 à¦¸à¦\82à¦\97ত à¦¹à¦¬à¦²à§\87 JSON à¦\8fৰà§\87ত à¦\95িà¦\9bà§\81মান à¦\89পাদান à¦¸à¦¨à§\8dধানহà§\80ন"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "GVariant à¦\9fিà¦\89পà§\81ল à¦§à§°à¦£à¦¤ à¦¬à¦¨à§\8dধৰ à¦\9aিহà§\8dন ')' à¦¸à¦¨à§\8dধানহিন"
+msgstr "GVariant à¦\9fিà¦\89পà§\81ল à¦§à§°à¦£à¦¤ à¦¬à¦¨à§\8dধৰ à¦\9aিহà§\8dন ')' à¦¸à¦¨à§\8dধানহà§\80ন"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON এৰেত অপ্ৰত্যাশিত অতিৰিক্ত উপাদান"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant লে পৰিবৰ্তন কৰোতে অবৈধ স্ট্ৰিং মান"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "এটা GVariant অভিধান প্ৰবিষ্টিয়ে কেৱল এটা সদস্যৰ সৈতে এটা JSON অবজেক্ট আশা কৰে"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant শ্ৰেণী '%c' সমৰ্থিত নহয়"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "অবৈধ GVariant স্বাক্ষৰ"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON তথ্য ৰিক্ত"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: বিশ্লেষণ ত্ৰুটি: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON তথ্য UTF-8 এনক'ডেড হব লাগিব"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath অভিব্যক্তিত কেৱল এটা ৰুট ন'ডৰ অনুমতি আছে"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "ৰুট ন'ড অবৈধ আখৰ '%c' দ্বাৰা অনুকৰণ কৰা হৈছে"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ". আখৰৰ পিছত সন্ধানহীন সদস্য নাম অথবা ৱাইল্ডকাৰ্ড"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "স্খলিত স্লাইচ অভিব্যক্তি '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "অবৈধ সংহতি বিৱৰণ '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "অবৈধ স্লাইচ বিৱৰণ '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "অভৈধ এৰে সূচী বিৱৰণ '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "অবৈধ প্ৰথম আখৰ '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "বৰ্তমান ন'ডৰ ধৰণ '%s', কিন্তু এটা এৰে অথবা এটা অবজেক্ট আশা কৰা হৈছিল।"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "সূচী '%d' বৰ্তমান অৱস্থানত এৰেৰ আকাৰতকে অধিক।"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "সূচী '%d' বৰ্তমান অৱস্থানত অবজেক্টৰ আকাৰতকে ডাঙৰ।"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "বৰ্তমান অৱস্থানত কোনো ন'ড উপলব্ধ নাই"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "বৰ্তমান অৱস্থানত এটা '%s' আছে কিন্তু এটা এৰে নাই"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "বৰ্তমান ন'ডৰ ধৰণ '%s', কিন্তু এটা অবজেক্ট আশা কৰা হৈছিল।"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "সদস্য '%s' বৰ্তমান অৱস্থানৰ অবজেক্টত বিৱৰিত নহয়।"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "বৰ্তমান অৱস্থানত এটা '%s' আছে কিন্তু এটা অবজেক্ট নাই"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "বৰ্তমান অৱস্থানত এটা '%s' আছে কিন্তু এটা মান নাই"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "বৰ্তমান অৱস্থানত এটা স্ট্ৰিং ধৰণ নাই"
 
index 4eaf169..2cdeec5 100644 (file)
Binary files a/po/bg.gmo and b/po/bg.gmo differ
index c4cd920..82f1c1a 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-01-08 21:45+0200\n"
 "Last-Translator: Ivaylo Valkov <ivaylo@e-valkov.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -18,140 +18,217 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Очакваха се данни в JSON, но кореновият елемент е от вида „%s“"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Неочакван вид „%s“ във възел на JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr ""
 "Липсват елементи в масив на JSON. Това пречи на използването му и като "
 "списък."
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Липсва затварящият символ „)“ в списъка на GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Неочаквани допълнителни елементи в масив на JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Неправилно преобразуване от низ в GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Речникът на GVariant очаква данни в JSON само с един член"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Класът на GVariant „%c“ не се поддържа"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Грешен подпис за вида GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Няма данни в JSON"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Грешка при анализиране: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Позволен е само един коренов възел в изрази от вида „JSONPath“"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Символът „%c“ след кореновия възел е грешен"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Неправилен израз за отрязък: „%*s“"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Неправилна дефиниция за множество „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Неправилна дефиниция за отрязък: „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Неправилна дефиниция за индекс на масив „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Възелът е от вида „%s“. Очакваше се масив или обект."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Индексът „%d“ е по-голям от броя на елементите в масива."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Индексът „%d“ е по-голям от броя на елементите в обекта."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Липсва възел на тази позиция"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "На тази позиция трябва да има масив, а не „%s“"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Възелът е от вида „%s“. Очакваше се обект."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Членът „%s“ не е дефиниран на тази позиция в обекта."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "На тази позиция трябва да има обект, а не „%s“"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "На тази позиция трябва да има стойност, а не „%s“"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "На тази позиция няма низ"
index 4f909d3..817de21 100644 (file)
Binary files a/po/bn_IN.gmo and b/po/bn_IN.gmo differ
index 0df707c..e274d32 100644 (file)
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-09-23 11:44+0530\n"
 "Last-Translator: Sayak Sarkar <sayak.bugsmith@gmail.com>\n"
 "Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n"
@@ -19,138 +19,215 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Lokalize 1.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: পার্স ত্রুটি: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "একটি JSON বস্তুর প্রত্যাশা করা হচ্ছে, কিন্তু রুট নোড টাইপ হল `%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON নোডের মধ্যে অপ্রত্যাশিত টাইপ '%s'"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON অ্যারের মধ্যে অনুপস্থিত উপাদানের একটি tuple বর্নিত"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant tuple টাইপে শেষ চিহ্ন ')' অনুপস্থিত"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON অ্যারের মধ্যে অপ্রত্যাশিত অতিরিক্ত উপাদানসমূহ"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant এর রূপান্তরিকরণে স্ট্রিং-এর মান অবৈধ"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "একটি GVariant অভিধান এন্ট্রি এক সদস্যের সঙ্গে ঠিক একটি JSON বস্তুর আশা করে"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant ক্লাস '%c' সমর্থিত নয়"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "অবৈধ GVariant স্বাক্ষর"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON তথ্য খালি"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: পার্স ত্রুটি: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "কেবলমাত্র একটি রুট নোড একটি JSONPath অভিব্যক্তিতে অনুমোদিত করা হয়"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "রুট নোড অবৈধ অক্ষর '%c' দ্বারা অনুসরিত"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "ত্রুটিপূর্ণ স্লাইস্ অভিব্যক্তি '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "অবৈধ সেট সংজ্ঞা '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "অবৈধ স্লাইস্ সংজ্ঞা '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "অবৈধ অ্যারের সূচক সংজ্ঞা '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "বর্তমান নোড '%s' ধরনের, কিন্তু একটি অ্যারে অথবা কোনো বস্তু প্রত্যাশিত ছিল।"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "সূচক '%d' বর্তমান অবস্থান এ অ্যারের মাপের চেয়ে বেশী।"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "সূচক '% d' বর্তমান অবস্থানে বস্তুর আকারের চেয়ে বৃহত্তর।"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "বর্তমান অবস্থানে কোন নোড উপলব্ধ নয়"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "বর্তমান অবস্থানে একটি অ্যারের জায়গায় '%s'  উপস্থিত"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "বর্তমান নোড '%s' ধরনের, কিন্তু একটি বস্তু প্রত্যাশিত ছিল।"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "'%s' সদস্য বর্তমান অবস্থানে অবজেক্টে সংজ্ঞায়িত করা নেই।"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "বর্তমান অবস্থানে একটি বস্তুর জায়গায় '%s'  উপস্থিত"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "বর্তমান অবস্থানে একটি মানের জায়গায় '%s'  উপস্থিত"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "বর্তমান অবস্থানে কোন স্ট্রিং নেই"
diff --git a/po/bs.gmo b/po/bs.gmo
new file mode 100644 (file)
index 0000000..d9cd618
Binary files /dev/null and b/po/bs.gmo differ
diff --git a/po/bs.po b/po/bs.po
new file mode 100644 (file)
index 0000000..1439c0f
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,228 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-02-04 15:19+0000\n"
+"Last-Translator: Samir Ribić <Unknown>\n"
+"Language-Team: Bosnian <bs@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2015-02-05 06:46+0000\n"
+"X-Generator: Launchpad (build 17331)\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Uljepšati izlaz"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Mjesta indentacije"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: greška pri otvaranju datoteke: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: greška pri analizi datopteke: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: greška pri pisanju stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: greška pri zatvaranju: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatirati JSON datoteke."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatira JSON resurse."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Greška u prosljeđivanju opcija komandne linije: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Pokušajte \"%s --help\" za više informacija."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: datoteke koje nedostaju"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Potvrditi JSON datoteke."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate potvrđuje JSON podatke na zadatom URI-u."
+
+#: json-glib/json-gobject.c:943
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgstr "Očekivan JSON objekat, ali je korijenski čvor tipa `%s'"
+
+#: json-glib/json-gvariant.c:523
+#, c-format
+msgid "Unexpected type '%s' in JSON node"
+msgstr "Neočekivani tip `%s' u JSON čvoru"
+
+#: json-glib/json-gvariant.c:593
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Nedostaju elementi u JSON nizu kako bi formirali/činili n-torku"
+
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgstr "Nedostaje simbol zatvaranja ')' u GVariant tipu n-torke"
+
+#: json-glib/json-gvariant.c:629
+msgid "Unexpected extra elements in JSON array"
+msgstr "Neočekivani dodatni elementi u JSON nizu"
+
+#: json-glib/json-gvariant.c:908
+msgid "Invalid string value converting to GVariant"
+msgstr "Pogrešna stringovna vrijednost konvertira se u GVariant"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr "GVariant unos u rječnik očekuje JSON objekat sa tačno jednim članom"
+
+#: json-glib/json-gvariant.c:1248
+#, c-format
+msgid "GVariant class '%c' not supported"
+msgstr "GVariant klasa '%c' nije podržana"
+
+#: json-glib/json-gvariant.c:1296
+msgid "Invalid GVariant signature"
+msgstr "Pogrešan GVariant potpis"
+
+#: json-glib/json-gvariant.c:1344
+msgid "JSON data is empty"
+msgstr "JSON podaci su prazni"
+
+#: json-glib/json-parser.c:914
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: Greška u analizi: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON podaci moraju biti UTF-8 kodirani"
+
+#: json-glib/json-path.c:388
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Samo jedan korijenski čvor je dozvoljen u JSONPath izrazu"
+
+#: json-glib/json-path.c:397
+#, c-format
+msgid "Root node followed by invalid character '%c'"
+msgstr "Korijenski čvor prati pogrešan znak '%c'"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "NEdostaje člansko ime ili zamjenski znak . poslije"
+
+#: json-glib/json-path.c:511
+#, c-format
+msgid "Malformed slice expression '%*s'"
+msgstr "Deformirani izraz isječka '%*s'"
+
+#: json-glib/json-path.c:555
+#, c-format
+msgid "Invalid set definition '%*s'"
+msgstr "Pogrešna definicija skupa '%*s'"
+
+#: json-glib/json-path.c:608
+#, c-format
+msgid "Invalid slice definition '%*s'"
+msgstr "Pogrešna definicija isječka '%*s'"
+
+#: json-glib/json-path.c:636
+#, c-format
+msgid "Invalid array index definition '%*s'"
+msgstr "Pogrešna definicija indeksa niza '%*s'"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Nevažeći prvi znak '%c'"
+
+#: json-glib/json-reader.c:473
+#, c-format
+msgid ""
+"The current node is of type '%s', but an array or an object was expected."
+msgstr "Trenutni čvor je tipa '%s', ali je očekivan ili niz ili objekat."
+
+#: json-glib/json-reader.c:485
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the array at the current position."
+msgstr "Indeks '%d' je veći od veličine niza na trenutnoj poziciji."
+
+#: json-glib/json-reader.c:502
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+msgstr "Indeks '%d' je veći od veličine objekta na trenutnoj poziciji."
+
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
+msgid "No node available at the current position"
+msgstr "Nema raspoloživog čvora na trenutnoj poziciji."
+
+#: json-glib/json-reader.c:593
+#, c-format
+msgid "The current position holds a '%s' and not an array"
+msgstr "Trenutna pozicija sadrži '%s', a ne niz."
+
+#: json-glib/json-reader.c:669
+#, c-format
+msgid "The current node is of type '%s', but an object was expected."
+msgstr "Trenutni čvor je tipa '%s', a očekivan je objekt."
+
+#: json-glib/json-reader.c:676
+#, c-format
+msgid "The member '%s' is not defined in the object at the current position."
+msgstr "Član '%s' nije definiran u objektu na trenutnoj poziciji."
+
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
+#, c-format
+msgid "The current position holds a '%s' and not an object"
+msgstr "Trenutna pozicija sadrži '%s' a ne objekt."
+
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
+#, c-format
+msgid "The current position holds a '%s' and not a value"
+msgstr "Trenutna pozicija sadrži '%s', a ne vrijednost"
+
+#: json-glib/json-reader.c:970
+msgid "The current position does not hold a string type"
+msgstr "Trenutna pozicija ne sadrži stringovni tip vrijednosti"
index 1ba7ebb..98532ef 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index 63128da..f8caee6 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,15 +1,15 @@
 # Catalan translation for json-glib.
 # Copyright (C) 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the json-glib package.
-# Gil Forcada <gilforcada@guifi.net>, 2012, 2013.
+# Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-21 00:26+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-22 21:47+0100\n"
 "Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
 "Language-Team: Catalan <tradgnome@softcatala.org>\n"
 "Language: ca\n"
@@ -18,86 +18,164 @@ msgstr ""
 "Content-Transfer-Encoding: 8bits\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Formata la sortida"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espais de sagnat"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: s'ha produït un error en obrir el fitxer: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: s'ha produït un error en analitzar el fitxer: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: s'ha produït un error en escriure a la sortida estàndard"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: s'ha produït un error en tancar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FITXER"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formata fitxers JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "El json-glib-format formata recursos JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+"S'ha produït un error en analitzar les opcions de la línia d'ordres: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Per a més informació proveu «%s --help»."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: manquen els fitxers"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Valida fitxers JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "El json-glib-validate valida les dades JSON de l'URI donat."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "S'esperava un objecte JSON, però el node arrel és del tipus «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "No s'esperava el tipus «%s» en un node de JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Manquen elements en la matriu de JSON perquè siguin una tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Manca el símbol de tancament «)» pel tipus de tupla de GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "No s'esperaven elements extra en la matriu de JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "La cadena no es pot convertir a GVariant, la conversió no és vàlida"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Un diccionari de GVariant requereix un objecte de JSON amb un sol membre"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "La classe «%c» de GVariant no es pot utilitzar"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "La signatura de GVariant no és vàlida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "No hi ha dades de JSON"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: error en l'anàlisi: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Les dades JSON han d'estar codificades amb UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Només es pot utilitzar un node arrel en una expressió JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "El caràcter «%c» que segueix el node arrel no és vàlid"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Manca el nom del membre o un comodí després del caràcter «.»"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "L'expressió de tallat «%*s» no està ben formatada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "La definició del conjunt «%*s» no és vàlida"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "La definició del tallat «%*s» no és vàlida"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "La definició de l'índex de la matriu «%*s» no és vàlida"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "El primer caràcter «%c» no és vàlid"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
@@ -105,54 +183,54 @@ msgstr ""
 "El node actual és de tipus «%s», però s'esperava una matriu, o bé, un "
 "objecte."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "L'índex «%d» és més gran que la mida de la matriu a la posició actual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "L'índex «%d» és més gran que la mida de l'objecte a la posició actual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "No hi ha cap node disponible a la posició actual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "A la posició actual hi ha un «%s» i no una matriu"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "El node actual és de tipus «%s», però s'esperava un objecte."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "El membre «%s» no està definit a l'objecte de la posició actual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "A la posició actual hi ha un «%s» i no un objecte"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "A la posició actual hi ha un «%s» i no un valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "A la posició actual no hi ha una cadena"
index bd7f009..a1d2881 100644 (file)
Binary files a/po/ca@valencia.gmo and b/po/ca@valencia.gmo differ
index 8c99edf..c6195a4 100644 (file)
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-01-21 00:26+0100\n"
 "Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
 "Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -18,86 +18,163 @@ msgstr ""
 "Content-Transfer-Encoding: 8bits\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "S'esperava un objecte JSON, però el node arrel és del tipus «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "No s'esperava el tipus «%s» en un node de JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Manquen elements en la matriu de JSON perquè siguen una tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Manca el símbol de tancament «)» pel tipus de tupla de GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "No s'esperaven elements extra en la matriu de JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "La cadena no es pot convertir a GVariant, la conversió no és vàlida"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Un diccionari de GVariant requereix un objecte de JSON amb un sol membre"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "La classe «%c» de GVariant no es pot utilitzar"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "La signatura de GVariant no és vàlida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "No hi ha dades de JSON"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: error en l'anàlisi: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Només es pot utilitzar un node arrel en una expressió JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "El caràcter «%c» que segueix el node arrel no és vàlid"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "L'expressió de tallat «%*s» no està ben formatada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "La definició del conjunt «%*s» no és vàlida"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "La definició del tallat «%*s» no és vàlida"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "La definició de l'índex de la matriu «%*s» no és vàlida"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
@@ -105,54 +182,54 @@ msgstr ""
 "El node actual és de tipus «%s», però s'esperava una matriu, o bé, un "
 "objecte."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "L'índex «%d» és més gran que la mida de la matriu a la posició actual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "L'índex «%d» és més gran que la mida de l'objecte a la posició actual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "No hi ha cap node disponible a la posició actual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "A la posició actual hi ha un «%s» i no una matriu"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "El node actual és de tipus «%s», però s'esperava un objecte."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "El membre «%s» no està definit a l'objecte de la posició actual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "A la posició actual hi ha un «%s» i no un objecte"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "A la posició actual hi ha un «%s» i no un valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "A la posició actual no hi ha una cadena"
index 4db7231..503d75e 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index f10fbc4..4ba87d2 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,16 +1,15 @@
 # Czech translation for json-glib.
 # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-#
-# Marek Černocký <marek@manet.cz>, 2011, 2012.
+# Marek Černocký <marek@manet.cz>, 2011, 2012, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-28 11:13+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-01-18 22:45+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
 "Language: cs\n"
@@ -18,139 +17,217 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Lépe upravit výstup"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Mezery pro odsazení"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: chyba při otevírání souboru: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: chyba při analýze souboru: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: chyba při zápisu do standardního výstupu"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: chyba při zavírání: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "SOUBOR"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formátovat soubory JSON."
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formátuje prostředky JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Chyba při zpracování přepínačů příkazového řádku: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Pro více informací zkuste použít „%s --help“."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: schází soubory"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Ověřit platnost souborů JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate ověřuje platnost dat JSON na zadané adrese URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Očekává se objekt JSON, ale kořenový uzel je typu „%s“"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Neočekávaný typ „%s“ v uzlu JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Schází prvky v poli JSON, aby to byla n-tice"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Schází uzavírací symbol „)“ v typu n-tice GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Neočekávané dodatečné prvky v poli JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Neplatná hodnota typu řetězec převáděná na GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Záznam slovníku GVariant očekává objekt JSON s právě jedním členem"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Třída GVariant „%c“ není podporována"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Neplatná signatura GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Data JSON jsou prázdná"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Chyba zpracování: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Data JSON musí být kódována v UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Ve výrazu JSONPath je dovolen pouze jeden kořenový uzel"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Kořenový uzel následován neplatným znakem „%c“"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Schází název člena nebo divoký znak po znaku tečky."
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Chybný výraz dílu „%*s“"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Neplatná definice množiny „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Neplatná definice dílu „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Neplatná definice indexu pole „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Neplatný první znak „%c“"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Aktuální uzel je typu „%s“, ale bylo očekáváno pole nebo objekt."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Index „%d“ je větší než velikost pole na aktuální pozici."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Index „%d“ je větší než velikost objektu na aktuální pozici."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Na aktuální pozici není k dispozici žádný uzel"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Aktuální pozice obsahuje „%s“ a ne pole"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Aktuální uzel je typu „%s“, ale byl očekáván objekt."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Člen „%s“ není na aktuálním pozici v objektu definován."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Aktuální pozice obsahuje „%s“ a ne objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Aktuální pozice obsahuje „%s“ a ne hodnotu"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Aktuální pozice neobsahuje typ string (řetězec)"
index 4819935..5e83b29 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index 25b9598..af825ac 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -9,8 +9,8 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-03-16 16:26+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-15 13:53+0100\n"
 "Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -19,85 +19,162 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Gør udskrift pæn"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Indrykningsmellemrum"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: fejl ved åbning af fil: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: fejl ved fortolkning af fil: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: fejl ved skrivning til stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: fejl ved lukning: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FIL"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatér JSON-filer."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formaterer JSON-ressourcer."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Fejl ved fortolkning af kommandolinjetilvalg: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Prøv \"%s --help\" for at få yderligere oplysninger."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: manglende filer"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Kontrollér JSON-filer."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate kontrollerer JSON-data på den givne URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Forventer et JSON-objekt, men rodknuden er af typen \"%s\""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Uventet type \"%s\" i JSON-tilstand"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Manglende elementer i JSON-array for at kunne være en tuple"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Manglende lukkesymbol \")\" i GVariant-tupletype"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Uventet ekstra elementer i JSON-array"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Ugyldig strengværdi ved konvertering til GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "En GVariant-ordbogspost forventer et JSON-objekt med nøjagtigt ét tal"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant-klassen \"%c\" understøttes ikke"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Ugyldig GVariant-underskrift"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON-data er tom"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Fortolkningsfejl: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON-data skal være UTF-8-kodet"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Kun en rodknude tillades i et JSONPath-udtryk"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Rodknuden efterfølges af et ugyldigt tegn, \"%c\""
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Manglende medlemsnavn eller wildcard efter .-tegn"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Misdannet slice-udtryk \"%*s\""
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Ugyldig mængdedefinition \"%*s\""
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Ugyldig slice-definition \"%*s\""
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Ugyldig arrayindeksdefinition \"%*s\""
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Ugyldigt første tegn \"%c\""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
@@ -105,14 +182,14 @@ msgstr ""
 "Den nuværende knude er af typen \"%s\", men der blev forventet et array "
 "eller et objekt."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "Indekset \"%d\" er større end størrelsen af arrayet ved nuværende position."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -121,43 +198,43 @@ msgstr ""
 "Indekset \"%d\" er større end størrelsen af objektet på den nuværende "
 "position."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Ingen tilgængelig knude på nuværende position"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Den nuværende position holder en \"%s\" og ikke et array"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr ""
 "Den nuværende knude er af typen \"%s\", men der blev forventet et objekt."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr ""
 "Medlemmet \"%s\" er ikke defineret i objektet på den nuværende position."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Den nuværende position indeholder en \"%s\" og ikke et objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Den nuværende position indeholder en \"%s\" og ikke en værdi"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Den nuværende position indeholder ikke en strengtype"
index 4c038b4..499261e 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 5f4c9ea..0e87fc5 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -2,15 +2,15 @@
 # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # Mario Blättermann <mario.blaettermann@gmail.com>, 2011.
-# Wolfgang Stöggl <c72578@yahoo.de>, 2012.
+# Wolfgang Stöggl <c72578@yahoo.de>, 2012, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-26 08:19+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-08-14 15:52+0100\n"
 "Last-Translator: Wolfgang Stoeggl <c72578@yahoo.de>\n"
 "Language-Team: Deutsch <gnome-de@gnome.org>\n"
 "Language: de\n"
@@ -18,89 +18,166 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 2.91.5\n"
+"X-Generator: Poedit 1.6.7\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Ausgabe hübsch gestalten"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Einrückungsleerzeichen"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: Fehler beim Öffnen der Datei: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: Fehler beim Verarbeiten der Datei: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: Fehler beim Schreiben auf die Standardausgabe"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: Fehler beim Schließen: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATEI"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON-Datei formatieren."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatiert JSON-Ressourcen."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Fehler beim Verarbeiten der Befehlszeilenoptionen: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Versuchen Sie »%s --help« für mehr Informationen."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: Fehlende Dateien"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON-Datei auf Gültigkeit prüfen."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate prüft JSON-Daten der angegebenen Adresse."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Ein JSON-Objekt wurde erwartet, aber der Root-Knoten hat den Typ »%s«"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Unerwarteter Typ »%s« im JSON-Knoten"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Elemente im JSON-Array fehlen, um konform zu einem Tupel zu sein"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Schließende Klammer »)« im Typ des GVariant-Tupels fehlt"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Unerwartete zusätzliche Elemente im JSON-Array"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Ungültiger Zeichenkettenwert zur GVariant-Umwandlung"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Ein GVariant-Verzeichniseintrag erwartet ein JSON-Objekt mit genau einem "
 "Mitglied"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant-Klasse »%c« wird nicht unterstützt"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Ungültige GVariant-Signatur"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON-Daten sind leer"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Verarbeitungsfehler: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON-Daten müssen in UTF-8 kodiert sein"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Im JSONPath-Ausdruck ist nur ein einziger Root-Knoten erlaubt"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Auf den Root-Knoten folgt das ungültige Zeichen »%c«"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Name des Mitglieds oder Platzhalter nach dem . Zeichen fehlt"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Ungültiger Slice-Ausdruck »%*s«"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Ungültige »set«-Definition »%*s«"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Ungültige »slice«-Definition »%*s«"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Ungültige Array-Index-Definition »%*s«"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Ungültiges erstes Zeichen »%c«"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
@@ -108,14 +185,14 @@ msgstr ""
 "Der Typ des aktuellen Knotens ist »%s«, aber ein Array oder Objekt wurde "
 "erwartet."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "Der Index »%d« übersteigt die Größe des Arrays an der aktuellen Position."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -123,44 +200,44 @@ msgid ""
 msgstr ""
 "Der Index »%d« übersteigt die Größe des Objekts an der aktuellen Position."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "An der aktuellen Position ist kein Knoten verfügbar"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "An der aktuellen Position befindet sich ein »%s« und kein Array"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Der aktuelle Knoten hat den Typ »%s«, aber ein Objekt wurde erwartet."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr ""
 "Das Mitglied »%s« ist im Objekt an der aktuellen Position nicht definiert."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "An der aktuellen Position befindet sich ein »%s« und kein Objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr ""
 "An der aktuellen Position befindet sich ein »%s«, welches kein Wert ist"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "An der aktuellen Position befindet sich kein Zeichenketten-Typ"
 
index 4ee4152..efba6d8 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index 4ab0866..708a1b9 100644 (file)
--- a/po/el.po
+++ b/po/el.po
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # Dimitris Spingos <dmtrs32@gmail.com>, 2012.
-# Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2012.
+# Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2012, 2013, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-11-01 11:43+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-07-09 14:38+0200\n"
 "Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
-"Language-Team: team@gnome.gr\n"
+"Language-Team: team@lists.gnome.gr\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.7.0\n"
+"X-Generator: Poedit 1.6.5\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Ωραιοποίηση εξόδου"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Διαστήματα εσοχών"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: σφάλμα ανοίγματος αρχείου: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: σφάλμα ανάλυσης αρχείου: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: σφάλμα εγγραφής στην τυπική έξοδο"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: σφάλμα κλεισίματος: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ΑΡΧΕΙΟ"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Μορφή αρχείων JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "το json-glib-format μορφοποιεί τους πόρους JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Σφάλμα ανάλυσης επιλογών της γραμμής εντολών: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Δοκιμάστε \"%s --help\" για περισσότερες πληροφορίες."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: λείπουν αρχεία"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Επικυρώστε αρχεία JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "το json-glib-validate επικυρώνει δεδομένα JSON στο δοσμένο URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Αναμένεται αντικείμενο JSON, αλλά ο αρχικός κόμβος είναι τύπου `%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Αναπάντεχος τύπος '%s' σε κόμβο JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Λείπουν στοιχεία σε πίνακα JSON για συμφωνία με πλειάδα"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Λείπει το σύμβολο κλεισίματος ')' στον τύπο πλειάδας GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Αναπάντεχα πρόσθετα στοιχεία σε πίνακα JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Άκυρη τιμή συμβολοσειράς μετατροπής σε GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Μια καταχώριση λεξικού GVariant περιμένει ένα αντικείμενο JSON με ακριβώς "
 "ένα μέλος"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Η κλάση GVariant '%c' δεν υποστηρίζεται"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Άκυρη υπογραφή GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Τα δεδομένα JSON είναι κενά"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Σφάλμα ανάλυσης: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Τα δεδομένα JSON πρέπει να είναι κωδικοποιημένα ως UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
-msgstr "Î\9cÏ\8cνο Î­Î½Î±Ï\82 ÎºÏ\8cμβοÏ\82 Ï\85Ï\80εÏ\81Ï\87Ï\81ήÏ\83Ï\84η επιτρέπεται σε μια έκφραση JSONPath"
+msgstr "Î\9cÏ\8cνο Î­Î½Î±Ï\82 Î±Ï\81Ï\87ικÏ\8cÏ\82 ÎºÏ\8cμβοÏ\82 επιτρέπεται σε μια έκφραση JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
-msgstr "Î\9aÏ\8cμβοÏ\82 Ï\85Ï\80εÏ\81Ï\87Ï\81ήÏ\83Ï\84η ακολουθούμενος από άκυρο χαρακτήρα '%c'"
+msgstr "Î\91Ï\81Ï\87ικÏ\8cÏ\82 ÎºÏ\8cμβοÏ\82 ακολουθούμενος από άκυρο χαρακτήρα '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Λείπει όνομα μέλους ή συμβόλου υποκατάστασης μετά τον χαρακτήρα ."
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr "Κακοσχηματισμένη έκφραση τεμαχισμού '%*s'"
+msgstr "Κακοδιατυπωμένη έκφραση τεμαχισμού '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Άκυρος ορισμός συνόλου '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Άκυρος ορισμός τεμαχισμού '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Άκυρος ορισμός δείκτη πίνακα '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Άκυρος ο πρώτος χαρακτήρας '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
-"Ο τρέχον κόμβος είναι τύπου '%s', αλλά αναμενόταν ένας πίνακας ή ένα "
+"Ο τρέχων κόμβος είναι τύπου '%s', αλλά αναμενόταν ένας πίνακας ή ένα "
 "αντικείμενο."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
@@ -116,7 +193,7 @@ msgstr ""
 "Ο δείκτης '%d' είναι μεγαλύτερος από το μέγεθος του πίνακα στην τρέχουσα "
 "θέση."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -125,42 +202,42 @@ msgstr ""
 "Ο δείκτης '%d' είναι μεγαλύτερος από το μέγεθος του αντικειμένου στην "
 "τρέχουσα θέση."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Κανένας διαθέσιμος κόμβος στην τρέχουσα θέση"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι ένα πίνακα"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr "Ο τρέχον κόμβος είναι του τύπου '%s', αλλά αναμενόταν ένα αντικείμενο."
+msgstr "Ο τρέχων κόμβος είναι του τύπου '%s', αλλά αναμενόταν ένα αντικείμενο."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Το μέλος '%s' δεν ορίζεται στο αντικείμενο στην τρέχουσα θέση."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι ένα αντικείμενο"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι μια τιμή"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Η τρέχουσα θέση δεν περιέχει τύπο συμβολοσειράς"
 
index 34be2ee..94fdeb6 100644 (file)
Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ
index 85238fd..cca5529 100644 (file)
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-09-04 16:18+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: British English <en_GB@li.org>\n"
@@ -18,100 +18,177 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: Parse error: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Expecting a JSON object, but the root node is of type `%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Unexpected type '%s' in JSON node"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Missing elements in JSON array to conform to a tuple"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Missing closing symbol ')' in the GVariant tuple type"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Unexpected extra elements in JSON array"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Invalid string value converting to GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant class '%c' not supported"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Invalid GVariant signature"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON data is empty"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: Parse error: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Only one root node is allowed in a JSONPath expression"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Root node followed by invalid character '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Malformed slice expression '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Invalid set definition '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Invalid slice definition '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Invalid array index definition '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "The current node is of type '%s', but an array or an object was expected."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "The index '%d' is greater than the size of the array at the current position."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -120,41 +197,41 @@ msgstr ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "No node available at the current position"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "The current position holds a '%s' and not an array"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "The current node is of type '%s', but an object was expected."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "The member '%s' is not defined in the object at the current position."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "The current position holds a '%s' and not an object"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "The current position holds a '%s' and not a value"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "The current position does not hold a string type"
index b6be188..d43d66e 100644 (file)
Binary files a/po/eo.gmo and b/po/eo.gmo differ
index 197f5fa..c352122 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-04-01 18:26+0200\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <gnome-l10n-eo@lists.launchpad.net>\n"
@@ -19,92 +19,169 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Generator: Gtranslator 2.91.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Atendis JSON-objekton sed la radika nodo havas la tipon \"%s\""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Neatendita tipo \"%s\" en JSON-nodo"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Elementoj mankas en la JSON-tabelo por esti konforma al tupelo"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Fermanta signo ')' mankas en la GVariant-tupelo-tipo"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Neatenditaj pluaj elementoj en JSON-tabelo"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Nevalida signoĉena valoro por konverto al GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant-vortaro-enigo atendas JSON-objekton kun ekzakte unu membro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant-klaso '%c' ne estas subtenata"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Nevalida GVariant-subskribo"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON-datumoj estas malplenaj"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Analiz-eraro: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Nur unu 'Root'-nodo estas permesata en JSONPath-esprimo"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Malantaŭ la radika nodo sekvas nevalida signo \"%c\""
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Nevalida segment-esprimo \"%*s\""
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Nevalida \"set\"-difino \"%*s\""
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Nevalida segment-difino \"%*s\""
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Nevalida tebel-indeks-difino \"%*s\""
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "La tipo de la nuna nodo estas \"%s\", sed tabelo aŭ objekto estis atendita."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
@@ -112,7 +189,7 @@ msgstr ""
 "La indekso '%d' estas pli grande ol la grando de la tabelo ĉe la aktuala "
 "pozicio."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -121,42 +198,42 @@ msgstr ""
 "La indekso '%d' estas pli grande ol la grando de la objekto ĉe la aktuala "
 "pozicio."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Neniu nodo estas ĉe la aktuala pozicio"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "La aktuala pozicio havas na '%s' kaj ne tabelon"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "La aktuala nodo havas la tipon '%s', sed objekto estis atendita."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "La membro '%s' ne estas definita en la objekto ĉe la aktuala pozicio."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "La aktuala pozicio havas na '%s' kaj ne objekton"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "La aktuala pozicio havas na '%s' kaj ne valoron"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "La aktuala pozicio ne havas signoĉenan tipon"
 
index 3d38a89..d6e351f 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 85894ed..6cf1530 100644 (file)
--- a/po/es.po
+++ b/po/es.po
 # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-28 13:31+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-12-09 15:59+0100\n"
 "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
-"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
+"Language-Team: Español <gnome-es-list@gnome.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 "X-Generator: Gtranslator 2.91.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Embellecer la salida"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espacios de sangrado"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: error al abrir el archivo: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: error al analizar: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: error al escribir en la salida estándar"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: error al cerrar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatear archivos JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatea recursos JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Error al analizar las opciones de la línea de comandos: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Pruebe «%s --help» para obtener más información."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: faltan archivos"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validar archivos JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valida los datos JSON del URI dado."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Se esperaba un objeto JSON, pero el nodo raíz es de tipo «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Tipo «%s» no esperado en un nodo JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Faltan elementos en el vector JSON para conformar una tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Falta el símbolo de cierre «)» en la tupla de GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elementos adicionales no esperados en el vector JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Valor de cadena no válido al convertir a GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Una entrada del diccionario de GVariant espera un objeto JSON con sólo un "
 "miembro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Clase «%c» de GVariant no soportada"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Firma de GVariant no válida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Datos de JSON vacíos"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Error al analizr: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Los datos JSON deben estar codificados en UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Sólo se permite un nodo raíz en una expresión JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Nodo raíz seguido de un carácter «%c» no válido"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Falta el nombre del miembro o el comodín después del «.»."
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Expresión de particionado «%*s» mal formada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Definición de conjunto no válida «%*s»"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Definición de particionado no válida «%*s»"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Definición de índice de vector no válida «%*s»"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primer carácter «%c» no válido"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "El nodo actual es de tipo «%s», pero se esperaba un objeto o un vector."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "El índice «%d» es mayor que el tamaño del vector en la posición actual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -122,42 +199,42 @@ msgid ""
 msgstr ""
 "El índice «%d» es mayor que el tamaño del objeto en la posición actual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "No hay ningún nodo disponible en la posición actual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "La posición actual tiene un «%s» y no un vector"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "El nodo actual es de tipo «%s», pero se esperaba un objeto."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "El miembro «%s» no está definido en el objeto en la posición actual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "La posición actual tiene un «%s» y no un objeto"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "La posición actual tiene un «%s» y no un valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "La posición actual no tiene un tipo de cadena"
 
index d92ff3e..6de3bc5 100644 (file)
Binary files a/po/et.gmo and b/po/et.gmo differ
index 40bfd22..97776ea 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-10-29 20:51+0300\n"
 "Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
 "Language-Team: Estonian <gnome-et-list@gnome.org>\n"
@@ -18,139 +18,216 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Oodati JSON objekti, kuid juursõlme liik on '%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON sõlmes esines ootamatu liik '%s'"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON massiivis puuduvad tuple'i moodustamiseks vajalikud elemendid"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Puuduv sulgev ')' sümbol GVariant tuple'is"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Ootamatud lisaelemendid JSON massiivis"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Sobimatu sõne väärtus GVariandiks teisendamisel"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant dictionary kirje eeldab JSON objekti, milles on täpselt üks liige"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant klass '%c' pole toetatud"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Sobimatu GVariant-i allkiri"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON ei sisalda andmeid"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: parsimise viga: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Ainult juursõlm on lubatud JSONPath expression lauses"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Juursõlmele järgneb sobimatu märk '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Sobimatu tüki väljendus (slice expression) '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Sobimatu kogu (set) definitsioon '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Sobimatu tüki (slice) definitsioon '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Sobimatu massiivi indeksi definitsioon '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Praeguse sõlme liik on '%s', aga oodati massiivi või objekti."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Indeks '%d' on suurem kui massivi suurus praeguses asukohas."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Indeks '%d' on suurem kui objekti suurus praeguses asukohas."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Praeguses asukohas pole saadaval ühtegi sõlme"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Praegune asukoht sisaldab '%s' ning see pole massiiv"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Praeguse sõlme liik on '%s', aga oodati objekti."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Liige '%s' ei ole defineeritud praeguses asukohas asuvas objektis."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Praegune asukoht sisaldab '%s', mitte objekti"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Praegune asukoht sisaldab '%s' ning mitte väärtust"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Praegune asukoht ei sisalda sõne liiki"
index 49d024e..e0f3e99 100644 (file)
Binary files a/po/eu.gmo and b/po/eu.gmo differ
index 70cbed9..314e039 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
+# Basque translation of jon-glib.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
-# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2013.
+# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2013, 2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-03-03 20:43+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-04-03 17:38+0200\n"
 "Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
-"Language-Team: Basque <itzulpena@euskalgnu.org>\n"
+"Language-Team: Basque <librezale@librezale.org>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
+"X-Generator: Lokalize 1.4\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Koskatu irteera"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Koskaren zuriuneak"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: errorea fitxategia irekitzean: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: errorea fitxategia analizatzean: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: errorea irteera estandarrean idaztean"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: errorea ixtean: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FITXATEGIA"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON fitxategien formatua."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "'json-glib-format'-ek  JSON baliabideei formatu ematen die."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Errorea komando-lerroaren aukerak analizatzean: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Saiatu '%s --help' erabiltzen informazio gehiagorako."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: fitxategiak falta dira"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON fitxategien balidazioa."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+"'json-glib-validate'-ek JSON datuen balidazioa egiten du emandako URIan."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "JSON objektu bat espero zen, baina erroaren nodoa '%s' motakoa da"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Ustekabeko '%s' mota JSON nodoan"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON matrizean elementuak falta dira tupla bat osatzeko"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Itxierako ')' ikurra falta da GVariant tupla motan"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Ustekabeko elementu gehigarriak JSON nodoan"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Baliogabeko kate-balioa GVariant-era bihurtzean"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant hiztegiaren sarrera batek JSON  objektu bat espero du kide bakar "
 "batekin soilik"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "'%c' GVariant klasea ez dago onartuta"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Baliogabeko GVariant sinadura"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSONen datuak hutsik daude"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: analisi-errorea: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON datuak UTF-8 kodeketan egon behar dute"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr ""
 "Soilik erroko nodo bakar bat dago baimenduta JSONPath adierazpen batean"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Erroko nodoaren ondoren baliogabeko '%c' karakterea dago"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Kidearen izena edo '.' karakterearen ondorengo izartxoa falta da"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Gaizki osatutako '%*s' adierazpen zatia"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "'%*s' multzoaren definizioa baliogabea"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Baliogabeko '%*s' definizio zatia"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Baliogabeko '%*s' matrizearen indizearen definizioa"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Aurreneko '%c' karakterea baliogabea"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Uneko nodoa '%s' motakoa da, baina matrize edo objektu bat espero zen."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "'%d' indizea uneko posizioko matrizearen tamaina baino handiagoa da."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "'%d' indizea uneko posizioko objektuaren tamaina baino handiagoa da ."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Ez dago nodorik erabilgarri uneko posizioan"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Uneko posizioak '%s' dauka, eta ez matrize bat"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Uneko nodoa '%s' motakoa da, baina objektu bat espero zen."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "'%s' kidea ez dago uneko posizioko objektuan definituta."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Uneko posizioak '%s' dauka, baina ez objektu bat"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Uneko posizioak '%s' dauka, baina ez balio bat"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Uneko posizioak ez dauka kate motakorik"
index dcfdfbf..9d86873 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index a1e4676..c951eed 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
 # French translation of jon-glib.
 # Copyright (C) 2012 json-glib COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Josselin TILLAY-DOLEDEC <josselin.td@gmail.com>, 2012.
+# Josselin TILLAY-DOLEDEC <josselin.td@gmail.com>, 2012
+# Claude Paroz <claude@2xlibre.net>, 2014
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-02-20 20:12+0100\n"
-"Last-Translator: Josselin TILLAY-DOLEDEC <josselin.td@gmail.com>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-11 22:43+0100\n"
+"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Formatage indenté"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espaces d'indentation"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s : %s : erreur d'ouverture du fichier : %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s : %s : erreur d'analyse du fichier : %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s : %s : erreur d'écriture vers stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s : %s : erreur de fermeture : %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FICHIER"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Mise en forme de fichiers JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format met en forme des ressources JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Erreur d'analyse des options de la ligne de commande : %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Essayez « %s --help » pour plus d'informations."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s : fichiers manquants"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validation de fichiers JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valide des données JSON à l'URI indiquée."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Objet de type JSON attendu mais le nœud racine est de type « %s »"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Type « %s » inattendu dans le nœud JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Éléments manquants dans le tableau JSON pour être conforme à un tuple"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Symbole fermant « ) » manquant dans le tuple GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Éléments supplémentaires inattendus dans le tableau JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Chaîne de caractères invalide pour la conversion en GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Une entrée de dictionnaire GVariant requiert un objet JSON contenant un seul "
 "membre"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Classe GVariant « %c » non prise en charge"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Signature GVariant non valide"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Les données JSON sont vides"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Erreur d'analyse : %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Les données JSON doivent être codées en UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Un seul nœud racine autorisé dans une expression JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Nœud racine suivi d'un caractère invalide « %c »"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Nom de membre ou caractère joker manquant après un caractère « . »"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr "Expression de tranche malformée « %*s »"
+msgstr "Expression de segmentation malformée « %*s »"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Définition d'ensemble invalide « %*s »"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
-msgstr "Définition de tranche invalide « %*s »"
+msgstr "Définition de segmentation invalide « %*s »"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Définition d'indice de tableau invalide « %*s »"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Premier caractère « %c » non valide"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "Le nœud courant est de type « %s » mais un tableau ou un objet était attendu."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
@@ -112,7 +190,7 @@ msgstr ""
 "L'indice « %d » est plus grand que la taille du tableau à la position "
 "actuelle."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -121,54 +199,45 @@ msgstr ""
 "L'indice « %d » est plus grand que la taille de l'objet indiqué à la "
 "position actuelle."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Aucun nœud disponible à cette position."
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr ""
 "La position actuelle contient un élément de type « %s » et non un tableau"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Le nœud actuel est de type « %s » mais un objet était attendu."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr ""
 "Le membre « %s »  n'est pas défini dans l'objet à la position actuelle."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr ""
 "La position actuelle contient un élément de type « %s » et non un objet"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr ""
 "La position actuelle contient un élément de type « %s » et non une valeur"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "La position actuelle ne contient pas une chaîne de caractères"
-
-#~ msgid "The current position does not hold an integer type"
-#~ msgstr "La position actuelle n'indique pas un entier."
-
-#~ msgid "The current position does not hold a floating point type"
-#~ msgstr "La position actuelle n'indique pas un pointeur flottant"
-
-#~ msgid "The current position does not hold a boolean type"
-#~ msgstr "La position actuelle n'indique pas un booléen."
diff --git a/po/fur.gmo b/po/fur.gmo
new file mode 100644 (file)
index 0000000..87699d4
Binary files /dev/null and b/po/fur.gmo differ
diff --git a/po/fur.po b/po/fur.po
new file mode 100644 (file)
index 0000000..50a1a46
--- /dev/null
+++ b/po/fur.po
@@ -0,0 +1,234 @@
+# Friulian translation for json-glib.
+# Copyright (C) 2013 json-glib's COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# Fabio Tomat <f.t.public@gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-08-20 15:12+0100\n"
+"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
+"Language-Team: Friulian <fur@li.org>\n"
+"Language: fur\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgstr "Si spiete un ogjet JSON, ma il grop lidrîs al è dal tipo \"%s\""
+
+#: json-glib/json-gvariant.c:523
+#, c-format
+msgid "Unexpected type '%s' in JSON node"
+msgstr "Tipo \"%s\" no spietât tal grop JSON"
+
+#: json-glib/json-gvariant.c:593
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "A mancjin ogjets tal array JSON par conformitât a une tuple"
+
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgstr "Al mancje il simbul ')' di siaradure tal tipo tuple GVariant"
+
+#: json-glib/json-gvariant.c:629
+msgid "Unexpected extra elements in JSON array"
+msgstr "Elements di plui no spietâts tal array JSON"
+
+#: json-glib/json-gvariant.c:908
+msgid "Invalid string value converting to GVariant"
+msgstr "Valôrs di stringhe no valits te conversion a JSON"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr ""
+"Une vôs di dizionari GVariant a domandave un ogjet JSON cun precîs un membri"
+
+#: json-glib/json-gvariant.c:1248
+#, c-format
+msgid "GVariant class '%c' not supported"
+msgstr "Classe GVariant '%c' no supuartade"
+
+#: json-glib/json-gvariant.c:1296
+msgid "Invalid GVariant signature"
+msgstr "Firme GVariant no valide"
+
+#: json-glib/json-gvariant.c:1344
+msgid "JSON data is empty"
+msgstr "I dâts JSON a son vueits"
+
+#: json-glib/json-parser.c:914
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: erôr di analisi: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "A si amet dome un grop lidrîs intune espression JSON"
+
+#: json-glib/json-path.c:397
+#, c-format
+msgid "Root node followed by invalid character '%c'"
+msgstr "Grop lidrîs seguît da caratar no valit '%c'"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
+#, c-format
+msgid "Malformed slice expression '%*s'"
+msgstr "Espression slice '%*s' scrite mâl"
+
+#: json-glib/json-path.c:555
+#, c-format
+msgid "Invalid set definition '%*s'"
+msgstr "Definizion di set '%*s' no valide"
+
+#: json-glib/json-path.c:608
+#, c-format
+msgid "Invalid slice definition '%*s'"
+msgstr "Definizion di slice '%*s' no valide"
+
+#: json-glib/json-path.c:636
+#, c-format
+msgid "Invalid array index definition '%*s'"
+msgstr "Definizion di indiç array '%*s'  no valide"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
+#, c-format
+msgid ""
+"The current node is of type '%s', but an array or an object was expected."
+msgstr ""
+"Il tipo di grop curint al è \"%s\", ma si spietave un array o un ogjet."
+
+#: json-glib/json-reader.c:485
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the array at the current position."
+msgstr "L'indiç '%d' al è plui grant de dimension dal array ae posizion atuâl."
+
+#: json-glib/json-reader.c:502
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+msgstr "L'indiç '%d' al è plui grant de dimension dal ogjet ae posizion atuâl."
+
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
+msgid "No node available at the current position"
+msgstr "Nissun grop disponibil ae posizion atuâl."
+
+#: json-glib/json-reader.c:593
+#, c-format
+msgid "The current position holds a '%s' and not an array"
+msgstr "La posizion atuâl a ten un \"%s\" e no un array"
+
+#: json-glib/json-reader.c:669
+#, c-format
+msgid "The current node is of type '%s', but an object was expected."
+msgstr "Il tipo di grop atuâl al è \"%s\", ma si spietave un ogjet."
+
+#: json-glib/json-reader.c:676
+#, c-format
+msgid "The member '%s' is not defined in the object at the current position."
+msgstr "Nol è definît il membri \"%s\" tal ogjet ae posizion atuâl."
+
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
+#, c-format
+msgid "The current position holds a '%s' and not an object"
+msgstr "La posizion atuâl a ten un \"%s\" e no un ogjet"
+
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
+#, c-format
+msgid "The current position holds a '%s' and not a value"
+msgstr "La posizion atuâl a ten un \"%s\" e no un valôr"
+
+#: json-glib/json-reader.c:970
+msgid "The current position does not hold a string type"
+msgstr "La posizion atuâl no ten un tipo stringhe"
index 8393a36..d5a9aef 100644 (file)
Binary files a/po/gl.gmo and b/po/gl.gmo differ
index 2602a49..b338a3f 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -1,14 +1,14 @@
 # Galician translation for json-glib.
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Fran Dieguez <frandieguez@gnome.org>, 2012.
+# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-31 11:04+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-12-19 01:13+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
 "Language-Team: gnome-l10n-gl@gnome.org\n"
 "Language: gl\n"
@@ -19,140 +19,217 @@ msgstr ""
 "X-Generator: Virtaal 0.7.1\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Mellorar saída"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espazos de sangrado"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: erro ao abrir o ficheiro: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: error ao analizar o ficheiro: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: erro ao escribir na saída estándar"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: erro ao pechar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FICHEIRO"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatea de ficheiros JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "Os recursos de JSON de json-glib-format."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Produciuse un erro ao analizar as opcións de liña de ordes: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Tente \"%s --help\" para máis información."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: ficheiros omitidos"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validar ficheiros JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valida os datos JSON dunha URI fornecida."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Agardábase un obxecto JSON, pero o nodo raíz é de tipo «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Tipo «%s» non agardado nun nodo JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Faltan elementos no vector JSON para conformar unha tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Falta o símbolo de peche «)» na tupla de GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elementos adicionais non agardados no vector JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Valor de cadea non válido ao converter a GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Unha entrada do dicionario e GVariant agarda un obxecto JSON con só un membro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Clase «%c» de GVariant non admitida"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Firma de GVariant non válida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Datos de JSON baleiros"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: erro de análise: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Os datos JSON deben ter a codificación UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Só se permite un nodo raíz nunha expresión JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Nodo raíz seguido dun carácter «%c» non válido"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Falta o nome do membro ou comodín logo do caracter «.»"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Expresión de particionado «%*s» mal formada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Definición de conxunto non válida «%*s»"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Definición de particionado non válida «%*s»"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Definición de índice de vector non válida «%*s»"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primeiro caracter «%c» non válido"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "O nodo actual é de tipo «%s», pero agardábase un obxecto ou un vector."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "O índice «%d» é maior que o tamaño do vector na posición actual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "O índice «%d» é maior que o tamaño do obxecto na posición actual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Non hai ningún nodo dipoñíbel na posición actual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "A posición actual ten un «%s» e non un vector"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "O nodo actual é de tipo «%s», pero agardábase un obxecto."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "O membro «%s» non está definido no obxecto na posición actual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "A posición actual ten un «%s» e non un obxecto"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "A posición actual ten un «%s» e non un valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "A posición actual non ten un tipo de cadea"
 
diff --git a/po/he.gmo b/po/he.gmo
new file mode 100644 (file)
index 0000000..91bf781
Binary files /dev/null and b/po/he.gmo differ
diff --git a/po/he.po b/po/he.po
new file mode 100644 (file)
index 0000000..9c9ee5d
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,239 @@
+# Hebrew translations for json-glib package.
+# Copyright (C) 2014 THE json-glib'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# יוסף אור בוצ׳קו <yoseforb@gnome.org>, 2014.
+# Yosef Or Boczko <yoseforb@gmail.com>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib 0.17.1\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-01-26 05:32+0200\n"
+"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
+"Language-Team: עברית <>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Prettify output"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Indentation spaces"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: error opening file: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: error parsing file: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: error writing to stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: error closing: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FILE"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Format JSON files."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formats JSON resources."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Error parsing commandline options: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Try \"%s --help\" for more information."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: missing files"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validate JSON files."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate validates JSON data at the given URI."
+
+#: json-glib/json-gobject.c:943
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgstr "Expecting a JSON object, but the root node is of type `%s'"
+
+#: json-glib/json-gvariant.c:523
+#, c-format
+msgid "Unexpected type '%s' in JSON node"
+msgstr "Unexpected type '%s' in JSON node"
+
+#: json-glib/json-gvariant.c:593
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Missing elements in JSON array to conform to a tuple"
+
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgstr "Missing closing symbol ')' in the GVariant tuple type"
+
+#: json-glib/json-gvariant.c:629
+msgid "Unexpected extra elements in JSON array"
+msgstr "Unexpected extra elements in JSON array"
+
+#: json-glib/json-gvariant.c:908
+msgid "Invalid string value converting to GVariant"
+msgstr "Invalid string value converting to GVariant"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+
+#: json-glib/json-gvariant.c:1248
+#, c-format
+msgid "GVariant class '%c' not supported"
+msgstr "GVariant class '%c' not supported"
+
+#: json-glib/json-gvariant.c:1296
+msgid "Invalid GVariant signature"
+msgstr "Invalid GVariant signature"
+
+#: json-glib/json-gvariant.c:1344
+msgid "JSON data is empty"
+msgstr "JSON data is empty"
+
+#: json-glib/json-parser.c:914
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: Parse error: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON data must be UTF-8 encoded"
+
+#: json-glib/json-path.c:388
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Only one root node is allowed in a JSONPath expression"
+
+#: json-glib/json-path.c:397
+#, c-format
+msgid "Root node followed by invalid character '%c'"
+msgstr "Root node followed by invalid character '%c'"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Missing member name or wildcard after . character"
+
+#: json-glib/json-path.c:511
+#, c-format
+msgid "Malformed slice expression '%*s'"
+msgstr "Malformed slice expression '%*s'"
+
+#: json-glib/json-path.c:555
+#, c-format
+msgid "Invalid set definition '%*s'"
+msgstr "Invalid set definition '%*s'"
+
+#: json-glib/json-path.c:608
+#, c-format
+msgid "Invalid slice definition '%*s'"
+msgstr "Invalid slice definition '%*s'"
+
+#: json-glib/json-path.c:636
+#, c-format
+msgid "Invalid array index definition '%*s'"
+msgstr "Invalid array index definition '%*s'"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Invalid first character '%c'"
+
+#: json-glib/json-reader.c:473
+#, c-format
+msgid ""
+"The current node is of type '%s', but an array or an object was expected."
+msgstr ""
+"The current node is of type '%s', but an array or an object was expected."
+
+#: json-glib/json-reader.c:485
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the array at the current position."
+msgstr ""
+"The index '%d' is greater than the size of the array at the current position."
+
+#: json-glib/json-reader.c:502
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+msgstr ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
+msgid "No node available at the current position"
+msgstr "No node available at the current position"
+
+#: json-glib/json-reader.c:593
+#, c-format
+msgid "The current position holds a '%s' and not an array"
+msgstr "The current position holds a '%s' and not an array"
+
+#: json-glib/json-reader.c:669
+#, c-format
+msgid "The current node is of type '%s', but an object was expected."
+msgstr "The current node is of type '%s', but an object was expected."
+
+#: json-glib/json-reader.c:676
+#, c-format
+msgid "The member '%s' is not defined in the object at the current position."
+msgstr "The member '%s' is not defined in the object at the current position."
+
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
+#, c-format
+msgid "The current position holds a '%s' and not an object"
+msgstr "The current position holds a '%s' and not an object"
+
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
+#, c-format
+msgid "The current position holds a '%s' and not a value"
+msgstr "The current position holds a '%s' and not a value"
+
+#: json-glib/json-reader.c:970
+msgid "The current position does not hold a string type"
+msgstr "The current position does not hold a string type"
index c2f591f..d32fd6c 100644 (file)
Binary files a/po/hi.gmo and b/po/hi.gmo differ
index b33a8d3..39ba4fd 100644 (file)
--- a/po/hi.po
+++ b/po/hi.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-09-20 10:33+0530\n"
 "Last-Translator: chandankumar <chandankumar.093047@gmail.com>\n"
 "Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
@@ -19,139 +19,216 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Lokalize 1.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: व्याख्या त्रुटि: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "एक JSON वस्तु की उम्मीद है, लेकिन रूट नोड प्रकार `%s' हैं "
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "अनपेक्षित प्रकार '%s' JSON नोड में"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "एक टपल अनुरूप करने के लिए JSON सरणी में गुम तत्वों "
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr " GVariant टपल प्रकार में समापन प्रतीक ')' गुम"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON सरणी में अप्रत्याशित अतिरिक्त तत्वों"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant को करने के लिए परिवर्तित अवैध स्ट्रिंग मान "
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant शब्दकोश प्रविष्टि को वास्तव में एक सदस्य के साथ एक JSON वस्तु की उम्मीद है"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant वर्ग '%c' समर्थित नहीं है"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "अवैध GVariant हस्ताक्षर"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON डेटा खाली है"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: व्याख्या त्रुटि: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "एक JSONPath अभिव्यक्ति में केवल एक रूट नोड की अनुमति दी है"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "अवैध अक्षर '%c' के बाद रूट नोड "
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "विकृत स्लाइस अभिव्यक्ति '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "अमान्य सेट परिभाषा '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "अवैध स्लाइस परिभाषा '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "अवैध सरणी सूचकांक परिभाषा '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "वर्तमान नोड प्रकार '%s' में से एक है, लेकिन एक सरणी या एक वस्तु की उम्मीद थी."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "सूचकांक '%d' वर्तमान स्थिति में सरणी के आकार की तुलना में अधिक है."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "सूचकांक '%d' वर्तमान स्थिति में वस्तु के आकार की तुलना में अधिक है."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "वर्तमान स्थिति में कोई नोड उपलब्ध नहीं  "
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "मौजूदा स्थिति के पास '%s' हैं और सरणी नहीं है."
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "वर्तमान नोड प्रकार '%s' में से एक है, लेकिन एक वस्तु की उम्मीद थी."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "सदस्य '%s' वर्तमान स्थिति में वस्तु में परिभाषित नहीं है."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "वर्तमान स्थिति के लिए '%s' और कोई ऑब्जेक्ट आयोजित नहीं है"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "वर्तमान स्थिति के लिए '%s' और कोई मान आयोजित नहीं है"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "वर्तमान स्थिति के लिए स्ट्रिंग प्रकार नहीं है"
index 28dbfc2..412914e 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index 4ce61b1..a7a56ca 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
 # Copyright (C) 2012. Free Software Foundation, Inc.
 # This file is distributed under the same license as the json-glib package.
 #
-# Gabor Kelemen <kelemeng at gnome dot hu>, 2012.
+# Gabor Kelemen <kelemeng at gnome dot hu>, 2012, 2014.
 # Balázs Úr <urbalazs at gmail dot com>, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-12-31 16:47+0100\n"
-"Last-Translator: Balázs Úr <urbalazs at gmail dot com>\n"
-"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-21 18:09+0100\n"
+"Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
+"Language-Team: Hungarian <openscope at googlegroups dot com>\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: Lokalize 1.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Kimenet csinosítása"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Behúzási szóközök"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: hiba a fájl megnyitásakor: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: hiba a fájl feldolgozásakor: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: hiba a szabványos kimenetre íráskor"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: hiba a következő lezárásakor: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FÁJL"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON fájlok formázása."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "A json-glib-format JSON erőforrásokat formáz."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Hiba a parancssori kapcsolók feldolgozásakor: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "További információkért adja ki a következő parancsot: „%s --help”."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: hiányzó fájlok"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON fájlok ellenőrzése."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+"A json-glib-validate a megadott URI-n található JSON adatokat ellenőrzi."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "A várt JSON objektum helyett a gyökérobjektum „%s” típusú"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Váratlan „%s” típus a JSON csomópontban"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "A JSON tömbből hiányzó elemek miatt a tuple nem teljes"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Hiányzó „)” szimbólum a GVariant tuple típusban"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Váratlan extra elemek a JSON tömbben"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Érvénytelen karakterláncérték a GVariant-tá alakítás közben"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Egy GVariant szótárbejegyzés pontosan egy tagú JSON objektumot vár"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "A(z) „%c” GVariant osztály nem támogatott"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Érvénytelen GVariant aláírás"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "A JSON adatok üresek"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: feldolgozási hiba: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "A JSON adatoknak UTF-8 kódolásúnak kell lenniük"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Csak egy gyökércsomópont engedélyezett a JSONPath kifejezésben"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "A gyökércsomópontot érvénytelen karakter követi: „%c”"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Hiányzó tagnév vagy helyettesítő karakter a . után"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Hibás szeletkifejezés: „%*s”"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Érvénytelen halmazdefiníció: „%*s”"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Érvénytelen szeletdefiníció: „%*s”"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Érvénytelen tömbindex-definíció: „%*s”"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Érvénytelen első karakter: „%c”"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "A jelenlegi csomópont „%s” típusú a várt tömb vagy objektum helyett."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "A(z) „%d” index nagyobb az aktuális pozícióban lévő tömb méreténél."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -118,42 +196,42 @@ msgid ""
 msgstr ""
 "A(z) „%d” index nagyobb az aktuális pozícióban lévő objektum méreténél."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nem érhető el csomópont az aktuális pozícióban"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Az aktuális pozícióban „%s” található tömb helyett"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "A jelenlegi csomópont „%s” típusú a várt objektum helyett."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr ""
 "A(z) „%s” tag nincs definiálva az aktuális pozícióban lévő objektumban."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Az aktuális pozícióban „%s” található objektum helyett"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Az aktuális pozícióban „%s” található érték helyett"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Az aktuális pozícióban nem karakterlánc típus található"
index 091c1d9..21e030b 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index 7b3c89b..38c9e59 100644 (file)
--- a/po/id.po
+++ b/po/id.po
 # Indonesian translation for json-glib.
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Andika Triwidada <andika@gmail.com>, 2012.
+# Andika Triwidada <andika@gmail.com>, 2012, 2013.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-27 07:26+0700\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-01-02 23:38+0700\n"
 "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 "Language-Team: Indonesian <gnome@i15n.org>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.5.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Percantik keluaran"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Spasi indentasi"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: galat saat membuka berkas: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: galat saat mengurai berkas: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: galat saat menulis ke stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: galat saat menutup: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "BERKAS"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Memformat berkas JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format memformat sumber daya JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Galat saat mengurai opsi baris perintah: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Cobalah \"%s --help\" untuk lebih banyak informasi."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: kurang berkas"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validasikan berkas JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate memvalidasi data JSON pada URI yang diberikan."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Mengharapkan objek JSON, tapi node akar bertipe '%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Tipe '%s' yang tak diharapkan dalam node JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Kehilangan elemen dalam larik JSON untuk memenuhi syarat sebagai tuple"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Kehilangan simbol penutup ')' dalam tipe tuple GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elemen ekstra yang tak diharapkan dalam larik JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Nilai string tak valid saat mengonversi ke GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Suatu entri kamus GVariant mengharapkan objek JSON dengan tepat satu anggota"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Kelas '%c' GVariant tak didukung"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Tanda tangan GVariant tak valid"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Data JSON kosong"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Galat mengurai: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Data JSON mesti ter-enkode UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Hanya satu node akar yang diijinkan dalam ekspresi JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Node akar diikuti oleh karakter tak valid '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Kurang nama anggota atau wildcard setelah karakter . (titik)"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Ekspresi slice '%*s' salah bentuk"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Definisi set '%*s' tak valid"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Definisi slice '%*s' tak valid"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Definisi indeks larik '%*s' tak valid"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Karakter pertama '%c' tak valid"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Node kini bertipe '%s', tapi larik atau objek yang diharapkan."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Indeks '%d' lebih besar daripada ukuran larik pada posisi kini."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Indeks '%d' lebih besar daripada ukuran objek pada posisi kini."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Node tak tersedia pada posisi kini"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Posisi kini menampung '%s' dan bukan suatu larik"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Node kini bertipe '%s', tapi yang diharapkan adalah objek."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Anggota '%s' tak didefinisikan dalam objek pada posisi kini."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Posisi kini menampung '%s' dan bukan suatu objek"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Posisi kini menampung '%s' dan bukan suatu nilai"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Posisi kini tak menampung suatu tipe string"
index 43343f2..1500d8f 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 44651d0..aafb355 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -9,8 +9,8 @@ msgstr ""
 "Project-Id-Version: json-glib\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-24 22:35+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-12-11 10:47+0100\n"
 "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -18,102 +18,181 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: Gtranslator 2.91.6\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Output abbellito"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Spazi di rientro"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: errore nell'aprire il file: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: errore nell'analizzare il file: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: errore nello scrivere su stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: errore nel chiudere: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FILE"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatta i file JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatta le risorse JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Errore nell'analizzare le opzioni a riga di comando: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Per maggiori informazioni, usare \"%s --help\"."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: mancano dei file"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Convalida i file JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate convalida i dati JSON trovati all'URI fornito."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Atteso un oggetto JSON, ma il nodo radice è del tipo \"%s\""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Tipo \"%s\" inatteso nel nodo JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Elementi mancanti nell'array JSON per conformità a una tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Simbolo ')' di chiusra mancante nel tipo tupla GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elementi aggiuntivi inattesi nell'array JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Valore di stringa non valido nella conversione a JSON"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Una voce di dizionario GVariant richiese un oggetto JSON con esattamente un "
 "membro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Classe GVariant '%c' non supportata"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Firma GVariant non valida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "I dati JSON sono vuoti"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: errore di analisi: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "I dati JSON devono essere codificati in UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "È consentito un solo nodo radice in una espressione JSON"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Nodo radice seguito dal carattere non valido '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+"Manca il nome del membro o un carattere speciale dopo il carattere \".\""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Espressione slice '%*s' malformata"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Definizione di set '%*s' non valida"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Definizione di slice '%*s' non valida"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Definizione di indice array '%*s' non valida"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primo carattere \"%c\" non valido"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "Il tipo del nodo corrente è \"%s\", ma era atteso un array o un oggetto."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "L'indice '%d' è maggiore della dimensione dell'array alla posizione corrente."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -122,41 +201,41 @@ msgstr ""
 "L'indice '%d' è maggiore della dimensione dell'oggetto alla posizione "
 "corrente."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nessun nodo disponibile alla posizione corrente"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "La posizione corrente contiene un \"%s\" e non un array"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Il tipo del nodo corrente è \"%s\", ma era atteso un oggetto."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Non è definito il membro \"%s\" nell'oggetto alla posizione corrente."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "La posizione corrente contiene un \"%s\" e non un oggetto"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "La posizione corrente contiene un \"%s\" e non un valore"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "La posizione corrente non contiene un tipo stringa"
index 297541a..d90f850 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index e994c72..eaac13f 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2012.
-# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2012.
+# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2012, 2013.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-08-06 19:56+0900\n"
-"Last-Translator: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-09-18 22:29+0900\n"
+"Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n"
 "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "JSON オブジェクトであるべきところ、ルートノードが `%s' 型です"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON ノードが `%s' 型になってしまってます"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON の配列にタプルを構成する要素が足りません"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant タプル型に閉じ記号 ')' がありません"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON 配列に余計な要素があります"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant に変換するのに無効な文字列です"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant の辞書エントリはメンバーを一つだけ含んだ JSON オブジェクトでなくては"
 "なりません"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant のクラス '%c' はサポートされていません"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "無効な GVariant シグネチャです"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON データが空です"
 
-#: json-glib/json-parser.c:825
-#, fuzzy, c-format
+#: json-glib/json-parser.c:914
+#, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d: パースエラー: %s"
+msgstr "%s:%d:%d: パースエラー: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath 式ではルートノード一つだけが許可されています"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "ルートノードの後に無効な文字 '%c' があります"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "不正なスライス式 '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "無効な集合定義 '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "無効なスライス定義: '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "無効な配列インデックス定義 '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "現在のノードは '%s' 型ですが、配列あるいはオブジェクトである必要があります。"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "インデックス '%d' は現在位置にある配列の長さよりも大きいです。"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "インデックス '%d' は現在位置のオブジェクトの大きさよりも大きいです。"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "現在位置にノードがありません"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "現在位置は '%s' で、配列ではありません"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "現在のノードは '%s' 型ですが、オブジェクトである必要があります。"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "現在位置のオブジェクトで '%s' メンバーは定義されていません"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "現在位置は '%s' で、オブジェクトではありません"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "現在位置は '%s' で値ではありません"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "現在位置が文字列型ではありません"
 
index 300c53c..51d0141 100644 (file)
@@ -1,15 +1,15 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR Intel Corporation
-# This file is distributed under the same license as the PACKAGE package.
+# This file is distributed under the same license as the json-glib package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: json-glib 0.16.0\n"
+"Project-Id-Version: json-glib 1.2.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,138 +18,215 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr ""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr ""
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr ""
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr ""
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr ""
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr ""
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr ""
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr ""
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr ""
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr ""
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr ""
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr ""
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr ""
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr ""
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr ""
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr ""
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr ""
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr ""
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr ""
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr ""
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr ""
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr ""
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr ""
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr ""
index abb4b2f..e9f26ad 100644 (file)
Binary files a/po/ko.gmo and b/po/ko.gmo differ
index 66256d5..421035c 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -1,15 +1,15 @@
 # Korean translation for json-glib.
 # Copyright (C) 2012 Seong-ho Cho et al.
 # This file is distributed under the same license as the json-glib package.
-# Seong-ho Cho <darkcircle.0426@gmail.com>, 2012, 2013.
+# Seong-ho Cho <darkcircle.0426@gmail.com>, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-03-20 17:04+0900\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-15 02:04+0900\n"
 "Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
 "Language-Team: Korean <gnome-kr@googlegroups.com>\n"
 "Language: ko\n"
@@ -19,139 +19,216 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "출력 정돈"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "들여쓰기 공백"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: 파일 여는 중 오류: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: 파일 해석 중 오류: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: 표준 출력 쓰는 중 오류"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: 닫는 중 오류: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "<파일>"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON 파일의 코드를 정렬합니다."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format이 JSON 자료 코드를 정렬합니다."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "명령줄 옵션 해석 중 오류: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "더 많은 내용은 \"%s --help\"를 실행하십시오."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: 파일이 빠졌습니다"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON 파일을 검증합니다."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate는 주어진 URI의 JSON 데이터를 검증합니다."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "JSON ê°\9d체를 ì\98\88ì\83\81í\96\88ì§\80ë§\8c ìµ\9cì\83\81ì\9c\84 ë\85¸ë\93\9cë\8a\94 `%s' í\98\95ì\8b\9dì\9d\84 ì§\80ë\8b\88ê³  ì\9e\88ì\8aµ니다"
+msgstr "JSON ê°\9d체를 ì\98\88ì\83\81í\96\88ì§\80ë§\8c ìµ\9cì\83\81ì\9c\84 ë\85¸ë\93\9cë\8a\94 `%s' í\98\95ì\8b\9dì\9e\85니다"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
-msgstr "JSON 노드에서 예상치 못한 '%s' 형식입니다"
+msgstr "JSON 노드에 예상치 못한 '%s' 형식이 있습니다"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "튜플에 따르기 위한 JSON 배열의 요소가 빠졌습니다"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant 튜플 형식에서 ')' 닫음 심볼이 빠졌습니다"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
-msgstr "JSON 배열에 예치 못한 추가 요소가 있습니다"
+msgstr "JSON 배열에 예치 못한 추가 요소가 있습니다"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant로 변환하려는 문자열 값이 잘못되었습니다"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant 딕셔너리 항목은 정확히 하나의 요소를 가진 JSON 객체를 요구합니다"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant '%c' 클래스를 지원하지 않습니다"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "잘못된 GVariant 서명입니다"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON 데이터가 비었습니다"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: 해석 오류: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON 데이터는 UTF-8로 인코딩해야 합니다"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath 표현식에서는 단 하나만의 최상위 노드를 허용합니다"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "최상위 노드에 잘못된 '%c' 문자가 따라옵니다"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "멤버 이름 또는 구두점 문자 다음 와일드카드가 빠졌습니다"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "잘못된 분배 표현식 '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "잘못된 셋 정의 '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "잘못된 분배 정의 '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "잘못된 배열 인덱스 정의 '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "잘못된 첫번째 문자 '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
-msgstr "현재 노드는 '%s' 형식을 지니고 있지만, 배열 또는 객체를 요구합니다."
+msgstr "현재 노드는 '%s' 형식 이지만, 배열 또는 객체를 요구합니다."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
-msgstr "현재 위치의 '%d'번 인덱스는 배열의 크기보다 큽니다."
+msgstr "현재 위치의 인덱스 '%d'번은 배열의 크기보다 큽니다."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "현재 위치의 '%d'번 인덱스는 객체의 크기보다 큽니다."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "현재 위치에 노드가 없습니다"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
-msgstr "현재 위치에 '%s'이(가) 있으며, 배열이 아닙니다"
+msgstr "현재 위치에 배열이 아닌 '%s'이(가) 있습니다"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr "í\98\84ì\9e¬ ë\85¸ë\93\9cë\8a\94 '%s' í\98\95ì\8b\9dì\9d\84 ì§\80ë\8b\88ê³  ì\9e\88지만 객체를 요구합니다."
+msgstr "í\98\84ì\9e¬ ë\85¸ë\93\9cë\8a\94 '%s' í\98\95ì\8b\9dì\9d´지만 객체를 요구합니다."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
-msgstr "현재 위치의 '%s' 구성원을 객체에 정의하지 않았습니다."
+msgstr "현재 위치 객체에 '%s' 구성원을 정의하지 않았습니다."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
-msgstr "현재 위치에 '%s'을(를) 지니고 있으며 객체가 아닙니다"
+msgstr "현재 위치에 객체가 아닌 '%s'이(가) 있습니다"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
-msgstr "현재 위치에 '%s'을(를) 지니고 있으며 값이 아닙니다"
+msgstr "현재 위치에 값이 아닌 '%s'이(가) 있습니다"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
-msgstr "현재 위치에서 문자열 값을 지니고 있지 않습니다"
+msgstr "현재 위치에 문자열 값이 없습니다"
index 2cfb7a6..dea1c40 100644 (file)
Binary files a/po/ky.gmo and b/po/ky.gmo differ
index a68b472..75f4a91 100644 (file)
--- a/po/ky.po
+++ b/po/ky.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-01-05 18:22+0600\n"
 "Last-Translator: Timur Zhamakeev <ztimur@gmail.com>\n"
 "Language-Team: Kirghiz <gnome-i18n@gnome.org>\n"
@@ -20,138 +20,215 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Lokalize 1.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: Ажыратып окуу катасы: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "JSON объекти күтүлүүдө, бирок башкы түйүн `%s' тибинде"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON  түйүнүндө күтүлбөгөн тип: '%s' "
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON массивинде кортежге ылайык келүүчү элементтер жок"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant кортеж тибинде жабылуучу ')' тамгасы жок"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON массивинде күтүлбөгөн кошумча элементтер"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant тибине которуу үчүн берилген саптын мааниси туура эмес"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant сөздүк элементи, бир гана мүчөлүү JSON объекти болушу керек"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "'%c' GVariant классы колдоого ээ эмес"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "GVariant сигнатурасы туура эмес"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON маалыматы жок"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: Ажыратып окуу катасы: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath туюнтмасында бир гана башкы түйүн болушу мүмкүн"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Башкы түйүн туура эмес тамга менен аяктаган: '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Туура эмес кесүү (slice) туюнтмасы '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Туура эмес ыйгаруу (set) аныктамасы '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Туура эмес кесүү (slice) аныктамасы '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Массив индексинин туура эмес аныктамасы '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Учурдагы түйүн '%s' тибинде; массив же объект күтүлгөн."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Учурдагы позициянын индекси:'%d' массивдин узундугунан чоң."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Учурдагы позициянын индекси:'%d'; объектин узундугунан чоң."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Учурдагы позицияда түйүн жок"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Учурдагы позицияда:'%s'; ал массив эмес"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Учурдагы түйүн '%s' тибинде; объект күтүлгөн."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Учурку позициядагы объекте '%s' аттуу мүчө аныкталган эмес."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Учурдагы позицияда:'%s'; ал объект эмес"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Учурдагы позицияда:'%s'; ал маани эмес"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Учурдагы позициянын тиби, саптык тип эмес"
index 09c9fa1..9dfcd49 100644 (file)
Binary files a/po/lt.gmo and b/po/lt.gmo differ
index cd2ded5..3d51d10 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
 # Lithuanian translation for json-glib.
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Aurimas Černius <aurisc4@gmail.com>, 2012.
+# Aurimas Černius <aurisc4@gmail.com>, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-25 23:04+0300\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-21 23:18+0200\n"
 "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
-"Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n"
+"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
 "Language: lt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
 "%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Gtranslator 2.91.6\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Graži išvestis"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Įtrauka tarpais"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: klaida atveriant failą: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: klaida skaitant failą: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: klaida rašant į standartinę išvestį"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: klaida užveriant: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FAILAS"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatuoti JSON failus."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatuoja JSON resursus."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Klaida skaitant komandų eilutės parametrus: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Daugiau informacijos gausite įvykdę „%s --help“."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: trūksta failų"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Tikrinti JSON failus."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate patikrina JSON duomenis ties pateiktu URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Tikimasi JSON objekto, bet šakninė viršūnė yra „%s“ tipo"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Netikėtas tipas „%s“ JSON viršūnėje"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Trūksta elementų JSON masyve junginiui sudaryti"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Trūksta uždarančio simbolio „)“ GVariant junginio tipe"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Netikėti papildomi elementai JSON masyve"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Netinkama eilutės reikšmė konvertavimui į GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant žodyno įrašas tikisi JSON objekto su vieninteliu nariu"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant klasė „%c“ nepalaikoma"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Netinkamas GVariant aprašas"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON duomenys yra tušti"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: skaitymo klaida: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON duomenys turi būti koduoti UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath išraiškoje leidžiamas vienintelė šakninė viršūnė"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Po šakninės viršūnės yra netinkamas simbolis „%c“"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Trūksta nario pavadinimo arba pakaitos simbolio po . simbolio"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Blogai suformuota dalinimo išraiška „%*s“"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Netinkamas aibės apibrėžimas „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Netinkamas dalinimo apibrėžimas „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Netinkamas masyvo apibrėžimas „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Netinkamas pirmasis simbolis „%c“"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Dabartinė viršūnė yra „%s“ tipo, bet tikėtasi masyvo arba objekto."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Indeksas „%d“ yra didesnis nei masyvo dydis dabartinėje pozicijoje."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Indeksas „%d“ yra didesnis nei objekto dydis dabartinėje pozicijoje."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nėra viršūnės dabartinėje pozicijoje"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Dabartinėje pozicijoje yra „%s“, o ne masyvas"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Dabartinė viršūnė yra „%s“ tipo, bet tikėtasi objekto."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Narys „%s“ neapibrėžtas dabartinėje pozicijoje esančiame objekte."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Dabartinė pozicija turi „%s“, o ne objektą"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Dabartinė pozicija turi „%s“, o ne reikšmę"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Dabartinė pozicija turi „%s“, o ne eilutės tipą"
index a9de458..bd58fe4 100644 (file)
Binary files a/po/lv.gmo and b/po/lv.gmo differ
index 9fc0f47..34d9c5c 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -2,14 +2,14 @@
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 #
-# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013.
+# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-03-17 20:23+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-07 16:52+0200\n"
 "Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
 "Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
 "Language: lv\n"
@@ -18,141 +18,218 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
 "2);\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 1.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Izskaistināt izvadi"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Atkāpes atstarpes"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: kļūda, atverot datni: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: kļūda, parsējot datni: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s, kļūda, rakstot uz stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: kļūda aizverot: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATNE"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatēt JSON datnes."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatē JSON resursus."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Kļūda, parsējot komandrindas opcijas — %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Lietojiet “%s --help”, lai uzzinātu vairāk."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: iztrūkstošas datnes"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Pārbaudīt JSON datnes."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate pārbauda JSON datus dotajā URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Gaidīja JSON objektu, bet saknes mezglam ir tips “%s”"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Negaidīts tips “%s” JSON mezglā"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON masīvā trūkst elementu, lai tas atbilstu kortežam"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant korteža tipā trūkst aizverošā simbola “%s”"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON masīvā ir negaidīti papildu elementi"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Pārveidojot uz GVariant, nederīga virknes vērtība"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "GVariant vārdnīcas ieraksts gaidīja JSON objektu ar tieši vienu locekli"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant klase “%c” nav atbalstīta"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Nederīgs GVariant paraksts"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON dati ir tukši"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: parsēšanas kļūda — %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON datiem ir jābūt UTF-8 kodējumā"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath izteiksmē ir atļauta tikai viens saknes mezgls"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Pēc saknes mezgla seko nederīga rakstzīme “%c”"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Trūkst locekļa nosaukums vai aizstājējzīme pēc . rakstzīmes"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Slikti formēta gabala izteiksme “%*s”"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Nederīga kopas definīcija “%*s”"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Nederīga gabala definīcija “%*s”"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Nederīga masīva indeksa definīcija “%*s”"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Nederīga pirmā rakstzīme “%c”"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Pašreizējam mezglam ir tips “%s”, bet tika gaidīts masīvs vai objekts."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Indekss “%d” dotajā pozīcijā ir lielāks kā masīva izmērs."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Indekss “%d” dotajā pozīcijā ir lielāks kā objekta izmērs."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Šajā pozīcija nav pieejams neviens mezgls"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Šajā pozīcijā ir “%s”, nevis masīvs"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Pašreizējam mezglam ir tips “%s”, bet tika gaidīts objekts."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Šajā pozīcijā objektā loceklis “%s” nav definēts."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Šajā pozīcijā ir “%s”, nevis objekts"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Šajā pozīcijā ir “%s”, nevis vērtība"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Šajā pozīcijā nav virknes tipa"
index 9e1088b..55889fc 100644 (file)
Binary files a/po/ml.gmo and b/po/ml.gmo differ
index ca3c049..8d7dd44 100644 (file)
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,7 +7,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-02-14 21:57+0530\n"
 "Last-Translator: Jishnu Mohan <jishnu7@gmail.com>\n"
 "Language-Team: Swatantra Malayalam Computing\n"
@@ -18,138 +18,215 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "`%s' അണ് റൂട്ട് നോഡിന്റെ തരം, പക്ഷേ JSON ഒബ്ജക്ട് ആണ് പ്രതീക്ഷിച്ചത്"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON node ല്‍ '%s'എന്ന പ്രതീക്ഷിക്കാത്ത തരം"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON അറേയില്‍ ടപ്പിള്‍ ആകാനായുള്ള കാര്യങ്ങള്‍ കാണുന്നില്ല"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant ടപ്പിള്‍ തരത്തില്‍ തീരുന്ന ചിഹ്നം ')' കാണുന്നില്ല"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON അറേയില്‍ വിചാരിക്കാത്ത അധികം കാര്യങ്ങള്‍"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant ലേക്ക് മാറ്റുന്ന അസാധുവായ വാചകം"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "ഒരേ ഒരു അംഗമുള്ള JSON ഒബ്ജക്റ്റിനെ GVariant നിഘണ്ടു എന്ട്രി പ്രതീക്ഷിക്കുന്നു"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "'%c' എന്ന GVariant തരം പിന്‍തുണയ്ക്കുന്നില്ല"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "അസാധുവായ GVariant ഒപ്പ്"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON ഡാറ്റ ശൂന്യം"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: പാഴ്സ് പിഴവ്: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath എക്സ്പ്രഷനില്‍ ഒരു റൂട്ടേ അനുവദിനീയമായിട്ടുള്ളു"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "റൂട്ട് നോഡിന് ശേഷം തെറ്റായ അക്ഷരം '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "തെറ്റായ സ്ലൈസ് എക്സ്പ്രഷന്‍ '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "'%*s' എന്നത് തെറ്റായ കൂട്ടം നിര്‍വചനമാണ്"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "'%*s' എന്നത് തെറ്റായ സ്ലൈസ് നിര്‍വചനമാണ്"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "'%*s' എന്നത് തെറ്റായ അറേ ഇന്റെക്സ് നിര്‍വചനമാണ്"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "ഇപ്പോഴത്തെ നോഡിന്റെ തരം '%s' ആണ്, പക്ഷേ ഒരു അറേയോ ഒബ്ജക്റ്റോ ആണ് പ്രതീക്ഷിച്ചത്."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "ഇപ്പോഴത്തെ സ്ഥാനത്തുള്ള അറേയുടെ വലിപ്പത്തെക്കാള്‍ വലുതാണ് ഇന്‍ഡെക്സ് '%d'"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "ഇപ്പോഴത്തെ സ്ഥാനത്തുള്ള ഒബ്ജക്റ്റിന്റെ വലിപ്പത്തെക്കാള്‍ വലുതാണ് ഇന്‍ഡെക്സ് '%d'"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "ഈ സ്ഥാനത്ത് ഒരു നോഡുമില്ല"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "അപ്പോഴത്തെ സ്ഥാനത്ത് '%s' ആണ് ഒരു അറേ അല്ല"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "ഇപ്പോഴത്തെ നോഡിന്റെ തരം '%s' ആണ്, പക്ഷേ ഒരു ഒബ്ജക്റ്റ് ആണ് പ്രതീക്ഷിച്ചത്."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "ഇപ്പോഴത്തെ സ്ഥാനത്തെ ഒബ്ജക്റ്റില്‍ '%s' എന്ന അംഗം നിര്‍വ്വചിച്ചിട്ടില്ല."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "അപ്പോഴത്തെ സ്ഥാനത്ത് '%s' ആണ് ഒരു ഒബ്ജക്ട്ട് അല്ല"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "അപ്പോഴത്തെ സ്ഥാനത്ത് '%s' ആണ് ഒരു മൂല്യം അല്ല"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "അപ്പോഴത്തെ സ്ഥാനത്ത് ഒരു വാചകം അല്ല"
index 57a0710..69d2ca8 100644 (file)
Binary files a/po/nb.gmo and b/po/nb.gmo differ
index fd5e787..5dd3825 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,15 +1,15 @@
 # Norwegian bokmål translation of json-glib.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# Kjartan Maraas <kmaraas@gnome.org>, 2011-2013.
+# Kjartan Maraas <kmaraas@gnome.org>, 2011-2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib 0.12.x\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-23 14:01+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-12 19:47+0100\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Kjartan Maraas <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb\n"
@@ -17,138 +17,215 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FIL"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formater JSON-filer."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: mangler filer"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Valider JSON-filer."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Forventet et JSON-objekt, men rotnoden er av type «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Uventet type «%s» i JSON-node"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr ""
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr ""
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Uventede ekstra elementer i JSON-tabell"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Ugyldig strengverdi ved konvertering til GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant-klasse «%c» er ikke støttet"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Ugyldig signatur for GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON-datastruktur er tom"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Tolkefeil: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON-data må være kodet i UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Kun en rotnode tillates i et JSONPath-uttrykk"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Rotnode etterfulgt av ugyldig tegn «%c»"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr ""
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Ugyldig definisjon av sett «%*s»"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr ""
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr ""
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr ""
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Ingen node tilgjengelig i denne posisjonen"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr ""
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr ""
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Medlem «%s» er ikke definert i objekt ved nåværende posisjon."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Nåværende posisjon innholder en «%s» og ikke et objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Nåværende posisjon inneholder en «%s» og ikke en verdi"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Nåværende posisjon inneholder ikke en streng-type"
diff --git a/po/oc.gmo b/po/oc.gmo
new file mode 100644 (file)
index 0000000..438c0d2
Binary files /dev/null and b/po/oc.gmo differ
diff --git a/po/oc.po b/po/oc.po
new file mode 100644 (file)
index 0000000..359c536
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,244 @@
+# Occitan translation of jon-glib.
+# Copyright (C) 2012 json-glib COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# Cédric Valmary <cvalmary@yahoo.fr>, 2015.
+# Cédric Valmary (Tot en òc) <cvalmary@yahoo.fr>, 2015.
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-10-31 09:29+0200\n"
+"Last-Translator: Cédric Valmary (Tot en òc) <cvalmary@yahoo.fr>\n"
+"Language-Team: Tot en òc (totenoc.eu)\n"
+"Language: oc\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.7.1\n"
+"X-Launchpad-Export-Date: 2015-05-20 16:56+0000\n"
+"X-Project-Style: gnome\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Formatatge indentat"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espacis d'indentacion"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s : %s : error de dobertura del fichièr : %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s : %s : error d'analisi del fichièr : %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s : %s : error d'escritura cap a stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s : %s : error de tampadura : %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FICHIÈR"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Mesa en forma de fichièrs JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format met en forma de ressorsas JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Error d'analisi de las opcions de la linha de comanda : %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Ensajatz « %s --help » per mai d'informacions."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s : fichièrs mancants"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validacion de fichièrs JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valida de donadas JSON a l'URI indicada."
+
+#: json-glib/json-gobject.c:943
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgstr "Objècte de tipe JSON esperat mas lo nosèl raiç es de tipe « %s »"
+
+#: json-glib/json-gvariant.c:523
+#, c-format
+msgid "Unexpected type '%s' in JSON node"
+msgstr "Tipe « %s » inesperat dins lo nosèl JSON"
+
+#: json-glib/json-gvariant.c:593
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Elements mancants dins lo tablèu JSON per èsser confòrme a un tuple"
+
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgstr "Simbòl tampant « ) » mancant dins lo tuple GVariant"
+
+#: json-glib/json-gvariant.c:629
+msgid "Unexpected extra elements in JSON array"
+msgstr "Elements suplementaris inesperats dins lo tablèu JSON"
+
+#: json-glib/json-gvariant.c:908
+msgid "Invalid string value converting to GVariant"
+msgstr "Cadena de caractèrs invalida per la conversion en GVariant"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr ""
+"Una entrada de diccionari GVariant requerís un objècte JSON que conten un "
+"sol membre"
+
+#: json-glib/json-gvariant.c:1248
+#, c-format
+msgid "GVariant class '%c' not supported"
+msgstr "Classa GVariant « %c » pas presa en carga"
+
+#: json-glib/json-gvariant.c:1296
+msgid "Invalid GVariant signature"
+msgstr "Signatura GVariant invalida"
+
+#: json-glib/json-gvariant.c:1344
+msgid "JSON data is empty"
+msgstr "Las donadas JSON son voidas"
+
+#: json-glib/json-parser.c:914
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: Error d'analisi : %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Las donadas JSON devon èsser encodadas en UTF-8"
+
+#: json-glib/json-path.c:388
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Un sol nosèl raiç d'autorizat dins una expression JSONPath"
+
+#: json-glib/json-path.c:397
+#, c-format
+msgid "Root node followed by invalid character '%c'"
+msgstr "Nosèl raiç seguit d'un caractèr invalid « %c »"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Nom de membre o caractèr joker mancant aprèp un caractèr « . »"
+
+#: json-glib/json-path.c:511
+#, c-format
+msgid "Malformed slice expression '%*s'"
+msgstr "Expression de talhon malformat « %*s »"
+
+#: json-glib/json-path.c:555
+#, c-format
+msgid "Invalid set definition '%*s'"
+msgstr "Definicion d'ensemble invalida « %*s »"
+
+#: json-glib/json-path.c:608
+#, c-format
+msgid "Invalid slice definition '%*s'"
+msgstr "Definicion de talha invalida « %*s »"
+
+#: json-glib/json-path.c:636
+#, c-format
+msgid "Invalid array index definition '%*s'"
+msgstr "Definicion d'indici de tablèu invalida « %*s »"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primièr caractèr « %c » invalid"
+
+#: json-glib/json-reader.c:473
+#, c-format
+msgid ""
+"The current node is of type '%s', but an array or an object was expected."
+msgstr ""
+"Lo nosèl corrent es de tipe « %s » mas un tablèu o un objècte èra esperat."
+
+#: json-glib/json-reader.c:485
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the array at the current position."
+msgstr ""
+"L'indici « %d » es mai grand que la talha del tablèu a la posicion actuala."
+
+#: json-glib/json-reader.c:502
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+msgstr ""
+"L'indici « %d » es mai grand que la talha de l'objècte indicat a la posicion "
+"actuala."
+
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
+msgid "No node available at the current position"
+msgstr "Cap de nosèl pas disponible a aquesta posicion."
+
+#: json-glib/json-reader.c:593
+#, c-format
+msgid "The current position holds a '%s' and not an array"
+msgstr ""
+"La posicion actuala conten un element de tipe « %s » e non pas un tablèu"
+
+#: json-glib/json-reader.c:669
+#, c-format
+msgid "The current node is of type '%s', but an object was expected."
+msgstr "Lo nosèl actual es de tipe « %s » mas un objècte èra esperat."
+
+#: json-glib/json-reader.c:676
+#, c-format
+msgid "The member '%s' is not defined in the object at the current position."
+msgstr "Lo membre « %s »  es pas definit dins l'objècte a la posicion actuala."
+
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
+#, c-format
+msgid "The current position holds a '%s' and not an object"
+msgstr ""
+"La posicion actuala conten un element de tipe « %s » e non pas un objècte"
+
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
+#, c-format
+msgid "The current position holds a '%s' and not a value"
+msgstr ""
+"La posicion actuala conten un element de tipe « %s » e non pas una valor"
+
+#: json-glib/json-reader.c:970
+msgid "The current position does not hold a string type"
+msgstr "La posicion actuala conten pas una cadena de caractèrs"
index b65e2fa..e2fa687 100644 (file)
Binary files a/po/or.gmo and b/po/or.gmo differ
index 257b416..bacdf4a 100644 (file)
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-08-09 18:26+0530\n"
 "Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
 "Language-Team: Oriya <or@li.org>\n"
@@ -19,138 +19,215 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Lokalize 1.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: ବିଶ୍ଳେଷଣ ତ୍ରୁଟି: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "ଏକ JSON ବସ୍ତୁକୁ ଆଶାକରୁଅଛି, କିନ୍ତୁ ରୁଟର ନୋଡ `%s' ପ୍ରକାରର ଅଟେ"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON ନୋଡରେ ଆଶାକରାଯାଇନଥିବା ପ୍ରକାର '%s'"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "ଏକ tuple କୁ ନିଶ୍ଚିତ କରିବା ପାଇଁ JSON ଆରେରେ ଅନୁପସ୍ଥିତ ଉପାଦାନ"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant tuple ପ୍ରକାରରେ ବନ୍ଦ କରିବା ଚିହ୍ନ  ')' ନାହିଁ"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON ଆରେର ଆଶାକରାଯାଇନଥିବା ଅତିରିକ୍ତ ଉପାଦାନ"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant କୁ ପରିବର୍ତ୍ତନ କରୁଥିବା ଅବୈଧ ବାକ୍ୟ ଖଣ୍ଡ ମୂଲ୍ୟ"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "ଏକ GVariant ଅଭିଧାନ ନିବେଶ ଗୋଟିଏ JSON ବସ୍ତୁକୁ ଗୋଟିଏ ସଦସ୍ୟ ସହିତ ଆଶାକରିଥାଏ"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant ଶ୍ରେଣୀ '%c' ସମର୍ଥିତ ନୁହଁ"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "ଅବୈଧ GVariant ହସ୍ତାକ୍ଷର"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON ତଥ୍ୟ ନାହିଁ"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: ବିଶ୍ଳେଷଣ ତ୍ରୁଟି: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "କେବଳ ଗୋଟିଏ ମୂଖ୍ୟ ଚାଳକ ନୋଡ JSONPath ଅଭିବ୍ୟକ୍ତିରେ ଅନୁମତି ପ୍ରାପ୍ତ"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "ଅବୈଧ ଅକ୍ଷର '%c' ଦ୍ୱାରା ମୂଖ୍ୟ ଚାଳକ ନୋଡ"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "ତ୍ରୁଟିଯୁକ୍ତ ଖଣ୍ଡ ଅଭିବ୍ୟକ୍ତି '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "ଅବୈଧ ସେଟ ସଂଜ୍ଞା '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "ଅବୈଧ ଖଣ୍ଡ ସଂଜ୍ଞା '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "ଅବୈଧ ଆରେ ଅନୁକ୍ରମଣିକା ସଂଜ୍ଞା '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "ପ୍ରଚଳିତ ନୋଡଟି '%s' ପ୍ରକାରର ଅଟେ, କିନ୍ତୁ ଏକ ଆରେ ଅଥବା ବସ୍ତୁ ଆଶାକରାଯାଇଥିଲା।"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "ଅନୁକ୍ରମଣିକା '%d' ଟି ପ୍ରଚଳିତ ଅବସ୍ଥାନରେ ଆରେ ଆକାର ଠାରୁ ବଡ଼ ଅଟେ।"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "ଅନୁକ୍ରମଣିକା '%d' ଟି ପ୍ରଚଳିତ ଅବସ୍ଥାନରେ ବସ୍ତୁ ଆକାର ଠାରୁ ବଡ଼ ଅଟେ।"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "ପ୍ରଚଳିତ ଅବସ୍ଥାନରେ କୌଣସି ନୋଡ ଉପଲବ୍ଧ ନାହିଁ।"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "ପ୍ରଚଳିତ ଅବସ୍ଥାନ ଏକ '%s' କୁ ଧାରଣ କରିଥାଏ ଏବଂ କୌଣସି ଆରେକୁ ଧାରଣ କରିନଥାଏ"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "ପ୍ରଚଳିତ ନୋଡଟି '%s' ପ୍ରକାରର ଅଟେ, କିନ୍ତୁ ଏକ ବସ୍ତୁକୁ ଆଶାକରୁଥିଲା।"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "'%s' ସଦସ୍ୟଟି ପ୍ରଚଳିତ ଅବସ୍ଥାନରେ ବସ୍ତୁ ପାଖରେ ବ୍ୟାଖ୍ୟା କରିନାହିଁ।"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "ପ୍ରଚଳିତ ଅବସ୍ଥାନ ଏକ '%s' କୁ ଧାରଣ କରିଥାଏ କିନ୍ତୁ କୌଣସି ବସ୍ତୁକୁ ଧାରଣ କରିନଥାଏ"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "ପ୍ରଚଳିତ ଅବସ୍ଥାନ ଏକ '%s' ଧାରଣ କରିଥାଏ କିନ୍ତୁ କୌଣସି ମୂଲ୍ୟ ଧାରଣ କରିନଥାଏ"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "ପ୍ରଚଳିତ ଅବସ୍ଥାନ କୌଣସି ବାକ୍ୟଖଣ୍ଡ ପ୍ରକାର ଧାରଣ କରିନଥାଏ"
index c541c80..f342e49 100644 (file)
Binary files a/po/pa.gmo and b/po/pa.gmo differ
index 70e9d61..06d491d 100644 (file)
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-02-26 07:26+0530\n"
 "Last-Translator: A S Alam <aalam@users.sf.net>\n"
 "Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
@@ -19,138 +19,215 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Lokalize 1.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "JSON ਆਬਜੈਕਟ ਦੀ ਮੰਗ ਸੀ, ਪਰ ਰੂਟ ਨੋਡ ਦੀ ਕਿਸਮ `%s' ਹੈ"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON ਨੋਡ ਵਿੱਚ ਅਣਜਾਣ ਕਿਸਮ '%s'"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON ਅਰੇ ਵਿੱਚ ਟਪਲ ਦੇਣ ਵਾਲੇ ਐਲੀਮੈਂਟ ਗੁੰਮ ਹਨ"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant ਟਪਲ ਕਿਸਮ ਵਿੱਚ ')' ਬੰਦ ਕਰਨ ਨਿਸ਼ਾਨ ਗੁੁੰਮ ਹੈ"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON ਅਰੇ ਵਿੱਚ ਵਾਧੂ ਐਲੀਮੈਂਟ ਦੀ ਮੰਗ ਸੀ"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant ਲਈ ਬਦਲਣ ਲਈ ਗਲਤ ਸਤਰ ਮੁੱਲ"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant ਡਿਕਸ਼ਨਰੀ ਐਂਟਰਈ ਲਈ ਇੱਕ ਮੈਂਬਰ ਲਈ ਠੀਕ JSON ਆਬਜੈਕਟ ਦੀ ਮੰਗ ਸੀ"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant ਕਲਾਸ '%c' ਸਹਾਇਕ ਨਹੀਂ"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "ਅਢੁੱਕਵਾਂ GVariant ਦਸਤਖਤ"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON ਡਾਟਾ ਖਾਲੀ ਹੈ।"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: ਪਾਰਸ ਗਲਤੀ: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath ਸਮੀਕਰਨ ਵਿੱਚ ਇੱਕ ਰੂਟ ਨੋਡ ਹੀ ਮਨਜ਼ੂਰ ਸੀ"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "ਗਲਤ ਅੱਖਰ '%c' ਦੇ ਬਾਅਦ ਰੂਟ ਨੋਡ"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "ਨਿਕਾਰਾ ਭਾਗ ਸਮੀਕਰਨ '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "ਗਲਤ ਸੈੱਟ ਪ੍ਰੀਭਾਸ਼ਾ '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "ਗਲਤ ਭਾਗ ਪ੍ਰੀਭਾਸ਼ਾ '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "ਗਲਤ ਅਰੇ ਇੰਡੈਕਸ ਪ੍ਰੀਭਾਸ਼ਾ '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "ਮੌਜੂਦਾ ਨੋਡ ਦੀ '%s' ਕਿਸਮ ਹੈ, ਪਰ ਅਰੇ ਜਾਂ ਆਬਜੈਕਟ ਦੀ ਮੰਗ ਸੀ।"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "ਇੰਡੈਕਸ '%d' ਮੌਜੂਦਾ ਸਥਿਤੀ ਉੱਤੇ ਅਰੇ ਦੇ ਆਕਾਰ  ਤੋਂ ਵੱਧ ਹੈ।"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "ਇੰਡੈਕਸ '%d' ਮੌਜੂਦਾ ਸਥਿਤੀ ਉੱਤੇ ਆਬਜੈਕਟ ਦੇ ਆਕਾਰ  ਤੋਂ ਵੱਧ ਹੈ।"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "ਮੌਜੂਦਾ ਸਥਿਤੀ ਉੱਤੇ ਕੋਈ ਵੀ ਨੋਡ ਉਪਲੱਬਧ ਨਹੀਂ"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "ਮੌਜੂਦਾ ਸਥਿਤੀ '%s' ਰੱਖਦੀ ਹੈ ਨਾ ਕਿ ਅਰੇ"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "ਮੌਜੂਦਾ ਨੋਡ ਦੀ '%s' ਕਿਸਮ ਹੈ, ਪਰ ਆਬਜੈਕਟ ਦੀ ਮੰਗ ਸੀ।"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "ਮੈਂਬਰ '%s' ਨੂੰ ਮੌਜੂਦਾ ਸਥਿਤੀ ਉੱਤੇ ਆਬਜੈਕਟ ਵਿੱਚ ਪ੍ਰਭਾਸ਼ਿਤ ਹੈ।"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "ਮੌਜੂਦਾ ਸਥਿਤੀ '%s' ਰੱਖਦੀ ਹੈ ਨਾ ਕਿ ਆਬਜੈਕਟ"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "ਮੌਜੂਦਾ ਸਥਿਤੀ '%s' ਰੱਖਦੀ ਹੈ, ਮੁੱਲ ਨਹੀਂ"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "ਮੌਜੂਦਾ ਸਥਿਤੀ ਸਤਰ ਕਿਸਮ ਨਹੀਂ ਰੱਖਦਾ ਹੈ"
index 8273c38..8544be3 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index 4570f89..5dd6710 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -4,15 +4,15 @@
 # pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
 # gnomepl@aviary.pl
 # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-# Piotr Drąg <piotrdrag@gmail.com>, 2011-2013.
-# Aviary.pl <gnomepl@aviary.pl>, 2011-2013.
+# Piotr Drąg <piotrdrag@gmail.com>, 2011-2015.
+# Aviary.pl <gnomepl@aviary.pl>, 2011-2015.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-02-17 20:13+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-08-26 19:42+0200\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <gnomepl@aviary.pl>\n"
 "Language: pl\n"
@@ -24,139 +24,216 @@ msgstr ""
 "X-Poedit-Language: Polish\n"
 "X-Poedit-Country: Poland\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Ładniejsze wyjście"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Spacje wcięcia"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: błąd podczas otwierania pliku: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: błąd podczas przetwarzania pliku: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: błąd podczas zapisywania do standardowego wyjścia"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: błąd podczas zamykania: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "PLIK"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatuje pliki JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatuje zasoby JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Błąd podczas przetwarzania opcji wiesza poleceń: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Polecenie „%s --help” wyświetli więcej informacji."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: brak plików"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Sprawdza pliki JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate sprawdza dane JSON na podanym adresie URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Oczekiwano obiektu JSON, ale typ głównego węzła to \"%s\""
+msgstr "Oczekiwano obiektu JSON, ale typ głównego węzła to „%s”"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
-msgstr "Nieoczekiwany typ \"%s\" w węźle JSON"
+msgstr "Nieoczekiwany typ „%s” w węźle JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Brak elementów w tablicy JSON, aby zgadzało się z krotką"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Brak zamykającego symbolu \")\" w typie krotki GVariant"
+msgstr "Brak zamykającego symbolu „)” w typie krotki GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Nieoczekiwane dodatkowe elementy w tablicy JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Nieprawidłowa wartość ciągu konwertowanego do GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Wpis słownika GVariant oczekuje obiektu JSON z dokładnie jednym elementem"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
-msgstr "Klasa GVariant \"%c\" jest nieobsługiwana"
+msgstr "Klasa GVariant „%c” jest nieobsługiwana"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Nieprawidłowy podpis GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Dane JSON są puste"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: błąd przetwarzania: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Dane JSON muszą być zakodowane w UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Dozwolony jest tylko jeden węzeł główny w wyrażeniu JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
-msgstr "Po węźle głównym występuje nieprawidłowy znak \"%c\""
+msgstr "Po węźle głównym występuje nieprawidłowy znak „%c”"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Brak nazwy elementu lub wieloznacznika po znaku ."
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr "Błędnie sformatowane wyrażenie plasterka \"%*s\""
+msgstr "Błędnie sformatowane wyrażenie plasterka „%*s”"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
-msgstr "Nieprawidłowe określenie zestawu \"%*s\""
+msgstr "Nieprawidłowe określenie zestawu „%*s”"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
-msgstr "Nieprawidłowe określenie plasterka \"%*s\""
+msgstr "Nieprawidłowe określenie plasterka „%*s”"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
-msgstr "Nieprawidłowe określenie indeksu tablicy \"%*s\""
+msgstr "Nieprawidłowe określenie indeksu tablicy „%*s”"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Nieprawidłowy pierwszy znak „%c”"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
-msgstr "Bieżący węzeł jest typu \"%s\", a oczekiwano tablicy lub obiektu."
+msgstr "Bieżący węzeł jest typu „%s”, a oczekiwano tablicy lub obiektu."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
-msgstr "Indeks \"%d\" jest większy niż rozmiar tablicy w bieżącym położeniu."
+msgstr "Indeks „%d” jest większy niż rozmiar tablicy w bieżącym położeniu."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
-msgstr "Indeks \"%d\" jest większy niż rozmiar obiektu w bieżącym położeniu."
+msgstr "Indeks „%d” jest większy niż rozmiar obiektu w bieżącym położeniu."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Brak węzłów dostępnych w bieżącym położeniu"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
-msgstr "Bieżące położenie przechowuje \"%s\", a nie tablicę"
+msgstr "Bieżące położenie przechowuje „%s”, a nie tablicę"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr "Bieżący węzeł jest typu \"%s\", a oczekiwano obiektu."
+msgstr "Bieżący węzeł jest typu „%s”, a oczekiwano obiektu."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
-msgstr "Element \"%s\" nie jest określony w obiekcie w bieżącym położeniu."
+msgstr "Element „%s” nie jest określony w obiekcie w bieżącym położeniu."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
-msgstr "Bieżące położenie przechowuje \"%s\", a nie obiekt"
+msgstr "Bieżące położenie przechowuje „%s”, a nie obiekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
-msgstr "Bieżące położenie przechowuje \"%s\", a nie wartość"
+msgstr "Bieżące położenie przechowuje „%s”, a nie wartość"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Bieżące położenie nie przechowuje typu ciągu"
index 7e92b46..ba2a479 100644 (file)
Binary files a/po/pt.gmo and b/po/pt.gmo differ
index df1a77e..3dc6818 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
 # json-glib's Portuguese translation.\r
-# Copyright © 2012, 2013 json-glib\r
+# Copyright © 2012, 2013, 2014 json-glib\r
 # This file is distributed under the same license as the json-glib package.\r
-# Duarte Loreto <happyguy_pt@hotmail.com>, 2012, 2013.\r
+# Duarte Loreto <happyguy_pt@hotmail.com>, 2012, 2013, 2014.\r
 # \r
+# Pedro Albuquerque <palbuquerque73@openmailbox.com>, 2015.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: 3.8\n"
+"Project-Id-Version: 3.12\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-03-15 01:05+0100\n"
-"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-06-25 09:43+0100\n"
+"Last-Translator: Pedro Albuquerque <palbuquerque73@openmailbox.com>\n"
+"Language-Team: Português <palbuquerque73@openmailbox.com>\n"
 "Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 2.91.6\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Embelezar resultado"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espaços da indentação"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: erro ao abrir ficheiro: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: erro ao processar ficheiro: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: erro ao escrever para stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: erro ao fechar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FICHEIRO"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatar ficheiros JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formata recursos JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Erro ao processar opções de linha de comandos: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Tente \"%s --help\" para mais informações."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: faltam ficheiros"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validar ficheiros JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valida dados JSON no URI indicado."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Esperado um objeto JSON, mas o nó raiz é do tipo `%s'"
+msgstr "Esperado um objeto JSON, mas o nó raiz é do tipo \"%s\""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
-msgstr "Tipo '%s' inesperado no nó JSON"
+msgstr "Tipo \"%s\" inesperado no nó JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
-msgstr "Elementos em falta na lista JSON para respeitar uma enupla"
+msgstr "Elementos em falta na matriz JSON para respeitar um conjunto"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Falta o símbolo de fecho ')' no tipo de enupla GVariant"
+msgstr "Falta o símbolo de fecho \")\" no tipo de conjunto GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
-msgstr "Elementos extra inesperados na lista JSON"
+msgstr "Elementos extra inesperados na matriz JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
-msgstr "Valor inválido de expressão ao converter em GVariant"
+msgstr "Valor inválido de cadeia ao converter em GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Uma entrada de dicionário GVariant espera um objeto JSON com exatamente um "
 "membro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
-msgstr "Classe GVariant '%c' não suportada"
+msgstr "Classe GVariant \"%c\" não suportada"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Assinatura GVariant inválida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Dados JSON estão vazios"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d:%d: Erro de processamento: %s"
+msgstr "%s:%d:%d: erro de processamento: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Dados JSON têm de estar codificados em UTF-8"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
-msgstr "Apenas um nó raiz é permitido numa expressão JSONPath"
+msgstr " um nó raiz é permitido numa expressão JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
-msgstr "Nó raiz seguido do caracter inválido '%c'"
+msgstr "Nó raiz seguido do carácter inválido \"%c\""
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Falta nome de membro ou caráter global após caráter \".\""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr "Expressão '%*s' de fatia mal-formada"
+msgstr "Expressão \"%*s\" de fatia mal formada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
-msgstr "Definição inválida de conjunto '%*s'"
+msgstr "Definição inválida de conjunto \"%*s\""
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
-msgstr "Definição inválida de fatia '%*s'"
+msgstr "Definição inválida de fatia \"%*s\""
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
-msgstr "Definição inválida de índice de lista '%*s'"
+msgstr "Definição inválida de índice de matriz \"%*s\""
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primeiro carácter \"%c\" inválido"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
-msgstr "O nó atual é do tipo '%s', mas era esperada uma lista ou um objeto."
+msgstr "O nó atual é do tipo \"%s\", mas era esperada uma matriz ou um objeto."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
-msgstr "O índice '%d' é maior do que o tamanho da lista na posição atual."
+msgstr "O índice \"%d\" é maior do que o tamanho da matriz na posição atual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
-msgstr "O índice '%d' é maior do que o tamanho do objeto na posição atual."
+msgstr "O índice \"%d\" é maior do que o tamanho do objeto na posição atual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nenhum nó disponível na posição atual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
-msgstr "A posição atual contém um '%s' e não uma lista"
+msgstr "A posição atual contém um \"%s\" e não uma matriz"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr "O nó atual é do tipo '%s', mas era esperado um objeto."
+msgstr "O nó atual é do tipo \"%s\", mas era esperado um objeto."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
-msgstr "O membro '%s' não está definido no objeto da posição atual."
+msgstr "O membro \"%s\" não está definido no objeto da posição atual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
-msgstr "A posição atual contém um '%s' e não um objeto"
+msgstr "A posição atual contém um \"%s\" e não um objeto"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
-msgstr "A posição atual contém um '%s' e não um valor"
+msgstr "A posição atual contém um \"%s\" e não um valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
-msgstr "A posição atual não contém um tipo expressão"
+msgstr "A posição atual não contém um tipo cadeia"
index 1d27082..4698411 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 02e6672..57e0831 100644 (file)
@@ -1,14 +1,17 @@
 # Brazilian Portuguese translation for json-glib.
-# Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
+# Copyright (C) 2013 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # Gabriel Speckhahn <gabspeck@gmail.com>, 2012.
+# Enrico Nicoletto <liverig@gmail.com>, 2013.
+# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-26 16:32-0300\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-12-19 11:01-0300\n"
 "Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
 "Language: pt_BR\n"
@@ -16,144 +19,221 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Virtaal 0.7.0\n"
+"X-Generator: Poedit 1.5.7\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Saída formatada"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espaços de recuo"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: erro ao abrir arquivo: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: erro ao analisar arquivo: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: erro ao gravar na saída padrão"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: erro ao fechar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ARQUIVO"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatar arquivos JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formata recursos JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Ocorreu erro ao analisar as opções de linha de comando: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Tente \"%s --help\" para mais informações."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: arquivos em falta"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validar arquivos JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valida dados JSON no URI fornecido."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Objeto JSON esperado, porém o nó raiz é do tipo \"%s\""
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Tipo inesperado \"%s\" no nó JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Faltam elementos no vetor JSON para que se forme uma tupla"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Símbolo de fechamento \")\" ausente no tipo de tupla GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elementos adicionais inesperados no vetor JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Valor string inválido ao converter para GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Uma entrada de dicionário GVariant espera um objeto JSON com exatamente um "
 "membro"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Não há suporte para a classe GVariant \"%c\""
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Assinatura GVariant inválida"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Dados JSON vazios"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d%d: Erro na análise: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Os dados JSON devem possuir codificação UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Apenas um nó raiz é permitido em uma expressão JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Nó raiz seguido de caractere inválido \"%c\""
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Faltando nome de membro ou coringa após o caractere \".\""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Expressão de corte \"%*s\" má formada"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Definição de conjunto \"%*s\" inválida."
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Definição de corte \"%*s\" inválida"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Definição de índice de vetor %*s\" inválida"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primeiro caractere \"%c\" inválido"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "O nó atual é do tipo \"%s\", mas um vetor ou objeto era esperado."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "O índice \"%d\" é maior do que o tamanho do vetor na posição atual."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "O índice \"%d\" é maior do que o tamanho do objeto na posição atual."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nenhum nó disponível na posição atual"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "A posição atual detém um \"%s\" e não um vetor"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "O nó atual é do tipo \"%s\", mas um objeto era esperado."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "O membro \"%s\" não está definido no objeto na posição atual."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "A posição atual detém um \"%s\" e não um objeto"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "A posição atual detém um \"%s\" e não um valor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "A posição atual não detém um tipo string"
 
diff --git a/po/ro.gmo b/po/ro.gmo
new file mode 100644 (file)
index 0000000..6d028b4
Binary files /dev/null and b/po/ro.gmo differ
diff --git a/po/ro.po b/po/ro.po
new file mode 100644 (file)
index 0000000..bca45e6
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,241 @@
+# Romanian translation for json-glib.
+# Copyright (C) 2015 json-glib's COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# Daniel Șerbănescu <daniel@serbanescu.dk>, 2015.
+# Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>, 2015.
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-06-19 19:17+0200\n"
+"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
+"Language-Team: Gnome Romanian Translation Team\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);;\n"
+"X-Generator: Virtaal 0.7.1\n"
+"X-Project-Style: gnome\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Înfrumusețează rezultatul"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Spații de indentare"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: eroare la deschiderea fișierului: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: eroare la parsarea fișierului: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: eroare la scrierea în stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: eroare la închidere: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FIȘIER"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatează fișiere JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatează resurse JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Eroare la parsarea opțiunilor din linia de comandă: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Încercați „%s --help” pentru mai multe informații."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: lipsesc fișiere"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validează fișiere JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate validează date JSON la URI-ul dat."
+
+#: json-glib/json-gobject.c:943
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgstr "Se așteaptă un obiect JSON, dar nodul rădăcină este de tip „%s”"
+
+#: json-glib/json-gvariant.c:523
+#, c-format
+msgid "Unexpected type '%s' in JSON node"
+msgstr "Tip neașteptat „%s” în nodul JSON"
+
+#: json-glib/json-gvariant.c:593
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Lipsesc elemente în matricea JSON pentru a fi în acord cu un tuplu"
+
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgstr "Lipsește simbolul de închidere „)” în tipul de tuplu GVariant"
+
+#: json-glib/json-gvariant.c:629
+msgid "Unexpected extra elements in JSON array"
+msgstr "Elemente adiționale neașteptate în matricea JSON"
+
+#: json-glib/json-gvariant.c:908
+msgid "Invalid string value converting to GVariant"
+msgstr "Valoare de șir nevalidă în timpul convertirii la GVariant"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr ""
+"O înregistrate de dicționar GVariant presupune un obiect JSON cu exact un "
+"membru"
+
+#: json-glib/json-gvariant.c:1248
+#, c-format
+msgid "GVariant class '%c' not supported"
+msgstr "Clasă GVariant „%c” nesuportată"
+
+#: json-glib/json-gvariant.c:1296
+msgid "Invalid GVariant signature"
+msgstr "Semnătură GVariant nevalidă"
+
+#: json-glib/json-gvariant.c:1344
+msgid "JSON data is empty"
+msgstr "Datele JSON sunt goale"
+
+#: json-glib/json-parser.c:914
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: Eroare la parsare: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Datele JSON trebuie să fie codate UTF-8"
+
+#: json-glib/json-path.c:388
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Doar un nod rădăcină este permis într-o expresie JSONPath"
+
+#: json-glib/json-path.c:397
+#, c-format
+msgid "Root node followed by invalid character '%c'"
+msgstr "Nod rădăcină urmat de caracterul nevalid „%c”"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Lipsește un nume de membru sau metacaracter după caracterul „.”"
+
+#: json-glib/json-path.c:511
+#, c-format
+msgid "Malformed slice expression '%*s'"
+msgstr "Expresie slice eronată „%*s”"
+
+#: json-glib/json-path.c:555
+#, c-format
+msgid "Invalid set definition '%*s'"
+msgstr "Definiție de set nevalidă „%*s”"
+
+#: json-glib/json-path.c:608
+#, c-format
+msgid "Invalid slice definition '%*s'"
+msgstr "Definiție slice nevalidă „%*s”"
+
+#: json-glib/json-path.c:636
+#, c-format
+msgid "Invalid array index definition '%*s'"
+msgstr "Definiția indexului matricii nevalidă „%*s”"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Primul caracter nevalid „%c”"
+
+#: json-glib/json-reader.c:473
+#, c-format
+msgid ""
+"The current node is of type '%s', but an array or an object was expected."
+msgstr ""
+"Nodul curent deste de tipul „%s”, dar o matrice sau un obiect a fost "
+"așteptat."
+
+#: json-glib/json-reader.c:485
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the array at the current position."
+msgstr ""
+"Indexul „%d” este mai mare decât dimensiunea matricii la poziția curentă."
+
+#: json-glib/json-reader.c:502
+#, c-format
+msgid ""
+"The index '%d' is greater than the size of the object at the current "
+"position."
+msgstr ""
+"Indexul „%d” este mai mare decât dimensiunea obiectului la poziția curentă."
+
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
+msgid "No node available at the current position"
+msgstr "Niciun nod disponibil la poziția curentă"
+
+#: json-glib/json-reader.c:593
+#, c-format
+msgid "The current position holds a '%s' and not an array"
+msgstr "Poziția curentă ține un „%s” ci nu o matrice"
+
+#: json-glib/json-reader.c:669
+#, c-format
+msgid "The current node is of type '%s', but an object was expected."
+msgstr "Nodul curent deste de tipul „%s”, dar un obiect a fost așteptat."
+
+#: json-glib/json-reader.c:676
+#, c-format
+msgid "The member '%s' is not defined in the object at the current position."
+msgstr "Membrul „%s” nu este definit în obiectul de la poziția curentă."
+
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
+#, c-format
+msgid "The current position holds a '%s' and not an object"
+msgstr "Poziția curentă ține un „%s” ci nu un obiect"
+
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
+#, c-format
+msgid "The current position holds a '%s' and not a value"
+msgstr "Poziția curentă ține un „%s” ci nu o valoare"
+
+#: json-glib/json-reader.c:970
+msgid "The current position does not hold a string type"
+msgstr "Poziția curentă nu ține un șir"
index e41b724..aec3d25 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 652323b..25fee7f 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,8 +10,8 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-11-04 21:15+0400\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-11 12:23+0300\n"
 "Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n"
 "Language-Team: русский <gnome-cyr@gnome.org>\n"
 "Language: ru\n"
@@ -19,143 +19,221 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-"X-Generator: Lokalize 1.2\n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 1.5.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Выводить в удобочитаемой форме"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Отступы"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: не удалось открыть файл: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: не удалось разобрать файл: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: не удалось записать в стандартный вывод"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: не удалось закрыть: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Форматирование файлов JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format форматирует ресурсы JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Не удалось разобрать параметры командной строки: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Используйте «%s --help» для получения подробной информации."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: отсутствуют файлы"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Проверка корректности файлов JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+"json-glib-validate проверяет корректность данных JSON по заданному URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Ожидается объект JSON, но корневой узел имеет тип «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Неожиданный тип «%s» в узле JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Отсутствуют элементы в массиве JSON для соответствия кортежу"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Отсутствует закрывающий символ «)» в кортеже типа GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Неожиданные дополнительные символы в массиве JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Некорректное строковое значение для преобразования к GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Элемент словаря GVariant должен быть объектом JSON с единственным членом"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Класс GVariant «%c» не поддерживается"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Недопустимая подпись GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Данные JSON отсутствуют"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: ошибка разбора: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Данные JSON должны быть в кодировке UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "В выражении JSONPath может быть только один корневой узел"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Корневой узел заканчивается некорректным символом «%c»"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Отсутствует имя члена или шаблон после символа «.»"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Неправильное выражение среза «%*s»"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Неверное определение присвоения «%*s»"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Неверное определение среза «%*s»"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Неверное определение индекса массива «%*s»"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Неверный первый символ «%c»"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Текущий узел имеет тип «%s», но ожидается массив или объект."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "В текущей позиции индекс «%d» больше размера массива."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "В текущей позиции индекс «%d» больше размера объекта."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "В текущей позиции отсутствует узел"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "В текущей позиции содержится «%s», а не массив"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Текущий узел имеет тип «%s», но ожидается объект."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "В текущей позиции член «%s» не определён в объекте."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "В текущей позиции содержится «%s», а не объект"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "В текущей позиции содержится «%s», а не значение"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "В текущей позиции не содержится строковое значение"
 
index 62371ec..fa722d0 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index 43d9ec5..0effcf9 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,110 +8,188 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-11-17 20:46+0100\n"
-"Last-Translator: Pavol Klačanský <pavol@klacansky.com>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-03-09 18:34+0100\n"
+"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
 "Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
 "Language: sk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
+"X-Generator: Poedit 1.7.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Skrášliť výstup"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Odsadenie v medzerách"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: chyba pri otváraní súboru: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: chyba pri analyzovaní súboru: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: chyba pri zápise do štandardného výstupu"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: chyba pri zatváraní: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "SÚBOR"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formátovať súbory JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format sformátuje zdroje JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Chyba pri analýze volieb príkazového riadka: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Viac informácií získate po zadaní príkazu „%s --help“."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: chýbajúce súbory"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Overovať súbory JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate overí údaje JSON na danej URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Očakáva sa objekt JSON, ale koreňový uzol je typu „%s“"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Neočakávaný typ „%s“ v uzle JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Chýbajú prvky v poli JSON na zmenu n-tice"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Chýba uzatvárací symbol „)“ v type n-tica pre GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Neočakávané nadbytočné prvky v poli JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Neplatná hodnota reťazca, ktorý sa má konvertovať na typ GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Položka typu slovník pre GVariant očakáva objekt JSON s presne jedným členom"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Trieda pre GVariant „%c“ nie je podporovaná"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Neplatný podpis pre GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Dáta JSON sú prázdne"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Chyba analýzy: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Údaje JSON musia byť v kódovaní UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Vo výraze JSONPath môže byť len jeden koreňový uzol"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Za koreňovým uzlom je neplatný znak „%c“"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Chýba názov člena alebo zástupný znak po znaku „.“"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Chybný výraz „%*s“ pre výsek"
 
 # MČ: set sa zväčša prekladá ako množina, vyhovoval by tento výraz?
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Neplatná definícia množiny „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Neplatná definícia výseku „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Neplatná definícia indexu poľa „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Neplatný prvý znak „%c“"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Bolo očakávané pole alebo objekt, ale aktuálny uzol je typu „%s“."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
 "Index s hodnotou „%d“ poľa na aktuálnej pozícii je väčší ako jeho veľkosť."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
@@ -119,41 +197,41 @@ msgid ""
 msgstr ""
 "Index s hodnotou „%d“ objektu na aktuálnej pozícii je väčší ako jeho veľkosť."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Na aktuálnej pozícii nie je dostupný žiadny uzol"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Na aktuálnej pozícii je „%s“ a nie pole"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Bol očakávaný objekt, ale aktuálny uzol je typu „%s“."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Člen „%s“ nie je definovaný v objekte na aktuálnej pozícii."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Na aktuálnej pozícii je „%s“ a nie objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Na aktuálnej pozícii je „%s“ a nie hodnota"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Na aktuálnej pozícii je „%s“ a nie reťazec"
index fe8c0a5..7550f8f 100644 (file)
Binary files a/po/sl.gmo and b/po/sl.gmo differ
index d0ae617..14bfd8d 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,17 +1,16 @@
-# Slovenian translations for nemiver.
 # Slovenian translation for json-glib.
 # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 #
-# Matej Urbančič <mateju@svn.gnome.org>, 2011.
+# Matej Urbančič <mateju@svn.gnome.org>, 2011-2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-10-25 19:20+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-04-03 20:37+0100\n"
 "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
 "Language: sl\n"
@@ -20,143 +19,219 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
 "%100==4 ? 3 : 0);\n"
-"X-Poedit-Country: SLOVENIA\n"
-"X-Poedit-Language: Slovenian\n"
 "X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: Poedit 1.5.4\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Olepšaj odvod"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Presledki zamika"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: napaka odpiranja datoteke: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: napaka razčlenjevanja datoteke: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: napaka pisanja na standardni odvod"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: napaka zapiranja: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Oblikuj datoteke JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "Možnost json-glib-format oblikuje zapis virov JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Napaka med razčlenjevanjem možnosti ukazne vrstice: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Poskusite \"%s --help\" za več podrobnosti."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: manjkajoče datoteke"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Overi datoteke JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "Možnost json-glib-validate overi podatke JSON za podani naslov URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Pričakovan je predmet JSON, vendar pa je korensko vozlišče vrste `%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Nepričakovana vrsta '%s' v vozlišču JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Manjkajo predmeti v polju JSON za skladnost z n-terico."
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Manjka zaključni znak ')' v vrsti n-terice GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Nepričakovan dodatni predmet polja JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Neveljavna vrednost niza med pretvarjanjem v GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Slovar GVariant pričakuje predmet JSON z natanko enim določilom"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Razred GVariant '%c' ni podprt."
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Neveljaven podpis GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Podatki JSON so prazni"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: napaka razčlenjevanje: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Podatki JSON morajo biti kodirani v naboru UTF-8"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Le eno korensko vozlišče je dovoljeno v izrazu JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Korensko vozlišče se konča z neveljavnim znakom '%c'"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Manjka ime člana ali pa nadomestni znak po znaku . (pika)"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Napačno oblikovan izraz rezine '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Neveljavno določilo '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Neveljavno določilo rezine '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Neveljavno določilo kazala polja '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Neveljaven prvi znak '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Trenutno vozlišče je vrste '%s', pričakovano pa je polje ali predmet."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Kazalo '%d' je večje od velikosti polja na trenutnem položaju."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Kazalo '%d' je večje od velikosti predmeta na trenutnem položaju."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Na trenutnem položaju ni razpoložljivega vozlišča."
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Trenutni položaj vsebuje '%s' in ne polja"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Trenutno vozlišče je vrste '%s', pričakovan pa je predmet."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Določilo '%s' ni določan v predmetu na trenutnem položaju."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Trenutni položaj vsebuje '%s' in ne predmeta"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Trenutni položaj vsebuje '%s' in ne vrednosti"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Trenutni položaj ne vsebuje niza"
 
index 9a54ddf..c4ebd21 100644 (file)
Binary files a/po/sr.gmo and b/po/sr.gmo differ
index a6b012e..1d5a97d 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,14 +1,14 @@
 # Serbian translation for json-glib.
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011, 2012, 2013.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011 — 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib json-glib-0-14\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-19 11:45+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-21 03:58+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnom@prevod.org>\n"
 "Language: sr\n"
@@ -19,138 +19,215 @@ msgstr ""
 "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Излаз улепшавања"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Размаци за увлачење"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: грешка отварања датотеке: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: грешка обраде датотеке: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: грешка писања на стандардни излаз"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: грешка затварања: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ДАТОТЕКА"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Обликујте ЈСОН датотеке."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "„json-glib-format“ обликује ЈСОН изворишта."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Грешка обраде опција линије наредби: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Пробајте „%s --help“ за више података."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: недостају датотеке"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Потврдите ЈСОН датотеке."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "„json-glib-validate“ потврђује ЈСОН податке и дату путању."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Очекујем ЈСОН објекат, али корени чвор је врсте „%s“"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Неочекивана врста „%s“ у ЈСОН чвору"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Недостају елементи у ЈСОН низу да би био у складу са n-торком"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Недостаје симбол затварања „)“ у врсти n-торке Гваријанта"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Неочекивани додатни елементи у ЈСОН низу"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Неисправна вредност ниске претварајући у Гваријант"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Унос речника Гваријанта очекује ЈСОН објекат са тачно једним чланом"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Разред Гваријанта „%c“ није подржан"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Неисправан потпис Гваријанта"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "ЈСОН подаци су празни"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Грешка обраде: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "ЈСОН подаци морају бити у УТФ-8 кодирању"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Само један корени чвор је допуштен у изразу ЈСОНПутање"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "За кореним чвором следи неисправан знак „%c“"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Недостаје назив члана или џокер након знака тачке (.)"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Неисправан израз исечка „%*s“"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Неисправна одредница скупа „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Неисправна одредница исечка „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Неисправна одредница регистра низа „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Неисправан први знак „%c“"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Тренутни чвор је врсте „%s“, али је очекиван низ или објекат."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Регистар „%d“ је већи од величине низа на тренутном положају."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Регистар „%d“ је већи од величине објекта на тренутном положају."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Ниједан чвор није доступан на тренутном положају"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Тренутни положај садржи „%s“ а не низ"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Тренутни чвор је врсте „%s“, али је очекиван објекат."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Члан „%s“ није одређен у објекту на тренутном положају."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Тренутни положај садржи „%s“ а не објекат"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Тренутни положај садржи „%s“ а не вредност"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Тренутни положај не садржи врсту ниске"
index b0c8dcf..16c99bb 100644 (file)
Binary files a/po/sr@latin.gmo and b/po/sr@latin.gmo differ
index d4443ed..464dc74 100644 (file)
@@ -1,14 +1,14 @@
 # Serbian translation for json-glib.
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
-# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011, 2012, 2013.
+# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011 — 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib json-glib-0-14\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-19 11:45+0200\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-21 03:58+0200\n"
 "Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnom@prevod.org>\n"
 "Language: sr@latin\n"
@@ -19,138 +19,215 @@ msgstr ""
 "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Izlaz ulepšavanja"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Razmaci za uvlačenje"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: greška otvaranja datoteke: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: greška obrade datoteke: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: greška pisanja na standardni izlaz"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: greška zatvaranja: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Oblikujte JSON datoteke."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "„json-glib-format“ oblikuje JSON izvorišta."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Greška obrade opcija linije naredbi: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Probajte „%s --help“ za više podataka."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: nedostaju datoteke"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Potvrdite JSON datoteke."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "„json-glib-validate“ potvrđuje JSON podatke i datu putanju."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Očekujem JSON objekat, ali koreni čvor je vrste „%s“"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Neočekivana vrsta „%s“ u JSON čvoru"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Nedostaju elementi u JSON nizu da bi bio u skladu sa n-torkom"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Nedostaje simbol zatvaranja „)“ u vrsti n-torke Gvarijanta"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Neočekivani dodatni elementi u JSON nizu"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Neispravna vrednost niske pretvarajući u Gvarijant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Unos rečnika Gvarijanta očekuje JSON objekat sa tačno jednim članom"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Razred Gvarijanta „%c“ nije podržan"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Neispravan potpis Gvarijanta"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON podaci su prazni"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: Greška obrade: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON podaci moraju biti u UTF-8 kodiranju"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Samo jedan koreni čvor je dopušten u izrazu JSONPutanje"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Za korenim čvorom sledi neispravan znak „%c“"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Nedostaje naziv člana ili džoker nakon znaka tačke (.)"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Neispravan izraz isečka „%*s“"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Neispravna odrednica skupa „%*s“"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Neispravna odrednica isečka „%*s“"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Neispravna odrednica registra niza „%*s“"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Neispravan prvi znak „%c“"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Trenutni čvor je vrste „%s“, ali je očekivan niz ili objekat."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Registar „%d“ je veći od veličine niza na trenutnom položaju."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Registar „%d“ je veći od veličine objekta na trenutnom položaju."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Nijedan čvor nije dostupan na trenutnom položaju"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Trenutni položaj sadrži „%s“ a ne niz"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Trenutni čvor je vrste „%s“, ali je očekivan objekat."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Član „%s“ nije određen u objektu na trenutnom položaju."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Trenutni položaj sadrži „%s“ a ne objekat"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Trenutni položaj sadrži „%s“ a ne vrednost"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Trenutni položaj ne sadrži vrstu niske"
index f8a12ad..1cd1298 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 03b2b7d..0d22bd6 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
 # Swedish translation for json-glib.
-# Copyright (C) 2012 Free Software Foundation, Inc.
+# Copyright © 2012-2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the json-glib package.
 # Daniel Nylander <po@danielnylander.se>, 2012.
+# Sebastian Rasmussen <sebras@gmail.com>, 2014.
+# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-01-22 00:38+0100\n"
-"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2015-08-09 23:38+0200\n"
+"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.3\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Snygga till utmatning"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Indenteringsblanksteg"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: misslyckades att öppna fil: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: misslyckades att tolka fil: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: misslyckades att skriva till stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: misslyckades att stänga: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FIL"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formatera JSON-filer."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formaterar JSON-resurser."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Misslyckades att tolka kommandoradsflaggor: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Prova ”%s --help” för mer information."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: saknar fil"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Validera JSON-filer."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate validerar JSON-data vid den givna URI:n."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr ""
+msgstr "Förväntar sig ett JSON-objekt, men rotnoden är av typen ”%s”"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
-msgstr "Oväntad typ \"%s\" i JSON-nod"
+msgstr "Oväntad typ ”%s” i JSON-nod"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
-msgstr ""
+msgstr "Saknar element i JSON-vektor för att överrensstämma med en tupel"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr ""
+msgstr "Saknar avslutande symbol ”)” i GVariant-tupeltypen"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
-msgstr "Oväntade extra-element i JSON-array"
+msgstr "Oväntade extra-element i JSON-vektor"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Ogiltig strängvärdeskonvertering till GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
+"En post i en GVariant-ordbok förväntar sig ett JSON-objekt med exakt en "
+"medlem"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
-msgstr "GVariant-klassen \"%c\" stöds inte"
+msgstr "GVariant-klassen ”%c” stöds inte"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Ogiltig GVariant-signatur"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
-msgstr "JSON-data är tom"
+msgstr "JSON-datan är tom"
 
-#: json-glib/json-parser.c:825
-#, fuzzy, c-format
+#: json-glib/json-parser.c:914
+#, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d: Tolkningsfel: %s"
+msgstr "%s:%d:%d: Tolkningsfel: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON-data måste vara UTF-8-kodad"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
-msgstr ""
+msgstr "Bara en rotnod är tillåten i ett JSONPath-uttryck"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
-msgstr "Rotnod efterföljd av otillåtet tecken \"%c\""
+msgstr "Rotnod efterföljd av otillåtet tecken ”%c”"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Saknar medlemsnamn eller jokertecken efter .-tecken"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr ""
+msgstr "Missbildat skivuttryck ”%*s”"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
-msgstr ""
+msgstr "Ogiltig mängddefinition ”%*s”"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
-msgstr ""
+msgstr "Ogiltig skivdefinition ”%*s”"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
-msgstr ""
+msgstr "Ogiltig vektorindexdefinition ”%*s”"
+
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Ogiltigt första tecken ”%c”"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
+"Aktuell nod är av typen ”%s”, men en vektor eller ett objekt var förväntat."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr ""
+"Indexet ”%d” är större än storleken på vektorn på den aktuella positionen."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr ""
+"Indexet ”%d” är större än storleken på objektet på den aktuella positionen."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Ingen nod tillgänglig på aktuell position"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
-msgstr "Aktuell position innehåller en \"%s\" och inte en array"
+msgstr "Aktuell position innehåller en ”%s” och inte en vektor"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr ""
+msgstr "Aktuell nod är av typen ”%s”, men ett objekt var förväntat."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
-msgstr "Medlemmen \"%s\" är inte definierad i objektet på aktuell position."
+msgstr "Medlemmen ”%s” är inte definierad i objektet på aktuell position."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
-msgstr "Aktuell position innehåller en \"%s\" och inte ett objekt"
+msgstr "Aktuell position innehåller en ”%s” och inte ett objekt"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
-msgstr "Aktuell position innehåller en \"%s\" och inte ett värde"
+msgstr "Aktuell position innehåller en ”%s” och inte ett värde"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Aktuell position innehåller inte en strängtyp"
-
-#~ msgid "The current position does not hold an integer type"
-#~ msgstr "Aktuell position innehåller inte en heltalstyp"
-
-#~ msgid "The current position does not hold a floating point type"
-#~ msgstr "Aktuell position innehåller inte en flyttalstyp"
-
-#~ msgid "The current position does not hold a boolean type"
-#~ msgstr "Aktuell position innehåller inte en boolesk typ"
index f3b434f..eba6795 100644 (file)
Binary files a/po/te.gmo and b/po/te.gmo differ
index 0463d32..8405a54 100644 (file)
--- a/po/te.po
+++ b/po/te.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-10-09 16:48+0530\n"
 "Last-Translator: sasi <sasi@swecha.net>\n"
 "Language-Team: telugu <localization@swecha.net>\n"
@@ -21,138 +21,215 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 "X-Generator: Gtranslator 2.91.5\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "% s:% d: అన్వయ దోషం:% s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "ఒక JSON అంశంకు అవకాశం ఉంది, కానీ రూట్ నోడ్`% s' రకంగా ఉంటుంది "
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "ఊహించని రకం '% s' JSON నోడ్ లో"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "ఒక క్రమానుగుణ శ్రేణి కోసం JSON శ్రేణిలో తప్పిన అంశాలు "
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant tuple రకంలో  ముగింపు చిహ్నం ')' లేదు"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON శ్రేణి లో ఊహించని అదనపు అంశాలు "
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant మారిన చెల్లని స్ట్రింగ్ విలువ "
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "ఒక GVariant నిఘంటువు ఎంట్రీ సరిగ్గా ఒక సభ్యుడుగా ఉంటుందని ఒక JSON అంశం అంచనా "
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant తరగతి '%c'మద్దతు లేదు"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "చెల్లని GVariant సంతకం"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON డేటా ఖాళీగా ఉంది"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "% s:% d: అన్వయ దోషం:% s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "కేవలం ఒక రూట్ నోడ్కు ఒక JSONPath వ్యక్తీకరణ లో అనుమతి ఉంది"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "చెల్లని అక్షరం '%c' తర్వాత రూట్ నోడ్"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "తప్పుడు ముక్క వ్యక్తీకరణ '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "చెల్లని వరు నిర్వచనం '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "చెల్లని ముక్క నిర్వచనం '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "చెల్లని వరు సూచిక నిర్వచనం '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "ప్రస్తుత నోడ్ రకం '%s' యొక్క, కానీ ఒక విన్యాసం లేదా ఒక వస్తువు భావించారు."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "ఇండెక్స్ '%d' ప్రస్తుత స్థితి వద్ద శ్రేణి యొక్క పరిమాణం కంటే ఎక్కువగా ఉంటుంది."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "ఇండెక్స్ '%d' ప్రస్తుత స్థితి వద్ద వస్తువు యొక్క పరిమాణం కంటే ఎక్కువగా ఉంటుంది."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "ప్రస్తుత స్థానంలో అందుబాటులో లేదు నోడ్ "
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "ప్రస్తుత స్థితి ఒక '%s'కలిగి ఉంది మరియు వరుస కాదు "
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "ప్రస్తుత నోడ్ '%s' యొక్క  రకం, కానీ ఒక వస్తువుని భావించారు."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "సభ్యుడు '%s', ప్రస్తుత స్థితి వద్ద అంశం వివరించబడలేదు."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "ప్రస్తుత స్థితి ఒక '%s' కలిగి ఉంది మరియు ఒక వస్తువు కాదు "
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "ప్రస్తుత స్థితి ఒక '%s'కలిగి ఉంది మరియు ఒక విలువ కాదు "
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "ప్రస్తుత స్థితి పదాల రకం కలిగి లేదు"
index 6d81116..e805a27 100644 (file)
Binary files a/po/tg.gmo and b/po/tg.gmo differ
index 5fe7fd0..53c5c61 100644 (file)
--- a/po/tg.po
+++ b/po/tg.po
@@ -8,148 +8,229 @@ msgstr ""
 "Project-Id-Version: Tajik Gnome\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-01-21 18:08+0500\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2013-12-20 14:32+0500\n"
 "Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
 "Language-Team: \n"
 "Language: tg\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.6.3\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Ҳамворкунии барориш"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Фазоҳои фосилагузорӣ"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: хатои кушодани файли: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: хатои таҷзияи файли: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: хатои сабт ба stdout"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: хатои пӯшидани: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Формати файли JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "Формати json-glib-format манбаҳои JSON-ро формат мекунад."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Хатои таҷзияи имконоти хати фармонӣ: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Барои иттилооти бештар фармони \"%s --help\"-ро иҷро намоед."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: дорои файлҳои намерасидагӣ мебошад"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Санҷидани эътибори файли JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+"Қимати json-glib-validate иттилооти JSON-ро дар суроғаи URI додашуда тафтиш "
+"мекунад."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr ""
+"Дар ҳоли мунтазири объекти JSON, вале гиреҳи root дорои намуди `%s' мебошад"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
-msgstr ""
+msgstr "Навъи пешбининашудаи '%s' дар гиреҳи JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
-msgstr ""
+msgstr "Унсурҳои ғоиб дар қатори JSON барои мутобиқат ба чандтогӣ"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr ""
+msgstr "Аломати пӯшонидани ')' ғоиб дар навъи чандтогии GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
-msgstr ""
+msgstr "Унсурҳои иловагии пешбининашуда дар қатори JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
-msgstr ""
+msgstr "Қимати табдилдиҳии сатр ба GVariant нодуруст аст"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
+"Вуруди луғати GVariant дар ҳоли мунтазири объекти JSON бо як рақам мебошад"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
-msgstr ""
+msgstr "Синфи GVariant-и '%c' дастгирӣ намешавад"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
-msgstr ""
+msgstr "Имзои нодурусти GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
-msgstr ""
+msgstr "Иттилооти JSON холӣ аст"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr ""
+msgstr "%s:%d:%d: Хатои таҷзия: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Иттилооти JSON бояд ба формати UTF-8 рамзгузорӣ шавад"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
-msgstr ""
+msgstr "Танҳо як гиреҳи решагӣ дар ифодаи JSONPath иҷозат дода шудааст"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
-msgstr ""
+msgstr "Гиреҳи решагӣ, ки бо аломати беэътибори '%c' пайгирӣ шуд"
+
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Баъд аз аломати \".\" номи узв ё номи алоқаманд вуҷуд надорад"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
-msgstr ""
+msgstr "Ифодаи бадшакл: '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Таърифи маҷмӯи \"%*s\" беэътибор аст"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
-msgstr ""
+msgstr "Таърифи нодуруст: '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Таърифи индекси қатори \"%*s\" беэътибор аст"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Аломати аввалини нодуруст: '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
-msgstr ""
+msgstr "Гиреҳи ҷорӣ аз навъи '%s' аст, вале қатор ё объект пешбинӣ шуда буд."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
-msgstr ""
+msgstr "Индекси '%d' калонтар аз андозаи қатор дар вазъияти ҷорӣ мебошад."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
-msgstr ""
+msgstr "Индекси '%d' калонтар аз андозаи объект дар вазъияти ҷорӣ аст."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
-msgstr ""
+msgstr "Ҳеҷ гуна гиреҳ дар вазъияти ҷорӣ дастрас нест"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
-msgstr ""
+msgstr "Вазъияти ҷорӣ '%s'-ро нигаҳдорӣ мекунад, на қаторро"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
-msgstr ""
+msgstr "Гиреҳи ҷорӣ аз навъи '%s' аст, вале объект пешбинӣ шудааст."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
-msgstr ""
+msgstr "Дар вазъияти ҷорӣ аъзои '%s' дар объект муайян нашудааст."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
-msgstr ""
+msgstr "Вазъияти ҷорӣ '%s'-ро нигаҳдорӣ мекунад, на объектро"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
-msgstr ""
+msgstr "Вазъияти ҷорӣ '%s'-ро нигаҳдорӣ мекунад, на қиматро"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Ҷойгиршавии ҷорӣ ягон намуди сатрро дар бар намегирад"
index bc00b7a..baa3be8 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 8c7ebe9..8c22e0f 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
 # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 #
-# Muhammet Kara <muhammet.k@gmail.com>, 2011.
+# Yaşar Şentürk <yasarix@gmail.com>, 2014.
+# Muhammet Kara <muhammetk@gmail.com>, 2011, 2014.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2011-11-16 12:18+0200\n"
-"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
-"Language-Team: Turkish <gnome-turk@gnome.org>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-12-04 23:35+0200\n"
+"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
+"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
 "Language: tr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Çıktıyı güzelleştir"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Girinti boşluğu"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: dosyayı açarken hata: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: dosyayı ayrıştırırken hata: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: stdout'a yazarken hata"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: kapatma hatası: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DOSYA"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON dosyalarını biçimle."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format, JSON verilerini biçimlendirir."
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Komut satırı seçeneklerini ayrıştırırken hata: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Daha fazla bilgi için \"%s --help\" komutunu girin."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: dosyalar eksik"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "JSON dosyalarını doğrula."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate verilen URI'deki JSON verisini doğrular."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Bir JSON nesnesi bekleniyor, ama kök düğümü `%s' türünde"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON düğümünde beklenmeyen '%s' türü"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "JSON dizisinin bir demete uyması için gereken öğeler eksik"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "GVariant demeti türünde kapatma sembolü ')' eksik"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON dizisinde beklenmeyen ek öğeler"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "GVariant'a dönüştürmede geçersiz dizge değeri"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Bir GVariant sözlük girdisi, tam olarak bir üyesi olan JSON nesnesi bekler"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant sınıfı '%c' desteklenmiyor"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Geçersiz GVariant imzası"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON verisi boş"
 
-#: json-glib/json-parser.c:825
-#, fuzzy, c-format
+#: json-glib/json-parser.c:914
+#, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d: Ayrıştırma hatası: %s"
+msgstr "%s:%d:%d: Ayrıştırma hatası: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON verisi UTF-8 ile kodlanmış olmalıdır"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath ifadesinde yalnızca bir kök düğümüne izin verilir"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Kök düğümünü izleyen '%c' karakteri geçersiz"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Öge ismi ya da . karakterinden sonraki joker karakter eksik"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Kusurlu dilim ifadesi '%*s'"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Geçersiz küme tanımı '%*s'"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Geçersiz dilim tanımı '%*s'"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Geçersiz dizi indisi tanımı '%*s'"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Geçersiz ilk karakter '%c'"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Geçerli düğümün türü '%s', ama bir dizi ya da bir nesne bekleniyordu."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "'%d' indisi, geçerli konumdaki dizinin boyutundan daha büyük."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "'%d' indisi, geçerli konumdaki nesnenin boyutundan daha büyük."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Geçerli konumda kullanılabilir düğüm yok"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Geçerli konum bir dizi değil '%s' bulunduruyor"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Geçerli düğümün türü '%s', ama bir nesne bekleniyordu."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "'%s' üyesi, geçerli konumdaki nesnede tanımlı değil."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Geçerli konum bir nesne değil '%s' bulunduruyor"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Geçerli konum bir değer değil '%s' bulunduruyor"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Geçerli konum bir dizge türü bulundurmuyor"
 
index 9e38f4a..d66ffbd 100644 (file)
Binary files a/po/ug.gmo and b/po/ug.gmo differ
index d1f2190..ac05911 100644 (file)
--- a/po/ug.po
+++ b/po/ug.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2013-01-26 09:43+0900\n"
 "Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n"
 "Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -17,143 +17,220 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr ""
 "ئەسلى JSON نەڭى بولۇشقا تېگىشلىك ئىدى، بىراق غول تۈگۈننىڭ تىپى «%s» ئىكەن"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "ھازىر JSON تۈگۈننىڭ تىپى ‹%s› بولۇپ قېلىپتۇ"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr ""
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr ""
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "ھازىر JSON تىزىقىدا ئارتۇقچە ئېلېمېنت بار ئىكەن"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "تېكىستنىڭ قىممىتىنى GVariant قا ئايلاندۇرغىلى بولمايدىكەن"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "ئادەتتە GVariant لۇغەت ئېلېمېنتى چوقۇم بىرلا ئەزايى بار بولغان JSON نەڭى "
 "بولۇشى كېرەك"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant تىپ ‹%c› نى قوللىمايدۇ"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "ئىناۋەتسىز GVariant ئىمزاسى"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON سانلىق-مەلۇماتى قۇرۇق"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: پارچىلاشتا خاتالىق كۆرۈلدى: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr ""
 "ئادەتتە JSONPath ئىپادىسىدە پەقەت بىرلا غول ئېلېمېنتقا ئىجازەت بېرىلگەن"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "پەقەت بىرلا غول ئېلېمېنت كەينىدە ‹%c› دېگەن ھەرپ بار ئىكەن"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "بولمىغۇر كەسمە ئىپادىسى ‹%*s›"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "توپلام ئېنىقلىمىسى ئىناۋەتسىز ‹%*s›"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "كەسمە(slice) ئېنىقلىمىسى ئىناۋەتسىز ‹%*s›"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "تىزىق ئىندېكس ئېنىقلىمىسى ئىناۋەتسىز ‹%*s›"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "نۆۋەتتىكى تۈگۈننىڭ تىپى ‹%s›، بىراق بۇ يەرگە تىزىق ياكى بىر نەڭ كەلسە بولاتتى"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "ئىندېكس ‹%d› ، نۆۋەتتىكى ئورۇندىكى تىزىقنىڭ چوڭلۇقىدىن چوڭ."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "ئىندېكس ‹%d› ، نۆۋەتتىكى ئورۇندىكى نەڭنىڭ چوڭلۇقىدىن چوڭ."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "نۆۋەتتىكى ئورۇندا تۈگۈن يوق"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "نۆۋەتتىكى ئورۇندىكىسى ‹%s› بولۇپ، تىزىق ئەمەس"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "نۆۋەتتىكى ئورۇندىكى تۈگۈننىڭ تىپى ‹%s›، بىراق نەڭ كەلسە بولاتتى."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "نۆۋەتتىكى ئورۇندىكى نەڭدە ‹%s› دېگەن ئەزا ئېنىقلانمىغان."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "نۆۋەتتىكى ئورۇندىكىسى ‹%s› بولۇپ، نەڭ ئەمەس"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "نۆۋەتتىكى ئورۇندىكىسى ‹%s› بولۇپ، قىممەت ئەمەس"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "نۆۋەتتىكى ئورۇندىكىسىنىڭ تىپى تېكىست ئەمەس"
index 4b98278..ac58d82 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 3e1c2db..a0c002d 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -2,14 +2,15 @@
 # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER
 # This file is distributed under the same license as the json-glib package.
 # Daniel <ted.korostiled@gmail.com>, 2012.
+# Mykola Tkach <Stuartlittle1970@gmail.com>, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-08-16 09:51-0700\n"
-"Last-Translator: Daniel <ted.korostiled@gmail.com>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-03-30 13:22+0300\n"
+"Last-Translator: Mykola Tkach <Stuartlittle1970@gmail.com>\n"
 "Language-Team: translation@linux.org.ua\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
@@ -20,139 +21,216 @@ msgstr ""
 "X-Generator: Virtaal 0.7.0\n"
 "X-Project-Style: gnome\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Виводити у зручночитаній формі"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Відступи"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: не вдалося відкрити файл: %s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: не вдалося розібрати файл: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: не вдалося записати у стандартний вивід"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: не вдалося закрити: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Форматування файлів JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format форматує ресурси JSON."
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Не вдалося розібрати параметри командного рядка: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "Використовуйте «%s --help» для отримання детальної інформації."
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: відсутні файли"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Перевірка коректності файлів JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate перевіряє коректність даних JSON за вказаним URI."
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Очікування об'єкта JSON, але кореневий вузол є типом «%s»"
+msgstr "Очікування об'єкту JSON, але кореневий вузол є типом «%s»"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Очікуваний тип «%s» у вузлі JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Бракує елементів у масиві JSON для підтвердження кортежу"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Бракує символу закривання «)» у типі кортежу GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Неочікуваний додатковий елемент у масиві JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Неправильне перетворення значення рядка в GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
-msgstr "Запис словника GVariant очікує об'єкт JSON з тільки однією частиною"
+msgstr "Запис словника GVariant очікує об'єкт JSON з лише однією частиною"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Клас GVariant «%c» не підтримується"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Неправильний підпис GVariant"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Дані JSON порожні"
 
-#: json-glib/json-parser.c:825
-#, fuzzy, c-format
+#: json-glib/json-parser.c:914
+#, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d: Помилка розбирання: %s"
+msgstr "%s:%d:%d: помилка розбору: %s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Дані JSON повинні бути у кодуванні UTF-8"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Дозволено тільки один кореневий вузол у виразі JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Кореневий вузол супроводжується неправильним символом «%c»"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "Відсутнє ім’я члена або шаблон після символу «.»"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Неправильний вираз шару «%*s»"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Неправильне визначення набору «%*s»"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Неправильне визначення шару «%*s»"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Неправильне визначення покажчика масиву «%*s»"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "Неправильний перший символ «%c»"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr ""
 "Поточний вузол має тип «%s», однак масив або об'єкт не були очікуваними."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Покажчик «%d» більший за розмір масиву на поточній позиції."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
-msgstr "Покажчик «%d» більший за розмір об'єкта на поточній позиції."
+msgstr "Покажчик «%d» більший за розмір об'єкту на поточній позиції."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Немає жодного доступного вузла на поточній позиції"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "Поточна позиція утримує «%s» і не є масивом"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Поточний вузол має тип «%s», однак об'єкт не був очікуваними."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Частину «%s» не визначено в об'єкті на поточні позиції."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Поточна позиція утримує «%s» і не є об'єктом"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Поточна позиція утримує «%s» і не є значенням"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Поточна позиція не утримує тип рядка"
index 840fdbb..1aa600c 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index f7ce10c..aa13aa6 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
 "PO-Revision-Date: 2012-06-30 10:26+0700\n"
 "Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n"
 "Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
@@ -18,139 +18,216 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr ""
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr ""
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr ""
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, fuzzy, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%d: Lỗi phân tích: %s"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr ""
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr ""
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr ""
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr ""
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr ""
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr ""
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr ""
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "Cần đối tượng JSON nhưng nút gốc thuộc loại '%s'"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "Cần loại '%s' trong nút JSON"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Thiếu phần tử trong mảng JSON để tuân thủ ống"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "Thiếu dấu đóng ')' trong loại ống GVariant"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "Cần phần tử bổ sung trong mảng JSON"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "Giá trị chuỗi chuyển đổi sang GVariant không hợp lệ"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "Mục từ điển GVariant cần đối tượng JSON với duy nhất một phần tử"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "Không hỗ trợ lớp GVariant '%c'"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "Chữ ký GVariant không hợp lệ"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "Dữ liệu JSON rỗng"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, fuzzy, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d: Lỗi phân tích: %s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr ""
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Chỉ cho phép duy nhất một nút gốc trong biểu thức JSONPath"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "Ký tự không hợp lệ '%c' theo sau nút gốc"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr ""
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "Biểu thức chặt '%*s' hư"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "Định nghĩa tập '%*s' không hợp lệ"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "Định nghĩa chặt '%*s' không hợp lệ"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "Định nghĩa chỉ mục mảng '%*s' không hợp lệ"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr ""
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "Nút hiện thời loại '%s', nhưng đang cần mảng hoặc một đối tượng."
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "Chỉ mục '%d' lớn hơn kích thước mảng tại vị trí hiện thời."
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "Chỉ mục '%d' lớn hơn kích thước đối tượng tại vị trí hiện thời."
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "Không có nút ở vị trí hiện thời."
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr ""
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "Nút hiện thời thuộc loại '%s', nhưng đang cần đối tượng."
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "Chưa định nghĩa thành viên '%s' trong đối tượng tại vị trí hiện thời."
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "Vị trí hiện thời chứa '%s', không phải đối tượng"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "Vị trí hiện thời chứa '%s', không phải giá trị"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "Vị trí hiện thời không phải kiểu chuỗi"
 
index 99385e2..6798135 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index 283f13d..aa53e2e 100644 (file)
 # Chinese (China) translation for json-glib ui.
 # Copyright (C) 2012 json-glib's authors and contributors.
 # This file is distributed under the same license as the json-glib package.
+#
 # Cheng Lu <chenglu1990@gmail.com>, 2012.
 # Wylmer Wang <wantinghard@gmail.com>, 2012.
-#
+# Sphinx Jiang <yishanj13@gmail.com>, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2012-07-22 13:22+0800\n"
-"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
-"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-22 09:27+0800\n"
+"Last-Translator: Sphinx Jiang <yishanj13@gmail.com>\n"
+"Language-Team: Chinese Simplified <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "美化输出"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "缩进空格"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s:打开文件出错:%s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s:解析文件出错: %s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s:写到标准输出出错"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s:关闭出错: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "文件"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "格式化 JSON 文件。"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format 可以格式化 JSON 资源。"
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "解析命令行选项出错:%s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "请运行“%s --help”了解更多信息。"
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s:缺少文件"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "验证 JSON 文件"
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate 验证给定 URI 的 JSON 数据。"
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "期望一个 JSON 对象,但根节点类型是“%s”"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON 节点中存在异常的类型“%s”"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "在 JSON 数组中缺少用来构成 tuple(元组) 的元素"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "在 GVariant 元组类型中缺少闭合符号“)”"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "在 JSON 数组中存在意外的其他元素"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "字符串值到 GVariant 的转换无效"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant 字典记录期望仅有一个成员的 JSON 对象"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "不支持的 GVariant 类“%c”"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "无效的 GVariant 签名"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON 数据为空"
 
-#: json-glib/json-parser.c:825
-#, fuzzy, c-format
+#: json-glib/json-parser.c:914
+#, c-format
 msgid "%s:%d:%d: Parse error: %s"
-msgstr "%s:%d:解析错误:%s"
+msgstr "%s:%d:%d:解析错误:%s"
+
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON 数据必须是 UTF-8 编码"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "JSONPath 表达式中只允许有一个根节点"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "根节点之后跟随了无效的字符“%c”"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "在字符 . 后面缺少成员名或通配符"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "有错误的 slice 表达式“%*s”"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
-msgstr "无效的 set 定义 '%*s'"
+msgstr "无效的 set 定义“%*s”"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "无效的 slice 定义“%*s”"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "无效的数组索引定义“%*s”"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "无效的首字符“%c”"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "当前节点的类型是“%s”,应为数组或对象。"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "索引“%d”大于当前位置数组的大小。"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "索引“%d”大于当前位置对象的大小。"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "当前位置无节点可用"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "当前位置是一个“%s”,而不是一个数组"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "当前节点的类型是“%s”,但应为对象。"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "成员“%s”没有在当前位置的对象中定义。"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "当前位置是一个“%s”,而不是一个对象"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "当前位置是一个“%s”,不是一个值"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "当前位置不是一个字符串类型"
 
index 697f701..9bde0ad 100644 (file)
Binary files a/po/zh_HK.gmo and b/po/zh_HK.gmo differ
index ebfbab8..25607f5 100644 (file)
@@ -8,149 +8,226 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-02-04 20:32+0800\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-02 20:40+0800\n"
 "Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
 "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
 "Language: zh_HK\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.6.3\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Prettify 輸出"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "縮排空間"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s:%s:開啟檔案時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s:%s:分析檔案時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s:%s:寫入標準輸出時發生錯誤"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%s:關閉時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "檔案"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "格式化 JSON 檔案。"
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format 格式化 JSON 資源。"
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "分析命令列選項時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "嘗試「%s --help」以獲得更多資訊。"
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s:缺少檔案"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "驗證 JSON 檔案。"
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate 驗證指定 URI 的 JSON 資料。"
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "預期是 JSON 物件,但根節點卻是類型「%s」"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON 節點中未預期的類型「%s」"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "在 JSON 陣列中缺少確認變數值組"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "在 GVariant 變數值組類型中缺少關閉符號 ')'"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON 陣列中有未預期的額外元素"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "無效的字串數值轉換到 GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant 字典項目預期 JSON 物件只能有一個成員"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant 類別「%c」不支援"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "無效的 GVariant 簽署"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON 資料是空的"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d:解析錯誤:%s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON 資料必須以 UTF-8 編碼"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "在 JSONPath 表示式中不允許一個根節點"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "根節點跟隨在無效的字符「%c」後"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "在 . 字符後缺少成員名稱或萬用字符"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "格式不良的片段表示式「%*s」"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "無效的組定義「%*s」"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "無效的片段定義「%*s」"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "無效的陣列索引定義「%*s」"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "無效的第一個字符「%c」"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "目前的節點類型是「%s」,但預期應為陣列或物件。"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "索引「%d」大於目前位置的陣列大小。"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "索引「%d」大於目前位置的物件大小。"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "目前的位置沒有可用的節點"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "目前的位置持有一個「%s」,並非陣列"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "目前的節點類型是「%s」,但預期應為物件。"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "成員「%s」並未在目前的位置的物件中定義。"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "目前的位置持有一個「%s」,並非物件"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "目前的位置持有一個「%s」,並非數值"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "目前的位置並未持有字串類型"
 
index 94f814e..029cb1f 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index a7a9e05..dd68804 100644 (file)
@@ -8,149 +8,226 @@ msgstr ""
 "Project-Id-Version: json-glib master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
 "glib\n"
-"POT-Creation-Date: 2013-04-16 20:00+0100\n"
-"PO-Revision-Date: 2013-02-04 19:02+0800\n"
+"POT-Creation-Date: 2016-03-22 16:14+0000\n"
+"PO-Revision-Date: 2014-02-01 19:05+0800\n"
 "Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
 "Language-Team: Chinese (Taiwan) <chinese-l10n@googlegroups.com>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.6.3\n"
 
-#: json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Prettify 輸出"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "縮排空間"
+
+#: json-glib/json-glib-format.c:77 json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s:%s:開啟檔案時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:89 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s:%s:分析檔案時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:108
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s:%s:寫入標準輸出時發生錯誤"
+
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s:%s:關閉時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "檔案"
+
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "格式化 JSON 檔案。"
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format 格式化 JSON 資源。"
+
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "分析命令列選項時發生錯誤:%s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try \"%s --help\" for more information."
+msgstr "嘗試「%s --help」以獲得更多資訊。"
+
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s:缺少檔案"
+
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "驗證 JSON 檔案。"
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate 驗證指定 URI 的 JSON 資料。"
+
+#: json-glib/json-gobject.c:943
 #, c-format
 msgid "Expecting a JSON object, but the root node is of type `%s'"
 msgstr "預期是 JSON 物件,但根節點卻是類型「%s」"
 
-#: json-glib/json-gvariant.c:540
+#: json-glib/json-gvariant.c:523
 #, c-format
 msgid "Unexpected type '%s' in JSON node"
 msgstr "JSON 節點中未預期的類型「%s」"
 
-#: json-glib/json-gvariant.c:610
+#: json-glib/json-gvariant.c:593
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "在 JSON 陣列中缺少確認變數值組"
 
-#: json-glib/json-gvariant.c:638
+#: json-glib/json-gvariant.c:621
 msgid "Missing closing symbol ')' in the GVariant tuple type"
 msgstr "在 GVariant 變數值組類型中缺少關閉符號 ')'"
 
-#: json-glib/json-gvariant.c:646
+#: json-glib/json-gvariant.c:629
 msgid "Unexpected extra elements in JSON array"
 msgstr "JSON 陣列中有未預期的額外元素"
 
-#: json-glib/json-gvariant.c:925
+#: json-glib/json-gvariant.c:908
 msgid "Invalid string value converting to GVariant"
 msgstr "無效的字串數值轉換到 GVariant"
 
-#: json-glib/json-gvariant.c:981
+#: json-glib/json-gvariant.c:964
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr "GVariant 字典項目預期 JSON 物件只能有一個成員"
 
-#: json-glib/json-gvariant.c:1237
+#: json-glib/json-gvariant.c:1248
 #, c-format
 msgid "GVariant class '%c' not supported"
 msgstr "GVariant 類別「%c」不支援"
 
-#: json-glib/json-gvariant.c:1285
+#: json-glib/json-gvariant.c:1296
 msgid "Invalid GVariant signature"
 msgstr "無效的 GVariant 簽章"
 
-#: json-glib/json-gvariant.c:1333
+#: json-glib/json-gvariant.c:1344
 msgid "JSON data is empty"
 msgstr "JSON 資料是空的"
 
-#: json-glib/json-parser.c:825
+#: json-glib/json-parser.c:914
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d:解析錯誤:%s"
 
-#: json-glib/json-path.c:375
+#: json-glib/json-parser.c:997
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON 資料必須以 UTF-8 編碼"
+
+#: json-glib/json-path.c:388
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "在 JSONPath 表示式中不允許一個根節點"
 
-#: json-glib/json-path.c:384
+#: json-glib/json-path.c:397
 #, c-format
 msgid "Root node followed by invalid character '%c'"
 msgstr "根節點跟隨在無效的字元「%c」後"
 
-#: json-glib/json-path.c:490
+#: json-glib/json-path.c:437
+msgid "Missing member name or wildcard after . character"
+msgstr "在 . 字元後缺少成員名稱或萬用字元"
+
+#: json-glib/json-path.c:511
 #, c-format
 msgid "Malformed slice expression '%*s'"
 msgstr "格式不良的片段表示式「%*s」"
 
-#: json-glib/json-path.c:534
+#: json-glib/json-path.c:555
 #, c-format
 msgid "Invalid set definition '%*s'"
 msgstr "無效的組定義「%*s」"
 
-#: json-glib/json-path.c:587
+#: json-glib/json-path.c:608
 #, c-format
 msgid "Invalid slice definition '%*s'"
 msgstr "無效的片段定義「%*s」"
 
-#: json-glib/json-path.c:615
+#: json-glib/json-path.c:636
 #, c-format
 msgid "Invalid array index definition '%*s'"
 msgstr "無效的陣列索引定義「%*s」"
 
-#: json-glib/json-reader.c:464
+#: json-glib/json-path.c:655
+#, c-format
+msgid "Invalid first character '%c'"
+msgstr "無效的第一個字元「%c」"
+
+#: json-glib/json-reader.c:473
 #, c-format
 msgid ""
 "The current node is of type '%s', but an array or an object was expected."
 msgstr "目前的節點類型是「%s」,但預期應為陣列或物件。"
 
-#: json-glib/json-reader.c:476
+#: json-glib/json-reader.c:485
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the array at the current position."
 msgstr "索引「%d」大於目前位置的陣列大小。"
 
-#: json-glib/json-reader.c:493
+#: json-glib/json-reader.c:502
 #, c-format
 msgid ""
 "The index '%d' is greater than the size of the object at the current "
 "position."
 msgstr "索引「%d」大於目前位置的物件大小。"
 
-#: json-glib/json-reader.c:577 json-glib/json-reader.c:730
-#: json-glib/json-reader.c:781 json-glib/json-reader.c:819
-#: json-glib/json-reader.c:857 json-glib/json-reader.c:895
-#: json-glib/json-reader.c:933 json-glib/json-reader.c:978
-#: json-glib/json-reader.c:1014 json-glib/json-reader.c:1040
+#: json-glib/json-reader.c:586 json-glib/json-reader.c:750
+#: json-glib/json-reader.c:801 json-glib/json-reader.c:839
+#: json-glib/json-reader.c:877 json-glib/json-reader.c:915
+#: json-glib/json-reader.c:953 json-glib/json-reader.c:998
+#: json-glib/json-reader.c:1034 json-glib/json-reader.c:1060
 msgid "No node available at the current position"
 msgstr "目前的位置沒有可用的節點"
 
-#: json-glib/json-reader.c:584
+#: json-glib/json-reader.c:593
 #, c-format
 msgid "The current position holds a '%s' and not an array"
 msgstr "目前的位置持有一個「%s」,並非陣列"
 
-#: json-glib/json-reader.c:647
+#: json-glib/json-reader.c:669
 #, c-format
 msgid "The current node is of type '%s', but an object was expected."
 msgstr "目前的節點類型是「%s」,但預期應為物件。"
 
-#: json-glib/json-reader.c:654
+#: json-glib/json-reader.c:676
 #, c-format
 msgid "The member '%s' is not defined in the object at the current position."
 msgstr "成員「%s」並未在目前的位置的物件中定義。"
 
-#: json-glib/json-reader.c:737 json-glib/json-reader.c:788
+#: json-glib/json-reader.c:757 json-glib/json-reader.c:808
 #, c-format
 msgid "The current position holds a '%s' and not an object"
 msgstr "目前的位置持有一個「%s」,並非物件"
 
-#: json-glib/json-reader.c:828 json-glib/json-reader.c:866
-#: json-glib/json-reader.c:904 json-glib/json-reader.c:942
-#: json-glib/json-reader.c:987
+#: json-glib/json-reader.c:848 json-glib/json-reader.c:886
+#: json-glib/json-reader.c:924 json-glib/json-reader.c:962
+#: json-glib/json-reader.c:1007
 #, c-format
 msgid "The current position holds a '%s' and not a value"
 msgstr "目前的位置持有一個「%s」,並非數值"
 
-#: json-glib/json-reader.c:950
+#: json-glib/json-reader.c:970
 msgid "The current position does not hold a string type"
 msgstr "目前的位置並未持有字串類型"