From 2ab406717eef477bf60d407f7de1793c128cf71b Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Tue, 31 May 2016 09:37:52 +0900 Subject: [PATCH] Imported Upstream version 1.2.0 Change-Id: Ib0f832b1ef1191c11543c9c3d432690457fec91c Signed-off-by: DongHun Kwak --- ChangeLog | 2622 ++++++++++ Makefile.am | 19 +- Makefile.in | 314 +- NEWS | 24 + aclocal.m4 | 377 +- build/Makefile.am | 10 - build/Makefile.in | 136 +- build/autotools/Makefile.am | 20 +- build/autotools/Makefile.am.enums | 33 +- build/autotools/Makefile.am.gitignore | 25 +- build/autotools/Makefile.am.gtest | 74 - build/autotools/Makefile.am.marshal | 21 +- build/autotools/Makefile.am.silent | 11 - build/autotools/Makefile.in | 130 +- build/autotools/glib-tap.mk | 134 + build/autotools/glibtests.m4 | 28 + build/autotools/gtk-doc.m4 | 47 +- build/autotools/introspection.m4 | 2 + build/autotools/jh-catalog.m4 | 54 + build/autotools/libtool.m4 | 2562 +++++---- build/autotools/ltoptions.m4 | 127 +- build/autotools/ltsugar.m4 | 7 +- build/autotools/ltversion.m4 | 12 +- build/autotools/lt~obsolete.m4 | 7 +- build/autotools/tap-driver.sh | 652 +++ build/autotools/tap-test | 5 + build/compile | 2 +- build/config.guess | 320 +- build/config.sub | 69 +- build/depcomp | 5 +- build/install-sh | 366 +- build/ltmain.sh | 5528 +++++++++++++------- build/missing | 6 +- build/test-driver | 35 +- build/win32/Makefile.am | 4 +- build/win32/Makefile.in | 104 +- build/win32/config.h.win32 | 29 +- build/win32/config.h.win32.in | 25 +- build/win32/detectenv_msvc.mak | 65 + build/win32/gen-file-list-jsonglib.py | 3 +- build/win32/gengir_jsonglib.bat | 132 - build/win32/introspection-msvc.mak | 79 + build/win32/json-glib-introspection-msvc.mak | 59 + build/win32/vs10/Makefile.am | 24 +- build/win32/vs10/Makefile.in | 110 +- build/win32/vs10/array.vcxproj | 16 +- build/win32/vs10/array.vcxproj.filters | 2 +- build/win32/vs10/boxed.vcxproj | 14 +- build/win32/vs10/boxed.vcxproj.filters | 2 +- build/win32/vs10/builder.vcxproj | 14 +- build/win32/vs10/builder.vcxproj.filters | 2 +- build/win32/vs10/generator.vcxproj | 14 +- build/win32/vs10/generator.vcxproj.filters | 2 +- build/win32/vs10/gvariant.vcxproj | 14 +- build/win32/vs10/gvariant.vcxproj.filters | 2 +- build/win32/vs10/install.vcxproj | 156 - build/win32/vs10/invalid.vcxproj | 171 + build/win32/vs10/invalid.vcxproj.filters | 14 + build/win32/vs10/json-glib-build-defines.props | 32 + build/win32/vs10/json-glib-format.vcxproj | 166 + build/win32/vs10/json-glib-format.vcxproj.filters | 14 + build/win32/vs10/json-glib-gen-srcs.props | 17 + build/win32/vs10/json-glib-install.props | 54 + .../{gengir.vcxproj => json-glib-install.vcxproj} | 64 +- build/win32/vs10/json-glib-validate.vcxproj | 166 + .../win32/vs10/json-glib-validate.vcxproj.filters | 14 + build/win32/vs10/json-glib-version-paths.props | 54 + build/win32/vs10/json-glib.props | 154 - build/win32/vs10/json-glib.sln | 58 +- build/win32/vs10/json-glib.vcxproj | 79 +- build/win32/vs10/json-glib.vcxproj.filters | 34 +- build/win32/vs10/json-glib.vcxproj.filtersin | 5 +- build/win32/vs10/json-glib.vcxprojin | 50 +- build/win32/vs10/node.vcxproj | 14 +- build/win32/vs10/node.vcxproj.filters | 2 +- build/win32/vs10/object.vcxproj | 14 +- build/win32/vs10/object.vcxproj.filters | 2 +- build/win32/vs10/parser.vcxproj | 22 +- build/win32/vs10/parser.vcxproj.filters | 2 +- build/win32/vs10/path.vcxproj | 14 +- build/win32/vs10/path.vcxproj.filters | 2 +- build/win32/vs10/reader.vcxproj | 14 +- build/win32/vs10/reader.vcxproj.filters | 2 +- build/win32/vs10/serialize-complex.vcxproj | 14 +- build/win32/vs10/serialize-complex.vcxproj.filters | 2 +- build/win32/vs10/serialize-full.vcxproj | 14 +- build/win32/vs10/serialize-full.vcxproj.filters | 2 +- build/win32/vs10/serialize-simple.vcxproj | 14 +- build/win32/vs10/serialize-simple.vcxproj.filters | 2 +- build/win32/vs9/Makefile.am | 19 +- build/win32/vs9/Makefile.in | 105 +- 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/invalid.vcproj | 153 + build/win32/vs9/json-glib-build-defines.vsprops | 26 + build/win32/vs9/json-glib-format.vcproj | 151 + build/win32/vs9/json-glib-gen-srcs.vsprops | 12 + .../{install.vcproj => json-glib-install.vcproj} | 160 +- build/win32/vs9/json-glib-install.vsprops | 39 + build/win32/vs9/json-glib-validate.vcproj | 151 + build/win32/vs9/json-glib-version-paths.vsprops | 53 + build/win32/vs9/json-glib.sln | 77 +- build/win32/vs9/json-glib.vcproj | 109 +- build/win32/vs9/json-glib.vcprojin | 78 +- build/win32/vs9/json-glib.vsprops | 131 - 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 +- config.h.in | 9 +- configure | 3090 +++++++---- configure.ac | 128 +- doc/Makefile.in | 99 +- doc/reference/Makefile.am | 105 +- doc/reference/Makefile.in | 693 ++- doc/reference/html/JsonBuilder.html | 955 ++-- doc/reference/html/JsonGenerator.html | 836 +-- doc/reference/html/JsonParser.html | 1456 +++--- doc/reference/html/JsonPath.html | 767 +-- doc/reference/html/JsonReader.html | 1484 +++--- doc/reference/html/annotation-glossary.html | 95 +- doc/reference/html/ch01.html | 19 +- doc/reference/html/ch02.html | 19 +- doc/reference/html/ch03.html | 19 +- doc/reference/html/ch04.html | 38 +- doc/reference/html/ch06.html | 43 + doc/reference/html/home.png | Bin 654 -> 256 bytes doc/reference/html/index.html | 29 +- doc/reference/html/index.sgml | 210 +- doc/reference/html/ix01.html | 574 +- doc/reference/html/ix02.html | 40 +- doc/reference/html/ix03.html | 46 +- doc/reference/html/ix04.html | 40 +- doc/reference/html/ix05.html | 106 +- doc/reference/html/ix06.html | 66 +- doc/reference/html/ix07.html | 84 +- doc/reference/html/ix08.html | 86 +- doc/reference/html/ix09.html | 66 + doc/reference/html/ix10.html | 38 + doc/reference/html/ix11.html | 155 + doc/reference/html/json-advanced.html | 24 +- doc/reference/html/json-base.html | 19 +- doc/reference/html/json-format-tool.html | 83 + .../html/json-glib-Boxed-Types-Serialization.html | 548 +- .../html/json-glib-GObject-Serialization.html | 474 +- doc/reference/html/json-glib-JSON-Array.html | 1603 +++--- .../html/json-glib-JSON-GVariant-Integration.html | 433 +- doc/reference/html/json-glib-JSON-Node.html | 2653 ++++++---- doc/reference/html/json-glib-JSON-Object.html | 2000 ++++--- .../html/json-glib-Serializable-Interface.html | 749 +-- doc/reference/html/json-glib-Utility-API.html | 153 + .../html/json-glib-Versioning-information.html | 239 +- doc/reference/html/json-glib.devhelp2 | 441 +- doc/reference/html/json-glib.html | 19 +- doc/reference/html/json-streams.html | 23 +- doc/reference/html/json-tools.html | 33 +- doc/reference/html/json-validate-tool.html | 71 + doc/reference/html/left-insensitive.png | Bin 0 -> 395 bytes doc/reference/html/left.png | Bin 459 -> 262 bytes doc/reference/html/license.html | 19 +- doc/reference/html/right-insensitive.png | Bin 0 -> 373 bytes doc/reference/html/right.png | Bin 472 -> 261 bytes doc/reference/html/style.css | 421 +- doc/reference/html/tools.html | 37 + doc/reference/html/up-insensitive.png | Bin 0 -> 374 bytes doc/reference/html/up.png | Bin 406 -> 260 bytes doc/reference/json-glib-docs.xml | 27 +- doc/reference/json-glib-format.1 | 60 + doc/reference/json-glib-format.xml | 81 + doc/reference/json-glib-sections.txt | 51 + doc/reference/json-glib-validate.1 | 56 + doc/reference/json-glib-validate.xml | 67 + doc/reference/json-glib.types | 4 +- doc/reference/version.xml | 2 +- gtk-doc.make | 53 +- json-glib/Json-1.0.gir | 2383 ++++++--- json-glib/Makefile.am | 160 +- json-glib/Makefile.in | 1181 ++--- json-glib/abicheck.sh | 6 - json-glib/json-array.c | 184 +- json-glib/json-builder.c | 131 +- json-glib/json-builder.h | 34 +- json-glib/json-debug.c | 13 +- json-glib/json-debug.h | 12 +- json-glib/json-enum-types.c | 42 +- json-glib/json-enum-types.c.in | 7 +- json-glib/json-enum-types.h | 19 +- json-glib/json-enum-types.h.in | 8 +- json-glib/json-gboxed.c | 4 +- json-glib/json-generator.c | 123 +- json-glib/json-generator.h | 23 +- json-glib/json-glib-format.c | 221 + json-glib/json-glib-validate.c | 173 + json-glib/json-glib.h | 2 + json-glib.pc.in => json-glib/json-glib.pc.in | 0 json-glib/json-glib.symbols | 191 - json-glib/json-gobject.c | 46 +- json-glib/json-gobject.h | 28 +- json-glib/json-gvariant.c | 103 +- json-glib/json-gvariant.h | 11 +- json-glib/json-marshal.c | 36 +- json-glib/json-marshal.h | 36 +- json-glib/json-node.c | 517 +- json-glib/json-object.c | 253 +- json-glib/json-parser.c | 374 +- json-glib/json-parser.h | 27 +- json-glib/json-path.c | 439 +- json-glib/json-path.h | 25 +- json-glib/json-reader.c | 126 +- json-glib/json-reader.h | 39 +- json-glib/json-scanner.c | 48 +- json-glib/json-scanner.h | 4 +- json-glib/json-serializable.c | 40 +- json-glib/json-types-private.h | 34 +- json-glib/json-types.h | 188 +- json-glib/json-utils.c | 103 + json-glib/json-utils.h | 40 + json-glib/json-value.c | 74 +- json-glib/json-version-macros.h | 151 + json-glib/json-version.h | 26 +- json-glib/json-version.h.in | 18 +- json-glib/tests/Makefile.am | 33 +- json-glib/tests/Makefile.in | 1141 +++- json-glib/tests/array.c | 4 - json-glib/tests/boxed.c | 3 - json-glib/tests/builder.c | 5 +- json-glib/tests/generator.c | 52 +- json-glib/tests/gvariant.c | 44 +- json-glib/tests/invalid.c | 36 +- json-glib/tests/node.c | 323 +- json-glib/tests/object.c | 31 +- json-glib/tests/parser.c | 41 +- json-glib/tests/path.c | 241 +- json-glib/tests/reader.c | 59 +- json-glib/tests/serialize-complex.c | 3 - json-glib/tests/serialize-full.c | 3 - json-glib/tests/serialize-simple.c | 3 - po/POTFILES.in | 2 + po/as.gmo | Bin 5138 -> 7246 bytes po/as.po | 155 +- po/bg.gmo | Bin 4519 -> 4519 bytes po/bg.po | 145 +- po/bn_IN.gmo | Bin 5255 -> 5255 bytes po/bn_IN.po | 145 +- po/bs.gmo | Bin 0 -> 5145 bytes po/bs.po | 228 + po/ca.gmo | Bin 3919 -> 5510 bytes po/ca.po | 150 +- po/ca@valencia.gmo | Bin 3928 -> 3928 bytes po/ca@valencia.po | 145 +- po/cs.gmo | Bin 3766 -> 5343 bytes po/cs.po | 151 +- po/da.gmo | Bin 3750 -> 5200 bytes po/da.po | 147 +- po/de.gmo | Bin 3939 -> 5476 bytes po/de.po | 151 +- po/el.gmo | Bin 4859 -> 6765 bytes po/el.po | 163 +- po/en_GB.gmo | Bin 3597 -> 3597 bytes po/en_GB.po | 145 +- po/eo.gmo | Bin 3762 -> 3762 bytes po/eo.po | 145 +- po/es.gmo | Bin 3880 -> 5362 bytes po/es.po | 153 +- po/et.gmo | Bin 3674 -> 3674 bytes po/et.po | 145 +- po/eu.gmo | Bin 3751 -> 5318 bytes po/eu.po | 157 +- po/fr.gmo | Bin 3997 -> 5572 bytes po/fr.po | 165 +- po/fur.gmo | Bin 0 -> 3675 bytes po/fur.po | 234 + po/gl.gmo | Bin 3821 -> 5321 bytes po/gl.po | 149 +- po/he.gmo | Bin 0 -> 5069 bytes po/he.po | 239 + po/hi.gmo | Bin 5284 -> 5284 bytes po/hi.po | 145 +- po/hu.gmo | Bin 3956 -> 5541 bytes po/hu.po | 156 +- po/id.gmo | Bin 3673 -> 5172 bytes po/id.po | 156 +- po/it.gmo | Bin 3754 -> 5284 bytes po/it.po | 149 +- po/ja.gmo | Bin 3953 -> 4023 bytes po/ja.po | 155 +- po/json-glib-1.0.pot | 149 +- po/ko.gmo | Bin 4034 -> 5504 bytes po/ko.po | 171 +- po/ky.gmo | Bin 4430 -> 4430 bytes po/ky.po | 145 +- po/lt.gmo | Bin 3855 -> 5371 bytes po/lt.po | 152 +- po/lv.gmo | Bin 3803 -> 5273 bytes po/lv.po | 151 +- po/ml.gmo | Bin 5792 -> 5792 bytes po/ml.po | 145 +- po/nb.gmo | Bin 2181 -> 2477 bytes po/nb.po | 149 +- po/oc.gmo | Bin 0 -> 5659 bytes po/oc.po | 244 + po/or.gmo | Bin 5486 -> 5486 bytes po/or.po | 145 +- po/pa.gmo | Bin 4814 -> 4814 bytes po/pa.po | 145 +- po/pl.gmo | Bin 3902 -> 5483 bytes po/pl.po | 185 +- po/pt.gmo | Bin 3677 -> 5238 bytes po/pt.po | 207 +- po/pt_BR.gmo | Bin 3787 -> 5254 bytes po/pt_BR.po | 154 +- po/ro.gmo | Bin 0 -> 5484 bytes po/ro.po | 241 + po/ru.gmo | Bin 4715 -> 6649 bytes po/ru.po | 152 +- po/sk.gmo | Bin 3837 -> 5375 bytes po/sk.po | 150 +- po/sl.gmo | Bin 3856 -> 5325 bytes po/sl.po | 153 +- po/sr.gmo | Bin 4755 -> 6597 bytes po/sr.po | 149 +- po/sr@latin.gmo | Bin 3841 -> 5322 bytes po/sr@latin.po | 149 +- po/sv.gmo | Bin 1894 -> 5269 bytes po/sv.po | 208 +- po/te.gmo | Bin 5325 -> 5325 bytes po/te.po | 145 +- po/tg.gmo | Bin 865 -> 6571 bytes po/tg.po | 197 +- po/tr.gmo | Bin 3637 -> 5219 bytes po/tr.po | 161 +- po/ug.gmo | Bin 4440 -> 4440 bytes po/ug.po | 145 +- po/uk.gmo | Bin 4631 -> 6645 bytes po/uk.po | 160 +- po/vi.gmo | Bin 3756 -> 3756 bytes po/vi.po | 145 +- po/zh_CN.gmo | Bin 3506 -> 5000 bytes po/zh_CN.po | 161 +- po/zh_HK.gmo | Bin 3582 -> 5030 bytes po/zh_HK.po | 149 +- po/zh_TW.gmo | Bin 3585 -> 5033 bytes po/zh_TW.po | 149 +- 351 files changed, 40514 insertions(+), 19165 deletions(-) delete mode 100644 build/autotools/Makefile.am.gtest delete mode 100644 build/autotools/Makefile.am.silent create mode 100644 build/autotools/glib-tap.mk create mode 100644 build/autotools/glibtests.m4 create mode 100644 build/autotools/jh-catalog.m4 create mode 100755 build/autotools/tap-driver.sh create mode 100755 build/autotools/tap-test create mode 100644 build/win32/detectenv_msvc.mak delete mode 100644 build/win32/gengir_jsonglib.bat create mode 100644 build/win32/introspection-msvc.mak create mode 100644 build/win32/json-glib-introspection-msvc.mak delete mode 100644 build/win32/vs10/install.vcxproj create mode 100644 build/win32/vs10/invalid.vcxproj create mode 100644 build/win32/vs10/invalid.vcxproj.filters create mode 100644 build/win32/vs10/json-glib-build-defines.props create mode 100644 build/win32/vs10/json-glib-format.vcxproj create mode 100644 build/win32/vs10/json-glib-format.vcxproj.filters create mode 100644 build/win32/vs10/json-glib-gen-srcs.props create mode 100644 build/win32/vs10/json-glib-install.props rename build/win32/vs10/{gengir.vcxproj => json-glib-install.vcxproj} (63%) create mode 100644 build/win32/vs10/json-glib-validate.vcxproj create mode 100644 build/win32/vs10/json-glib-validate.vcxproj.filters create mode 100644 build/win32/vs10/json-glib-version-paths.props delete mode 100644 build/win32/vs10/json-glib.props delete mode 100644 build/win32/vs9/gengir.vcproj create mode 100644 build/win32/vs9/invalid.vcproj create mode 100644 build/win32/vs9/json-glib-build-defines.vsprops create mode 100644 build/win32/vs9/json-glib-format.vcproj create mode 100644 build/win32/vs9/json-glib-gen-srcs.vsprops rename build/win32/vs9/{install.vcproj => json-glib-install.vcproj} (67%) create mode 100644 build/win32/vs9/json-glib-install.vsprops create mode 100644 build/win32/vs9/json-glib-validate.vcproj create mode 100644 build/win32/vs9/json-glib-version-paths.vsprops delete mode 100644 build/win32/vs9/json-glib.vsprops create mode 100644 doc/reference/html/ch06.html create mode 100644 doc/reference/html/ix09.html create mode 100644 doc/reference/html/ix10.html create mode 100644 doc/reference/html/ix11.html create mode 100644 doc/reference/html/json-format-tool.html create mode 100644 doc/reference/html/json-glib-Utility-API.html create mode 100644 doc/reference/html/json-validate-tool.html create mode 100644 doc/reference/html/left-insensitive.png create mode 100644 doc/reference/html/right-insensitive.png create mode 100644 doc/reference/html/tools.html create mode 100644 doc/reference/html/up-insensitive.png create mode 100644 doc/reference/json-glib-format.1 create mode 100644 doc/reference/json-glib-format.xml create mode 100644 doc/reference/json-glib-validate.1 create mode 100644 doc/reference/json-glib-validate.xml delete mode 100755 json-glib/abicheck.sh create mode 100644 json-glib/json-glib-format.c create mode 100644 json-glib/json-glib-validate.c rename json-glib.pc.in => json-glib/json-glib.pc.in (100%) delete mode 100644 json-glib/json-glib.symbols create mode 100644 json-glib/json-utils.c create mode 100644 json-glib/json-utils.h create mode 100644 json-glib/json-version-macros.h create mode 100644 po/bs.gmo create mode 100644 po/bs.po create mode 100644 po/fur.gmo create mode 100644 po/fur.po create mode 100644 po/he.gmo create mode 100644 po/he.po create mode 100644 po/oc.gmo create mode 100644 po/oc.po create mode 100644 po/ro.gmo create mode 100644 po/ro.po diff --git a/ChangeLog b/ChangeLog index c716c9c..06fd379 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,2625 @@ +commit 19f5626b70e72a81dae7ee11b4c3a4d75779a7be +Author: Emmanuele Bassi +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 + + 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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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č +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 +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 +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 +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 +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 +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: Мирослав Николић +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +Date: Sun Jan 26 05:32:33 2014 +0200 + + Added Hebrew translation + + Signed-off-by: Yosef Or Boczko + + po/he.po | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 263 insertions(+) + +commit 5fb0b925adb517445c0347f04fe281952b614b37 +Author: Wylmer Wang +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ý +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +Date: Thu May 16 14:00:03 2013 +0200 + + Add tests for json paths (2 invalids, 1 valid) + + Signed-off-by: Emmanuele Bassi + + Conflicts: + json-glib/tests/path.c + + json-glib/tests/path.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +commit d82420c14b19f29a993b7754ff1128b3524c4ad7 +Author: bi +Date: Wed May 15 17:35:26 2013 +0200 + + Handle invalid path: invalid first character + + Signed-off-by: Emmanuele Bassi + + Conflicts: + json-glib/json-path.c + + json-glib/json-path.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +commit e4a054484774fd0849ca18617b6e20d15964fdd8 +Author: bi +Date: Wed May 15 16:19:55 2013 +0200 + + path: compile and query path '$' to retrieve root node + + Signed-off-by: Emmanuele Bassi + + json-glib/json-path.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit b5570400cbd95f46373dfce2877c6599802bec21 +Author: bi +Date: Wed May 15 16:06:48 2013 +0200 + + Handle invalid path : missing member name after . + + Signed-off-by: Emmanuele Bassi + + json-glib/json-path.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 730761d0ab3b9a72cea0b5cf806e656ec93f8a11 +Author: Emmanuele Bassi +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 + + json-glib/tests/Makefile.am | 1 - + json-glib/tests/parser.c | 7 +------ + 2 files changed, 1 insertion(+), 7 deletions(-) + +commit 66aa02b0da6d9964f38c4531f775f7c25b07af7d +Author: Emmanuele Bassi +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 Date: Tue Apr 16 19:56:26 2013 +0100 diff --git a/Makefile.am b/Makefile.am index 3b9edab..d2dbe69 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/Makefile.in b/Makefile.in index 007dda8..ae7010b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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, @@ -13,29 +13,62 @@ # 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 ; \ - echo '' >> $@.xml ; \ - echo '' >> $@.xml ; \ - echo ' $(PACKAGE)' >> $@.xml ; \ - echo ' $(JSON_VERSION)' >> $@.xml ; \ - echo " $$REVISION" >> $@.xml ; \ - echo " $$TIMESTAMP" >> $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.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 --- 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] diff --git a/aclocal.m4 b/aclocal.m4 index ee43e64..958a833 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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, µ) != 3) { + if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, µ) != 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 # # 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: + +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: . + +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 /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /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]) diff --git a/build/Makefile.am b/build/Makefile.am index 1ea5eab..2950238 100644 --- a/build/Makefile.am +++ b/build/Makefile.am @@ -1,11 +1 @@ SUBDIRS = autotools win32 - -test-report: - @true - -test: - @true - -check-local: test - -.PHONY: test-report test check-local diff --git a/build/Makefile.in b/build/Makefile.in index 7f60a12..bd729bf 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -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,23 +14,61 @@ @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. diff --git a/build/autotools/Makefile.am b/build/autotools/Makefile.am index ca20ec7..663f44d 100644 --- a/build/autotools/Makefile.am +++ b/build/autotools/Makefile.am @@ -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 diff --git a/build/autotools/Makefile.am.enums b/build/autotools/Makefile.am.enums index 0f34732..2fd69d5 100644 --- a/build/autotools/Makefile.am.enums +++ b/build/autotools/Makefile.am.enums @@ -15,18 +15,28 @@ # # Author: Emmanuele Bassi -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 - diff --git a/build/autotools/Makefile.am.gitignore b/build/autotools/Makefile.am.gitignore index 26fe561..ec3f3c7 100644 --- a/build/autotools/Makefile.am.gitignore +++ b/build/autotools/Makefile.am.gitignore @@ -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 index 88a123d..0000000 --- a/build/autotools/Makefile.am.gtest +++ /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 ; \ - echo '' >> $@.xml ; \ - echo '' >> $@.xml ; \ - echo ' $(PACKAGE)' >> $@.xml ; \ - echo ' $(JSON_VERSION)' >> $@.xml ; \ - echo " $$REVISION" >> $@.xml ; \ - echo " $$TIMESTAMP" >> $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.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 diff --git a/build/autotools/Makefile.am.marshal b/build/autotools/Makefile.am.marshal index cab117d..89d3222 100644 --- a/build/autotools/Makefile.am.marshal +++ b/build/autotools/Makefile.am.marshal @@ -14,19 +14,27 @@ # # Author: Emmanuele Bassi +# 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 index 8576846..0000000 --- a/build/autotools/Makefile.am.silent +++ /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 '$@; diff --git a/build/autotools/Makefile.in b/build/autotools/Makefile.in index ef573c1..e0e4217 100644 --- a/build/autotools/Makefile.in +++ b/build/autotools/Makefile.in @@ -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,23 +14,61 @@ @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 index 0000000..7a634cd --- /dev/null +++ b/build/autotools/glib-tap.mk @@ -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 index 0000000..7d5920a --- /dev/null +++ b/build/autotools/glibtests.m4 @@ -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 +]) diff --git a/build/autotools/gtk-doc.m4 b/build/autotools/gtk-doc.m4 index ac2eccb..3675543 100644 --- a/build/autotools/gtk-doc.m4 +++ b/build/autotools/gtk-doc.m4 @@ -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]) diff --git a/build/autotools/introspection.m4 b/build/autotools/introspection.m4 index 589721c..d89c3d9 100644 --- a/build/autotools/introspection.m4 +++ b/build/autotools/introspection.m4 @@ -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 index 0000000..dd01f16 --- /dev/null +++ b/build/autotools/jh-catalog.m4 @@ -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 +]) diff --git a/build/autotools/libtool.m4 b/build/autotools/libtool.m4 index 56666f0..a644432 100644 --- a/build/autotools/libtool.m4 +++ b/build/autotools/libtool.m4 @@ -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 @@ -10,36 +8,30 @@ # 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 . ]) -# 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.so # instead of lib.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/nec; then 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 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 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 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/nec; then _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 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 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], diff --git a/build/autotools/ltoptions.m4 b/build/autotools/ltoptions.m4 index 5d9acd8..94b0829 100644 --- a/build/autotools/ltoptions.m4 +++ b/build/autotools/ltoptions.m4 @@ -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: diff --git a/build/autotools/ltsugar.m4 b/build/autotools/ltsugar.m4 index 9000a05..48bc934 100644 --- a/build/autotools/ltsugar.m4 +++ b/build/autotools/ltsugar.m4 @@ -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 diff --git a/build/autotools/ltversion.m4 b/build/autotools/ltversion.m4 index 07a8602..fa04b52 100644 --- a/build/autotools/ltversion.m4 +++ b/build/autotools/ltversion.m4 @@ -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) ]) diff --git a/build/autotools/lt~obsolete.m4 b/build/autotools/lt~obsolete.m4 index c573da9..c6b26f8 100644 --- a/build/autotools/lt~obsolete.m4 +++ b/build/autotools/lt~obsolete.m4 @@ -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 index 0000000..19aa531 --- /dev/null +++ b/build/autotools/tap-driver.sh @@ -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 . + +# 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 or send patches to +# . + +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 < + # + 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 + 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 index 0000000..481e333 --- /dev/null +++ b/build/autotools/tap-test @@ -0,0 +1,5 @@ +#! /bin/sh + +# run a GTest in tap mode. The test binary is passed as $1 + +$1 -k --tap diff --git a/build/compile b/build/compile index 531136b..a85b723 100755 --- a/build/compile +++ b/build/compile @@ -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 . # # This program is free software; you can redistribute it and/or modify diff --git a/build/config.guess b/build/config.guess index 1804e9f..dbfb978 100755 --- a/build/config.guess +++ b/build/config.guess @@ -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 . 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 + #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 < -# include -#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 - 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 -# 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 <. # # 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 ." 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 ;; diff --git a/build/depcomp b/build/depcomp index 06b0882..fc98710 100755 --- a/build/depcomp +++ b/build/depcomp @@ -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" ;; diff --git a/build/install-sh b/build/install-sh index 377bb86..0b0fdcb 100755 --- a/build/install-sh +++ b/build/install-sh @@ -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 diff --git a/build/ltmain.sh b/build/ltmain.sh index 63ae69d..0f0a2da 100644 --- a/build/ltmain.sh +++ b/build/ltmain.sh @@ -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 , 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. @@ -23,881 +26,2112 @@ # 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 . -# 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 . -# GNU libtool home page: . -# General help using GNU software: . 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 . + +# 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.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.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='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + 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 . + +# 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 '_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 . +GNU libtool home page: . +General help using GNU software: ." + 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 </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 . $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 *) <_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 < #include +#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 < 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 - diff --git a/build/missing b/build/missing index cdea514..f62bbae 100755 --- a/build/missing +++ b/build/missing @@ -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 , 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*) diff --git a/build/test-driver b/build/test-driver index 32bf39e..8e575b0 100755 --- a/build/test-driver +++ b/build/test-driver @@ -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='' # 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" diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am index 75f9332..eea13ac 100644 --- a/build/win32/Makefile.am +++ b/build/win32/Makefile.am @@ -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 diff --git a/build/win32/Makefile.in b/build/win32/Makefile.in index 053c5ee..b299239 100644 --- a/build/win32/Makefile.in +++ b/build/win32/Makefile.in @@ -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,23 +14,61 @@ @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. diff --git a/build/win32/config.h.win32 b/build/win32/config.h.win32 index 66d1e32..fbc0870 100644 --- a/build/win32/config.h.win32 +++ b/build/win32/config.h.win32 @@ -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 header file. */ -/*#undef HAVE_DLFCN_H*/ +/* #undef HAVE_DLFCN_H */ /* Whether you have gcov */ /* #undef HAVE_GCOV */ @@ -28,13 +32,15 @@ #define HAVE_ICONV 1 /* Define to 1 if you have the 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 header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the header file. */ -#if (_MSC_VER >= 1600) +#if !defined (_MSC_VER) || (_MSC_VER >= 1600) #define HAVE_STDINT_H 1 #endif @@ -54,14 +60,16 @@ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the 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" @@ -79,7 +87,14 @@ #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 diff --git a/build/win32/config.h.win32.in b/build/win32/config.h.win32.in index d87103d..f150ce1 100644 --- a/build/win32/config.h.win32.in +++ b/build/win32/config.h.win32.in @@ -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 header file. */ -/*#undef HAVE_DLFCN_H*/ +/* #undef HAVE_DLFCN_H */ /* Whether you have gcov */ /* #undef HAVE_GCOV */ @@ -28,13 +32,15 @@ #define HAVE_ICONV 1 /* Define to 1 if you have the 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 header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the header file. */ -#if (_MSC_VER >= 1600) +#if !defined (_MSC_VER) || (_MSC_VER >= 1600) #define HAVE_STDINT_H 1 #endif @@ -54,14 +60,16 @@ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the 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" @@ -83,3 +91,10 @@ /* 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 index 0000000..020548a --- /dev/null +++ b/build/win32/detectenv_msvc.mak @@ -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 diff --git a/build/win32/gen-file-list-jsonglib.py b/build/win32/gen-file-list-jsonglib.py index eed85f3..9e1c43f 100644 --- a/build/win32/gen-file-list-jsonglib.py +++ b/build/win32/gen-file-list-jsonglib.py @@ -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 index ec70dc2..0000000 --- a/build/win32/gengir_jsonglib.bat +++ /dev/null @@ -1,132 +0,0 @@ -@echo off - -setlocal EnableDelayedExpansion - -rem Needed environmental variables: -rem PLAT: Windows platform-Win32 (i.e. x86) or x64 (i.e. x86-64) -rem CONF: Configuration Type, Release or Debug -rem VSVER: Visual C++ version used [9, 10 or 11] -rem BASEDIR: Where the dependent libraries/headers are located -rem PKG_CONFIG_PATH: Where the GLib and its dependent pkg-config .pc files can be found -rem MINGWDIR: Installation path of MINGW GCC, so gcc.exe can be found in %MINGWDIR%\bin. - -rem Note that the Python executable/installation and all the runtime dependencies of the -rem library/libraries need to be in your PATH or %BASEBIN%\bin. - -rem Check the environemental variables... -if /i "%PLAT%" == "Win32" goto PLAT_OK -if /i "%PLAT%" == "x64" goto PLAT_OK -if /i "%PLAT%" == "x86" ( - set PLAT=Win32 - goto PLAT_OK -) -if /i "%PLAT%" == "x86-64" ( - set PLAT=x64 - goto PLAT_OK -) -goto ERR_PLAT - -:PLAT_OK -if "%VSVER%" == "9" goto VSVER_OK -if "%VSVER%" == "10" goto VSVER_OK -if "%VSVER%" == "11" goto VSVER_OK -goto ERR_VSVER -:VSVER_OK -if /i "%CONF%" == "Release" goto CONF_OK -if /i "%CONF%" == "Debug" goto CONF_OK -goto ERR_CONF -:CONF_OK -if "%BASEDIR%" == "" goto ERR_BASEDIR -if not exist %BASEDIR% goto ERR_BASEDIR - -if "%PKG_CONFIG_PATH%" == "" goto ERR_PKGCONFIG -if not exist %PKG_CONFIG_PATH%\gobject-2.0.pc goto ERR_PKGCONFIG - -if "%MINGWDIR%" == "" goto ERR_MINGWDIR -if not exist %MINGWDIR%\bin\gcc.exe goto ERR_MINGWDIR - -set CC=cl -set BINDIR=%CD%\vs%VSVER%\%CONF%\%PLAT%\bin -set INCLUDE=%BASEDIR%\include\glib-2.0;%BASEDIR%\lib\glib-2.0\include;%INCLUDE% -set LIB=%BINDIR%;%BASEDIR%\lib;%LIB% -set PATH=%BINDIR%;%BASEDIR%\bin;%PATH%;%MINGWDIR%\bin -set PYTHONPATH=%BASEDIR%\lib\gobject-introspection;%BINDIR% - -echo Setup .bat and filelist for generating Json-1.0.gir... - -call python gen-file-list-jsonglib.py - -rem =============================================================================== -rem Begin setup of json_gir.bat to create Json-1.0.gir -rem (The ^^ is necessary to span the command to multiple lines on Windows cmd.exe!) -rem =============================================================================== - -echo echo Generating Json-1.0.gir...> json_gir.bat -echo @echo off>> json_gir.bat -echo.>> json_gir.bat - -echo copy /b %BINDIR%\json-glib-1.0.lib %BINDIR%\json-1.0.lib>> json_gir.bat -echo.>> json_gir.bat -rem ================================================================ -rem Setup the command line flags to g-ir-scanner for Json-1.0.gir... -rem ================================================================ -echo python %BASEDIR%\bin\g-ir-scanner --verbose -I..\.. ^^>> json_gir.bat -echo -I%BASEDIR%\include\glib-2.0 -I%BASEDIR%\lib\glib-2.0\include ^^>> json_gir.bat -echo --namespace=Json --nsversion=1.0 ^^>> json_gir.bat -echo --include=GObject-2.0 --include=Gio-2.0 ^^>> json_gir.bat -echo --no-libtool --library=json-glib-1-vs%VSVER% ^^>> json_gir.bat -echo --reparse-validate --add-include-path=%BASEDIR%\share\gir-1.0 --add-include-path=. ^^>> json_gir.bat -echo --warn-all --pkg-export json-glib-1.0 --c-include "json-glib/json-glib.h" ^^>> json_gir.bat -echo -I..\.. -DJSON_COMPILATION=1 -DG_LOG_DOMAIN=\"Json\" ^^>> json_gir.bat -echo --filelist=json_list ^^>> json_gir.bat -echo -o Json-1.0.gir>> json_gir.bat -echo.>> json_gir.bat - -echo del %BINDIR%\json-1.0.lib>> json_gir.bat -echo.>> json_gir.bat - -echo Completed setup of .bat for generating Json-1.0.gir. -echo.>> json_gir.bat - -rem ======================= -rem Now generate the .gir's -rem ======================= -CALL json_gir.bat - -rem Clean up the .bat and filelist for generating the .gir files... -del json_gir.bat -del json_list - -rem Now compile the generated .gir files -%BASEDIR%\bin\g-ir-compiler --includedir=. --debug --verbose Json-1.0.gir -o Json-1.0.typelib - -rem Copy the generated .girs and .typelibs to their appropriate places - -mkdir ..\..\build\win32\vs%VSVER%\%CONF%\%PLAT%\share\gir-1.0 -move /y *.gir %BASEDIR%\share\gir-1.0\ - -mkdir ..\..\build\win32\vs%VSVER%\%CONF%\%PLAT%\lib\girepository-1.0 -move /y *.typelib %BASEDIR%\lib\girepository-1.0\ - -goto DONE - -:ERR_PLAT -echo You need to specify a valid Platform [set PLAT=Win32 or PLAT=x64] -goto DONE -:ERR_VSVER -echo You need to specify your Visual Studio version [set VSVER=9 or VSVER=10 or VSVER=11] -goto DONE -:ERR_CONF -echo You need to specify a valid Configuration [set CONF=Release or CONF=Debug] -goto DONE -:ERR_BASEDIR -echo You need to specify a valid BASEDIR. -goto DONE -:ERR_PKGCONFIG -echo You need to specify a valid PKG_CONFIG_PATH -goto DONE -:ERR_MINGWDIR -echo You need to specify a valid MINGWDIR, where a valid gcc installation can be found. -goto DONE -:DONE - diff --git a/build/win32/introspection-msvc.mak b/build/win32/introspection-msvc.mak new file mode 100644 index 0000000..d637cc7 --- /dev/null +++ b/build/win32/introspection-msvc.mak @@ -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= 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 index 0000000..9089e28 --- /dev/null +++ b/build/win32/json-glib-introspection-msvc.mak @@ -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 diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am index 4c287c8..5eb300d 100644 --- a/build/win32/vs10/Makefile.am +++ b/build/win32/vs10/Makefile.am @@ -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) diff --git a/build/win32/vs10/Makefile.in b/build/win32/vs10/Makefile.in index d6a4b0f..dba9436 100644 --- a/build/win32/vs10/Makefile.in +++ b/build/win32/vs10/Makefile.in @@ -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,23 +14,61 @@ @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. diff --git a/build/win32/vs10/array.vcxproj b/build/win32/vs10/array.vcxproj index 4c079ea..7ec8e00 100644 --- a/build/win32/vs10/array.vcxproj +++ b/build/win32/vs10/array.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -116,7 +120,7 @@ MaxSpeed true %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + %(PreprocessorDefinitions) MultiThreadedDLL true @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/array.vcxproj.filters b/build/win32/vs10/array.vcxproj.filters index e4b82bf..f14dfb1 100644 --- a/build/win32/vs10/array.vcxproj.filters +++ b/build/win32/vs10/array.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/boxed.vcxproj b/build/win32/vs10/boxed.vcxproj index 9c28df6..1397634 100644 --- a/build/win32/vs10/boxed.vcxproj +++ b/build/win32/vs10/boxed.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/boxed.vcxproj.filters b/build/win32/vs10/boxed.vcxproj.filters index 5bc87a9..30f52f1 100644 --- a/build/win32/vs10/boxed.vcxproj.filters +++ b/build/win32/vs10/boxed.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/builder.vcxproj b/build/win32/vs10/builder.vcxproj index 08096cb..34e1106 100644 --- a/build/win32/vs10/builder.vcxproj +++ b/build/win32/vs10/builder.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/builder.vcxproj.filters b/build/win32/vs10/builder.vcxproj.filters index 2446c0a..5a863c1 100644 --- a/build/win32/vs10/builder.vcxproj.filters +++ b/build/win32/vs10/builder.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/generator.vcxproj b/build/win32/vs10/generator.vcxproj index 8e094d0..ec71341 100644 --- a/build/win32/vs10/generator.vcxproj +++ b/build/win32/vs10/generator.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/generator.vcxproj.filters b/build/win32/vs10/generator.vcxproj.filters index 5e8776b..554c572 100644 --- a/build/win32/vs10/generator.vcxproj.filters +++ b/build/win32/vs10/generator.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/gvariant.vcxproj b/build/win32/vs10/gvariant.vcxproj index 155dab3..382908c 100644 --- a/build/win32/vs10/gvariant.vcxproj +++ b/build/win32/vs10/gvariant.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -155,4 +159,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/gvariant.vcxproj.filters b/build/win32/vs10/gvariant.vcxproj.filters index f20dd6e..f273c99 100644 --- a/build/win32/vs10/gvariant.vcxproj.filters +++ b/build/win32/vs10/gvariant.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/install.vcxproj b/build/win32/vs10/install.vcxproj deleted file mode 100644 index 1539cbd..0000000 --- a/build/win32/vs10/install.vcxproj +++ /dev/null @@ -1,156 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {41ABBEB6-693A-4E63-9DD7-EAAC437BC173} - install - Win32Proj - - - - Utility - MultiByte - true - - - Utility - MultiByte - - - Utility - MultiByte - true - - - Utility - MultiByte - - - - - - - - - - - - - - - - - - - - - - - $(GlibEtcInstallRoot)\ - $(SolutionDir)$(Configuration)\$(Platform)\obj\ - $(GlibEtcInstallRoot)\ - - $(GlibEtcInstallRoot)\ - $(SolutionDir)$(Configuration)\$(Platform)\obj\ - $(GlibEtcInstallRoot)\ - - - - - $(JsonGlibDoInstall) - - - - - $(JsonGlibDoInstall) - - - - - $(JsonGlibDoInstall) - - - - - $(JsonGlibDoInstall) - - - - - {9b2921c9-577f-418d-8341-6d79771ddcec} - false - - - {b7d32b02-3481-4a6e-8e0f-b43887f348a8} - false - - - {e84f9d53-c9f7-4d7d-b8d0-afe8be3e7b7d} - false - - - {469db0a8-e33e-4112-a38c-52a168ecdc03} - false - - - {04658465-64f9-4f06-b7a7-d40f6edf26e3} - false - - - {83a444a0-d80e-40e0-90cf-5876e1aa97db} - false - - - {bdf81d39-f7e1-4b34-80e5-4b979e10629f} - false - - - {99fc597f-539a-49bb-9b9a-6c1ef802a17b} - false - - - {5016d295-cc2f-4149-80c2-71d7a33791b2} - false - - - {c3fcc23b-54cc-4447-b9a7-ce095ea60b16} - false - - - {980282ca-eaea-4f33-8982-39daf018978a} - false - - - {27afa4cd-917a-4155-9f61-025094a97933} - false - - - {aa52a332-735d-4177-8ca6-842018e60ded} - false - - - {ff640d73-9bcd-4b75-b63f-75175a3c9f67} - false - - - - - - \ No newline at end of file diff --git a/build/win32/vs10/invalid.vcxproj b/build/win32/vs10/invalid.vcxproj new file mode 100644 index 0000000..5107991 --- /dev/null +++ b/build/win32/vs10/invalid.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {04658465-64F9-4F06-B7A7-D40F6EDF26E4} + invalid + Win32Proj + + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + + + + + + + + + + + + + + + + + + + + + true + true + false + false + + + + Disabled + %(AdditionalIncludeDirectories) + _DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + %(ForcedIncludeFiles) + + + true + Console + MachineX86 + + + + + Disabled + _DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + MachineX64 + + + + + + + + + MaxSpeed + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + %(ForcedIncludeFiles) + + + %(AdditionalDependencies) + true + Console + true + true + MachineX86 + + + + + %(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + true + true + MachineX64 + + + + + + + + {469db0a8-e33e-4112-a38c-52a168ecdc03} + false + + + + + + diff --git a/build/win32/vs10/invalid.vcxproj.filters b/build/win32/vs10/invalid.vcxproj.filters new file mode 100644 index 0000000..322c279 --- /dev/null +++ b/build/win32/vs10/invalid.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Sources + + + diff --git a/build/win32/vs10/json-glib-build-defines.props b/build/win32/vs10/json-glib-build-defines.props new file mode 100644 index 0000000..b6267cc --- /dev/null +++ b/build/win32/vs10/json-glib-build-defines.props @@ -0,0 +1,32 @@ + + + + + + + JSON_COMPILATION;G_LOG_DOMAIN="Json";JSON_LOCALEDIR="/dummy" + + + <_PropertySheetDisplayName>jsonglibbuilddefinesprops + $(SolutionDir)$(Configuration)\$(PlatformName)\bin\ + $(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\ + + + + ..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) + HAVE_CONFIG_H;%(PreprocessorDefinitions) + msvc_recommended_pragmas.h;%(ForcedIncludeFiles) + true + /d2Zi+ %(AdditionalOptions) + + + glib-2.0.lib;gobject-2.0.lib;gio-2.0.lib;%(AdditionalDependencies) + $(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories) + + + + + $(JsonGlibDefines) + + + diff --git a/build/win32/vs10/json-glib-format.vcxproj b/build/win32/vs10/json-glib-format.vcxproj new file mode 100644 index 0000000..8af5074 --- /dev/null +++ b/build/win32/vs10/json-glib-format.vcxproj @@ -0,0 +1,166 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {FF640D73-9BCD-4B75-B63F-75175A3C9F69} + jsonglibformat + Win32Proj + + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + + + + + + + + + + + + + + + + + + + + + true + true + false + false + + + + Disabled + _DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + intl.lib;%(AdditionalDependencies) + Console + MachineX86 + + + + + Disabled + _DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + intl.lib;%(AdditionalDependencies) + Console + MachineX64 + + + + + MaxSpeed + true + $(JsonGlibDefines);%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + intl.lib;%(AdditionalDependencies) + Console + true + true + MachineX86 + + + + + $(JsonGlibDefines);%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + intl.lib;%(AdditionalDependencies) + Console + true + true + MachineX64 + + + + + + + + {469db0a8-e33e-4112-a38c-52a168ecdc03} + false + + + + + + diff --git a/build/win32/vs10/json-glib-format.vcxproj.filters b/build/win32/vs10/json-glib-format.vcxproj.filters new file mode 100644 index 0000000..3911577 --- /dev/null +++ b/build/win32/vs10/json-glib-format.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Sources + + + diff --git a/build/win32/vs10/json-glib-gen-srcs.props b/build/win32/vs10/json-glib-gen-srcs.props new file mode 100644 index 0000000..f5629eb --- /dev/null +++ b/build/win32/vs10/json-glib-gen-srcs.props @@ -0,0 +1,17 @@ + + + + + + + copy ..\config.h.win32 ..\..\..\config.h + + + <_PropertySheetDisplayName>jsonglibgensrcsprops + + + + $(CopyConfigH) + + + diff --git a/build/win32/vs10/json-glib-install.props b/build/win32/vs10/json-glib-install.props new file mode 100644 index 0000000..f03efd7 --- /dev/null +++ b/build/win32/vs10/json-glib-install.props @@ -0,0 +1,54 @@ + + + + + + + $(SolutionDir)$(Configuration)\$(Platform)\bin + $(BinDir)\$(JsonGlibDllPrefix)json-glib(JsonGlibDllSuffix).dll + $(BinDir)\json-glib-format.exe;$(BinDir)\json-glib-validate.exe + +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 + + + + <_PropertySheetDisplayName>jsonglibinstallprops + + + + $(BinDir) + + + $(InstalledDlls) + + + $(InstalledBins) + + + $(JsonGlibDoInstall) + + + diff --git a/build/win32/vs10/gengir.vcxproj b/build/win32/vs10/json-glib-install.vcxproj similarity index 63% rename from build/win32/vs10/gengir.vcxproj rename to build/win32/vs10/json-glib-install.vcxproj index 12c32a2..25551b6 100644 --- a/build/win32/vs10/gengir.vcxproj +++ b/build/win32/vs10/json-glib-install.vcxproj @@ -19,8 +19,8 @@ - {2093D218-190E-4194-9421-3BA7CBF33B15} - gengir + {41ABBEB6-693A-4E63-9DD7-EAAC437BC173} + jsonglibinstall Win32Proj @@ -28,77 +28,83 @@ Utility MultiByte true + v100 Utility MultiByte + v100 Utility MultiByte true + v100 Utility MultiByte + v100 - + - + - + - + - - $(GlibEtcInstallRoot)\ - - $(GlibEtcInstallRoot)\ - - $(GlibEtcInstallRoot)\ - - $(GlibEtcInstallRoot)\ - - - - $(DoGenGir) - - - $(DoGenGir) - - - $(DoGenGir) - - - $(DoGenGir) - + + Installing Build Results... + $(JsonGlibDoInstall) + $(InstalledDlls);$(InstalledBins);%(Outputs) + Installing Build Results... + $(JsonGlibDoInstall) + $(InstalledDlls);$(InstalledBins);%(Outputs) + Installing Build Results... + $(JsonGlibDoInstall) + $(InstalledDlls);$(InstalledBins);%(Outputs) + Installing Build Results... + $(JsonGlibDoInstall) + $(InstalledDlls);$(InstalledBins);%(Outputs) + + + {469db0a8-e33e-4112-a38c-52a168ecdc03} false + + {ff640d73-9bcd-4b75-b63f-75175a3c9f68} + false + + + {ff640d73-9bcd-4b75-b63f-75175a3c9f69} + false + - \ No newline at end of file + diff --git a/build/win32/vs10/json-glib-validate.vcxproj b/build/win32/vs10/json-glib-validate.vcxproj new file mode 100644 index 0000000..f847fc3 --- /dev/null +++ b/build/win32/vs10/json-glib-validate.vcxproj @@ -0,0 +1,166 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {FF640D73-9BCD-4B75-B63F-75175A3C9F68} + jsonglibvalidate + Win32Proj + + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + Application + MultiByte + true + v100 + + + Application + MultiByte + v100 + + + + + + + + + + + + + + + + + + + + + + + true + true + false + false + + + + Disabled + _DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + intl.lib;%(AdditionalDependencies) + Console + MachineX86 + + + + + Disabled + _DEBUG;$(JsonGlibDefines);%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + intl.lib;%(AdditionalDependencies) + Console + MachineX64 + + + + + MaxSpeed + true + $(JsonGlibDefines);%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + intl.lib;%(AdditionalDependencies) + Console + true + true + MachineX86 + + + + + $(JsonGlibDefines);%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + intl.lib;%(AdditionalDependencies) + Console + true + true + MachineX64 + + + + + + + + {469db0a8-e33e-4112-a38c-52a168ecdc03} + false + + + + + + diff --git a/build/win32/vs10/json-glib-validate.vcxproj.filters b/build/win32/vs10/json-glib-validate.vcxproj.filters new file mode 100644 index 0000000..6f9b5c3 --- /dev/null +++ b/build/win32/vs10/json-glib-validate.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Sources + + + diff --git a/build/win32/vs10/json-glib-version-paths.props b/build/win32/vs10/json-glib-version-paths.props new file mode 100644 index 0000000..0e0eca5 --- /dev/null +++ b/build/win32/vs10/json-glib-version-paths.props @@ -0,0 +1,54 @@ + + + + 10 + $(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform) + $(GlibEtcInstallRoot) + $(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\ + 1.0 + lib + -1.0-0 + + -1-vs$(VSVer) + $(JsonGlibSeparateVSDllPrefix) + $(JsonGlibSeparateVSDllSuffix) + + + <_PropertySheetDisplayName>jsonglibversionpathsprops + + + + $(VSVer) + + + $(GlibEtcInstallRoot) + + + $(CopyDir) + + + $(ApiVersion) + + + $(JsonGlibLibtoolCompatibleDllPrefix) + + + $(JsonGlibLibtoolCompatibleDllSuffix) + + + $(JsonGlibSeparateVSDllPrefix) + + + $(JsonGlibSeparateVSDllSuffix) + + + $(JsonGlibDllPrefix) + + + $(JsonGlibDllSuffix) + + + $(DefDir) + + + diff --git a/build/win32/vs10/json-glib.props b/build/win32/vs10/json-glib.props deleted file mode 100644 index 1efcc9f..0000000 --- a/build/win32/vs10/json-glib.props +++ /dev/null @@ -1,154 +0,0 @@ - - - - 10 - ..\..\..\..\vs$(VSVer)\$(Platform) - ..\..\..\vs$(VSVer)\$(Platform) - $(GlibEtcInstallRoot) - $(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\ - 1.0 - -if exist ..\..\..\config.h goto DONE_CONFIG_H - -copy ..\config.h.win32 ..\..\..\config.h - -:DONE_CONFIG_H - - - -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 - - - -set VSVER=$(VSVer) -set CONF=$(Configuration) -set PLAT=$(Platform) -set BASEDIR=$(GlibEtcInstallRootFromBuildWin32) -cd .. -call gengir_jsonglib.bat - -cd vs$(VSVer) - - -echo EXPORTS >$(DefDir)\json-glib.def -cl /EP ..\..\..\json-glib\json-glib.symbols >>$(DefDir)\json-glib.def - - JSON_COMPILATION;G_LOG_DOMAIN="Json" - lib - -1.0-0 - - -1-vs$(VSVer) - $(JsonGlibSeparateVSDllPrefix) - $(JsonGlibSeparateVSDllSuffix) - - - <_PropertySheetDisplayName>jsonglibprops - $(SolutionDir)$(Configuration)\$(PlatformName)\bin\ - $(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\ - - - - ..\..\..;..\..\..\json-glib;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) - HAVE_CONFIG_H;G_DISABLE_DEPRECATED;%(PreprocessorDefinitions) - msvc_recommended_pragmas.h;%(ForcedIncludeFiles) - - - glib-2.0.lib;gobject-2.0.lib;gio-2.0.lib;%(AdditionalDependencies) - $(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories) - - - - - $(VSVer) - - - $(GlibEtcInstallRoot) - - - $(GlibEtcInstallRootFromBuildWin32) - - - $(CopyDir) - - - $(PrepBuild) - - - $(JsonGlibDoInstall) - - - $(JsonGlibGenerateDef) - - - $(ApiVersion) - - - $(JsonGlibDefines) - - - $(JsonGlibLibtoolCompatibleDllPrefix) - - - $(JsonGlibLibtoolCompatibleDllSuffix) - - - $(JsonGlibSeparateVSDllPrefix) - - - $(JsonGlibSeparateVSDllSuffix) - - - $(JsonGlibDllPrefix) - - - $(JsonGlibDllSuffix) - - - $(DefDir) - - - $(DoGenGir) - - - \ No newline at end of file diff --git a/build/win32/vs10/json-glib.sln b/build/win32/vs10/json-glib.sln index 0c68243..a68fd98 100644 --- a/build/win32/vs10/json-glib.sln +++ b/build/win32/vs10/json-glib.sln @@ -1,6 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcxproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-validate", "json-glib-validate.vcxproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-format", "json-glib-format.vcxproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F69}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-install", "json-glib-install.vcxproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcxproj", "{9B2921C9-577F-418D-8341-6D79771DDCEC}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "builder", "builder.vcxproj", "{B7D32B02-3481-4A6E-8E0F-B43887F348A8}" @@ -27,11 +35,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "serialize-simple", "seriali EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boxed", "boxed.vcxproj", "{5016D295-CC2F-4149-80C2-71D7A33791B2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcxproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengir", "gengir.vcxproj", "{2093D218-190E-4194-9421-3BA7CBF33B15}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid", "invalid.vcxproj", "{04658465-64F9-4F06-B7A7-D40F6EDF26E4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -41,6 +45,30 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.Build.0 = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.ActiveCfg = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.Build.0 = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.ActiveCfg = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.Build.0 = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.ActiveCfg = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.Build.0 = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.Build.0 = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.ActiveCfg = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.Build.0 = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.ActiveCfg = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.Build.0 = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.ActiveCfg = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.Build.0 = Release|x64 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.ActiveCfg = Debug|Win32 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.Build.0 = Debug|Win32 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|x64.ActiveCfg = Debug|x64 @@ -129,14 +157,6 @@ Global {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|Win32.Build.0 = Release|Win32 {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.ActiveCfg = Release|x64 {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.Build.0 = Release|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.ActiveCfg = Debug|Win32 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.Build.0 = Debug|Win32 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|x64.ActiveCfg = Debug|x64 @@ -161,10 +181,14 @@ Global {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|Win32.Build.0 = Release|Win32 {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.ActiveCfg = Release|x64 {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.Build.0 = Release|x64 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|Win32.ActiveCfg = Debug|Win32 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|x64.ActiveCfg = Debug|x64 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|Win32.ActiveCfg = Release|Win32 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|x64.ActiveCfg = Release|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.Build.0 = Debug|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.ActiveCfg = Debug|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.Build.0 = Debug|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.ActiveCfg = Release|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.Build.0 = Release|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.ActiveCfg = Release|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/build/win32/vs10/json-glib.vcxproj b/build/win32/vs10/json-glib.vcxproj index 1f77a9f..515cab6 100644 --- a/build/win32/vs10/json-glib.vcxproj +++ b/build/win32/vs10/json-glib.vcxproj @@ -28,37 +28,41 @@ DynamicLibrary MultiByte true + v100 DynamicLibrary MultiByte + v100 DynamicLibrary MultiByte + v100 DynamicLibrary MultiByte + v100 - + - + - + - + @@ -69,7 +73,6 @@ - $(PrepBuild) Disabled @@ -84,12 +87,8 @@ EditAndContinue %(ForcedIncludeFiles) - - $(JsonGlibGenerateDef) - $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows $(TargetDir)$(ProjectName)-$(ApiVersion).lib @@ -98,7 +97,6 @@ - $(PrepBuild) Disabled @@ -111,13 +109,9 @@ Level3 ProgramDatabase - - $(JsonGlibGenerateDef) - %(AdditionalDependencies) $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows $(TargetDir)$(ProjectName)-$(ApiVersion).lib @@ -126,7 +120,6 @@ - $(PrepBuild) MaxSpeed @@ -141,12 +134,8 @@ ProgramDatabase %(ForcedIncludeFiles) - - $(JsonGlibGenerateDef) - $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows true @@ -157,7 +146,6 @@ - $(PrepBuild) $(JsonGlibDefines);%(PreprocessorDefinitions) @@ -167,13 +155,9 @@ Level3 ProgramDatabase - - $(JsonGlibGenerateDef) - %(AdditionalDependencies) $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows true @@ -183,24 +167,41 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + + diff --git a/build/win32/vs10/json-glib.vcxproj.filters b/build/win32/vs10/json-glib.vcxproj.filters index bda3c69..fbee4dd 100644 --- a/build/win32/vs10/json-glib.vcxproj.filters +++ b/build/win32/vs10/json-glib.vcxproj.filters @@ -15,22 +15,26 @@ - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources - Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources + Sources Sources Sources + + Resource Files + diff --git a/build/win32/vs10/json-glib.vcxproj.filtersin b/build/win32/vs10/json-glib.vcxproj.filtersin index 84f08cf..30ea641 100644 --- a/build/win32/vs10/json-glib.vcxproj.filtersin +++ b/build/win32/vs10/json-glib.vcxproj.filtersin @@ -17,4 +17,7 @@ #include "jsonglib.vs10.sourcefiles.filters" - \ No newline at end of file + + Resource Files + + diff --git a/build/win32/vs10/json-glib.vcxprojin b/build/win32/vs10/json-glib.vcxprojin index c5e7c71..b41c6c4 100644 --- a/build/win32/vs10/json-glib.vcxprojin +++ b/build/win32/vs10/json-glib.vcxprojin @@ -28,37 +28,41 @@ DynamicLibrary MultiByte true + v100 DynamicLibrary MultiByte + v100 DynamicLibrary MultiByte + v100 DynamicLibrary MultiByte + v100 - + - + - + - + @@ -69,7 +73,6 @@ - $(PrepBuild) Disabled @@ -84,12 +87,8 @@ EditAndContinue %(ForcedIncludeFiles) - - $(JsonGlibGenerateDef) - $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows $(TargetDir)$(ProjectName)-$(ApiVersion).lib @@ -98,7 +97,6 @@ - $(PrepBuild) Disabled @@ -111,13 +109,9 @@ Level3 ProgramDatabase - - $(JsonGlibGenerateDef) - %(AdditionalDependencies) $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows $(TargetDir)$(ProjectName)-$(ApiVersion).lib @@ -126,7 +120,6 @@ - $(PrepBuild) MaxSpeed @@ -141,12 +134,8 @@ ProgramDatabase %(ForcedIncludeFiles) - - $(JsonGlibGenerateDef) - $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows true @@ -157,7 +146,6 @@ - $(PrepBuild) $(JsonGlibDefines);%(PreprocessorDefinitions) @@ -167,13 +155,9 @@ Level3 ProgramDatabase - - $(JsonGlibGenerateDef) - %(AdditionalDependencies) $(OutDir)$(JsonGlibDllPrefix)$(ProjectName)$(JsonGlibDllSuffix).dll - $(IntDir)\json-glib.def true Windows true @@ -185,7 +169,23 @@ #include "jsonglib.vs10.sourcefiles" + + + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + Copying config.h from config.h.win32... + $(CopyConfigH) + ..\..\..\config.h;%(Outputs) + + - \ No newline at end of file + diff --git a/build/win32/vs10/node.vcxproj b/build/win32/vs10/node.vcxproj index 86faa56..9c34843 100644 --- a/build/win32/vs10/node.vcxproj +++ b/build/win32/vs10/node.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/node.vcxproj.filters b/build/win32/vs10/node.vcxproj.filters index 7fde665..32c66c2 100644 --- a/build/win32/vs10/node.vcxproj.filters +++ b/build/win32/vs10/node.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/object.vcxproj b/build/win32/vs10/object.vcxproj index ebd2421..03682f3 100644 --- a/build/win32/vs10/object.vcxproj +++ b/build/win32/vs10/object.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/object.vcxproj.filters b/build/win32/vs10/object.vcxproj.filters index b4ccc4d..d6e9a5b 100644 --- a/build/win32/vs10/object.vcxproj.filters +++ b/build/win32/vs10/object.vcxproj.filters @@ -10,4 +10,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/parser.vcxproj b/build/win32/vs10/parser.vcxproj index 8d05e0c..3d99594 100644 --- a/build/win32/vs10/parser.vcxproj +++ b/build/win32/vs10/parser.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -72,7 +76,7 @@ Disabled %(AdditionalIncludeDirectories) - _DEBUG;TESTS_DATA_DIR="./";%(PreprocessorDefinitions) + _DEBUG;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -91,7 +95,7 @@ Disabled - _DEBUG;TESTS_DATA_DIR="./";%(PreprocessorDefinitions) + _DEBUG;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -116,7 +120,7 @@ MaxSpeed true %(AdditionalIncludeDirectories) - TESTS_DATA_DIR="./";%(PreprocessorDefinitions) + %(PreprocessorDefinitions) MultiThreadedDLL true @@ -136,7 +140,7 @@ - TESTS_DATA_DIR="./";%(PreprocessorDefinitions) + %(PreprocessorDefinitions) MultiThreadedDLL @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/parser.vcxproj.filters b/build/win32/vs10/parser.vcxproj.filters index e0c8df6..c164d40 100644 --- a/build/win32/vs10/parser.vcxproj.filters +++ b/build/win32/vs10/parser.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/path.vcxproj b/build/win32/vs10/path.vcxproj index 8bf079f..04e8139 100644 --- a/build/win32/vs10/path.vcxproj +++ b/build/win32/vs10/path.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -155,4 +159,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/path.vcxproj.filters b/build/win32/vs10/path.vcxproj.filters index a669b22..80ca3d1 100644 --- a/build/win32/vs10/path.vcxproj.filters +++ b/build/win32/vs10/path.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/reader.vcxproj b/build/win32/vs10/reader.vcxproj index af5be22..61b5418 100644 --- a/build/win32/vs10/reader.vcxproj +++ b/build/win32/vs10/reader.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -165,4 +169,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/reader.vcxproj.filters b/build/win32/vs10/reader.vcxproj.filters index 6d8fac7..1049043 100644 --- a/build/win32/vs10/reader.vcxproj.filters +++ b/build/win32/vs10/reader.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-complex.vcxproj b/build/win32/vs10/serialize-complex.vcxproj index 0c6387b..428ed79 100644 --- a/build/win32/vs10/serialize-complex.vcxproj +++ b/build/win32/vs10/serialize-complex.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -163,4 +167,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-complex.vcxproj.filters b/build/win32/vs10/serialize-complex.vcxproj.filters index 68ca595..5a2d8b5 100644 --- a/build/win32/vs10/serialize-complex.vcxproj.filters +++ b/build/win32/vs10/serialize-complex.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-full.vcxproj b/build/win32/vs10/serialize-full.vcxproj index c464a4a..7e7e94d 100644 --- a/build/win32/vs10/serialize-full.vcxproj +++ b/build/win32/vs10/serialize-full.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -164,4 +168,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-full.vcxproj.filters b/build/win32/vs10/serialize-full.vcxproj.filters index cc23f72..b7c69b9 100644 --- a/build/win32/vs10/serialize-full.vcxproj.filters +++ b/build/win32/vs10/serialize-full.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-simple.vcxproj b/build/win32/vs10/serialize-simple.vcxproj index 920659f..596d57f 100644 --- a/build/win32/vs10/serialize-simple.vcxproj +++ b/build/win32/vs10/serialize-simple.vcxproj @@ -28,38 +28,42 @@ Application MultiByte true + v100 Application MultiByte + v100 Application MultiByte true + v100 Application MultiByte + v100 - + - + - + - + @@ -163,4 +167,4 @@ - \ No newline at end of file + diff --git a/build/win32/vs10/serialize-simple.vcxproj.filters b/build/win32/vs10/serialize-simple.vcxproj.filters index fe72401..3fc20bd 100644 --- a/build/win32/vs10/serialize-simple.vcxproj.filters +++ b/build/win32/vs10/serialize-simple.vcxproj.filters @@ -11,4 +11,4 @@ Sources - \ No newline at end of file + diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am index 24a1ada..0072461 100644 --- a/build/win32/vs9/Makefile.am +++ b/build/win32/vs9/Makefile.am @@ -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) diff --git a/build/win32/vs9/Makefile.in b/build/win32/vs9/Makefile.in index 0244e39..be28db2 100644 --- a/build/win32/vs9/Makefile.in +++ b/build/win32/vs9/Makefile.in @@ -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,23 +14,61 @@ @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. diff --git a/build/win32/vs9/array.vcproj b/build/win32/vs9/array.vcproj index 0f8116c..77c6f03 100644 --- a/build/win32/vs9/array.vcproj +++ b/build/win32/vs9/array.vcproj @@ -1,153 +1,153 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/boxed.vcproj b/build/win32/vs9/boxed.vcproj index 438156d..61f3891 100644 --- a/build/win32/vs9/boxed.vcproj +++ b/build/win32/vs9/boxed.vcproj @@ -22,7 +22,7 @@ @@ -78,7 +78,7 @@ @@ -112,7 +112,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/generator.vcproj b/build/win32/vs9/generator.vcproj index a7e6dc0..bd369bc 100644 --- a/build/win32/vs9/generator.vcproj +++ b/build/win32/vs9/generator.vcproj @@ -1,153 +1,153 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/gengir.vcproj b/build/win32/vs9/gengir.vcproj deleted file mode 100644 index a5cc540..0000000 --- a/build/win32/vs9/gengir.vcproj +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/win32/vs9/gvariant.vcproj b/build/win32/vs9/gvariant.vcproj index abd76e4..4164a65 100644 --- a/build/win32/vs9/gvariant.vcproj +++ b/build/win32/vs9/gvariant.vcproj @@ -21,7 +21,7 @@ @@ -49,7 +49,7 @@ @@ -75,7 +75,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib-build-defines.vsprops b/build/win32/vs9/json-glib-build-defines.vsprops new file mode 100644 index 0000000..33c9afb --- /dev/null +++ b/build/win32/vs9/json-glib-build-defines.vsprops @@ -0,0 +1,26 @@ + + + + + + diff --git a/build/win32/vs9/json-glib-format.vcproj b/build/win32/vs9/json-glib-format.vcproj new file mode 100644 index 0000000..c2640ba --- /dev/null +++ b/build/win32/vs9/json-glib-format.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib-gen-srcs.vsprops b/build/win32/vs9/json-glib-gen-srcs.vsprops new file mode 100644 index 0000000..aa4fee6 --- /dev/null +++ b/build/win32/vs9/json-glib-gen-srcs.vsprops @@ -0,0 +1,12 @@ + + + + diff --git a/build/win32/vs9/install.vcproj b/build/win32/vs9/json-glib-install.vcproj similarity index 67% rename from build/win32/vs9/install.vcproj rename to build/win32/vs9/json-glib-install.vcproj index b79beb1..a530235 100644 --- a/build/win32/vs9/install.vcproj +++ b/build/win32/vs9/json-glib-install.vcproj @@ -1,83 +1,77 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib-install.vsprops b/build/win32/vs9/json-glib-install.vsprops new file mode 100644 index 0000000..f797b54 --- /dev/null +++ b/build/win32/vs9/json-glib-install.vsprops @@ -0,0 +1,39 @@ + + + + diff --git a/build/win32/vs9/json-glib-validate.vcproj b/build/win32/vs9/json-glib-validate.vcproj new file mode 100644 index 0000000..1550deb --- /dev/null +++ b/build/win32/vs9/json-glib-validate.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib-version-paths.vsprops b/build/win32/vs9/json-glib-version-paths.vsprops new file mode 100644 index 0000000..cade5f9 --- /dev/null +++ b/build/win32/vs9/json-glib-version-paths.vsprops @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib.sln b/build/win32/vs9/json-glib.sln index 7fd4b61..c451f6c 100644 --- a/build/win32/vs9/json-glib.sln +++ b/build/win32/vs9/json-glib.sln @@ -1,6 +1,18 @@  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-validate", "json-glib-validate.vcproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F68}" + ProjectSection(ProjectDependencies) = postProject + {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-format", "json-glib-format.vcproj", "{FF640D73-9BCD-4B75-B63F-75175A3C9F69}" + ProjectSection(ProjectDependencies) = postProject + {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcproj", "{9B2921C9-577F-418D-8341-6D79771DDCEC}" ProjectSection(ProjectDependencies) = postProject {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} @@ -66,29 +78,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "path", "path.vcproj", "{FF6 {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib", "json-glib.vcproj", "{469DB0A8-E33E-4112-A38C-52A168ECDC03}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid", "invalid.vcproj", "{04658465-64F9-4F06-B7A7-D40F6EDF26E4}" ProjectSection(ProjectDependencies) = postProject - {B7D32B02-3481-4A6E-8E0F-B43887F348A8} = {B7D32B02-3481-4A6E-8E0F-B43887F348A8} - {BDF81D39-F7E1-4B34-80E5-4B979E10629F} = {BDF81D39-F7E1-4B34-80E5-4B979E10629F} - {C3FCC23B-54CC-4447-B9A7-CE095EA60B16} = {C3FCC23B-54CC-4447-B9A7-CE095EA60B16} - {E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D} = {E84F9D53-C9F7-4D7D-B8D0-AFE8BE3E7B7D} - {04658465-64F9-4F06-B7A7-D40F6EDF26E3} = {04658465-64F9-4F06-B7A7-D40F6EDF26E3} - {99FC597F-539A-49BB-9B9A-6C1EF802A17B} = {99FC597F-539A-49BB-9B9A-6C1EF802A17B} - {5016D295-CC2F-4149-80C2-71D7A33791B2} = {5016D295-CC2F-4149-80C2-71D7A33791B2} - {83A444A0-D80E-40E0-90CF-5876E1AA97DB} = {83A444A0-D80E-40E0-90CF-5876E1AA97DB} {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} - {9B2921C9-577F-418D-8341-6D79771DDCEC} = {9B2921C9-577F-418D-8341-6D79771DDCEC} - {980282CA-EAEA-4F33-8982-39DAF018978A} = {980282CA-EAEA-4F33-8982-39DAF018978A} - {27AFA4CD-917A-4155-9F61-025094A97933} = {27AFA4CD-917A-4155-9F61-025094A97933} - {AA52A332-735D-4177-8CA6-842018E60DED} = {AA52A332-735D-4177-8CA6-842018E60DED} - {FF640D73-9BCD-4B75-B63F-75175A3C9F67} = {FF640D73-9BCD-4B75-B63F-75175A3C9F67} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengir", "gengir.vcproj", "{2093D218-190E-4194-9421-3BA7CBF33B15}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json-glib-install", "json-glib-install.vcproj", "{41ABBEB6-693A-4E63-9DD7-EAAC437BC173}" ProjectSection(ProjectDependencies) = postProject {469DB0A8-E33E-4112-A38C-52A168ECDC03} = {469DB0A8-E33E-4112-A38C-52A168ECDC03} + {FF640D73-9BCD-4B75-B63F-75175A3C9F68} = {FF640D73-9BCD-4B75-B63F-75175A3C9F68} + {FF640D73-9BCD-4B75-B63F-75175A3C9F69} = {FF640D73-9BCD-4B75-B63F-75175A3C9F69} EndProjectSection EndProject Global @@ -99,6 +98,30 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64 + {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|Win32.Build.0 = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.ActiveCfg = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Debug|x64.Build.0 = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.ActiveCfg = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|Win32.Build.0 = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.ActiveCfg = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F68}.Release|x64.Build.0 = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|Win32.Build.0 = Debug|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.ActiveCfg = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Debug|x64.Build.0 = Debug|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.ActiveCfg = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|Win32.Build.0 = Release|Win32 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.ActiveCfg = Release|x64 + {FF640D73-9BCD-4B75-B63F-75175A3C9F69}.Release|x64.Build.0 = Release|x64 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.ActiveCfg = Debug|Win32 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|Win32.Build.0 = Debug|Win32 {9B2921C9-577F-418D-8341-6D79771DDCEC}.Debug|x64.ActiveCfg = Debug|x64 @@ -187,14 +210,6 @@ Global {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|Win32.Build.0 = Release|Win32 {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.ActiveCfg = Release|x64 {5016D295-CC2F-4149-80C2-71D7A33791B2}.Release|x64.Build.0 = Release|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.ActiveCfg = Debug|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|Win32.Build.0 = Debug|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.ActiveCfg = Debug|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Debug|x64.Build.0 = Debug|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.ActiveCfg = Release|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|Win32.Build.0 = Release|Win32 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.ActiveCfg = Release|x64 - {469DB0A8-E33E-4112-A38C-52A168ECDC03}.Release|x64.Build.0 = Release|x64 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.ActiveCfg = Debug|Win32 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|Win32.Build.0 = Debug|Win32 {AA52A332-735D-4177-8CA6-842018E60DED}.Debug|x64.ActiveCfg = Debug|x64 @@ -219,10 +234,14 @@ Global {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|Win32.Build.0 = Release|Win32 {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.ActiveCfg = Release|x64 {41ABBEB6-693A-4E63-9DD7-EAAC437BC173}.Release|x64.Build.0 = Release|x64 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|Win32.ActiveCfg = Debug|Win32 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Debug|x64.ActiveCfg = Debug|x64 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|Win32.ActiveCfg = Release|Win32 - {2093D218-190E-4194-9421-3BA7CBF33B15}.Release|x64.ActiveCfg = Release|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|Win32.Build.0 = Debug|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.ActiveCfg = Debug|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Debug|x64.Build.0 = Debug|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.ActiveCfg = Release|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|Win32.Build.0 = Release|Win32 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.ActiveCfg = Release|x64 + {04658465-64F9-4F06-B7A7-D40F6EDF26E4}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/build/win32/vs9/json-glib.vcproj b/build/win32/vs9/json-glib.vcproj index e4b68b0..01dfba4 100644 --- a/build/win32/vs9/json-glib.vcproj +++ b/build/win32/vs9/json-glib.vcproj @@ -22,14 +22,10 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -209,6 +174,40 @@ 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}" > + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib.vcprojin b/build/win32/vs9/json-glib.vcprojin index 2ab1537..4f13c72 100644 --- a/build/win32/vs9/json-glib.vcprojin +++ b/build/win32/vs9/json-glib.vcprojin @@ -22,14 +22,10 @@ - - - - - - - - + + + + + + + + + + + + + + diff --git a/build/win32/vs9/json-glib.vsprops b/build/win32/vs9/json-glib.vsprops deleted file mode 100644 index 355c682..0000000 --- a/build/win32/vs9/json-glib.vsprops +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/win32/vs9/node.vcproj b/build/win32/vs9/node.vcproj index fcbda7a..2e9b538 100644 --- a/build/win32/vs9/node.vcproj +++ b/build/win32/vs9/node.vcproj @@ -1,153 +1,153 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/object.vcproj b/build/win32/vs9/object.vcproj index 51d89f0..7115902 100644 --- a/build/win32/vs9/object.vcproj +++ b/build/win32/vs9/object.vcproj @@ -1,151 +1,151 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/parser.vcproj b/build/win32/vs9/parser.vcproj index 1a2aea8..067b29c 100644 --- a/build/win32/vs9/parser.vcproj +++ b/build/win32/vs9/parser.vcproj @@ -1,162 +1,162 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/path.vcproj b/build/win32/vs9/path.vcproj index f3669c5..36e45b0 100644 --- a/build/win32/vs9/path.vcproj +++ b/build/win32/vs9/path.vcproj @@ -21,7 +21,7 @@ @@ -49,7 +49,7 @@ @@ -75,7 +75,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/serialize-complex.vcproj b/build/win32/vs9/serialize-complex.vcproj index 2f81ce7..76c60d6 100644 --- a/build/win32/vs9/serialize-complex.vcproj +++ b/build/win32/vs9/serialize-complex.vcproj @@ -22,7 +22,7 @@ @@ -78,7 +78,7 @@ @@ -111,7 +111,7 @@ @@ -78,7 +78,7 @@ @@ -112,7 +112,7 @@ @@ -78,7 +78,7 @@ @@ -111,7 +111,7 @@ 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 diff --git a/configure b/configure index a2a79b9..9028ca7 100755 --- 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 . # @@ -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 CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory + 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"} # 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 &5 + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &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: + +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: . + +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, µ) != 3) { + if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, µ) != 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 &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 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 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/nec; then 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 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 @@ -9637,21 +10024,33 @@ 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) @@ -9690,16 +10089,17 @@ 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 $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 @@ -9708,18 +10108,18 @@ fi # 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. @@ -9747,24 +10147,24 @@ fi 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 @@ -9806,33 +10206,33 @@ fi ;; 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 @@ -9840,25 +10240,25 @@ fi ;; 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.so # instead of lib.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 @@ -10985,11 +11477,15 @@ fi # 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/nec; then 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 @@ -11324,12 +11845,12 @@ fi { $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 : @@ -11403,10 +11924,10 @@ 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 - lt_cv_dlopen="dyld" + lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -11414,10 +11935,18 @@ fi ;; + 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; } @@ -11456,11 +11985,11 @@ fi { $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 @@ -11598,21 +12127,21 @@ 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 @@ -11719,14 +12248,14 @@ fi { $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 @@ -12446,16 +13109,78 @@ fi - # 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; @@ -12707,6 +13427,14 @@ fi 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='#' @@ -12749,6 +13477,233 @@ fi +# 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' @@ -15971,13 +16945,13 @@ do "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 . # 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 "" diff --git a/configure.ac b/configure.ac index d6b57aa..86df9d9 100644 --- a/configure.ac +++ b/configure.ac @@ -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 "" diff --git a/doc/Makefile.in b/doc/Makefile.in index ee6e789..d842b36 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -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,23 +14,61 @@ @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 diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am index b5c6695..9650ce0 100644 --- a/doc/reference/Makefile.am +++ b/doc/reference/Makefile.am @@ -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) diff --git a/doc/reference/Makefile.in b/doc/reference/Makefile.in index 9471f5f..8d6992e 100644 --- a/doc/reference/Makefile.in +++ b/doc/reference/Makefile.in @@ -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,34 +14,67 @@ @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=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + 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: diff --git a/doc/reference/html/JsonBuilder.html b/doc/reference/html/JsonBuilder.html index 406e48d..2833829 100644 --- a/doc/reference/html/JsonBuilder.html +++ b/doc/reference/html/JsonBuilder.html @@ -2,32 +2,28 @@ -JsonBuilder +JsonBuilder: JSON-GLib Reference Manual - - + + - - - - - - - - - - + + + + + + +
@@ -35,521 +31,696 @@

JsonBuilder

JsonBuilder — Generates JSON trees

- +
-
-

Synopsis

-
struct              JsonBuilder;
-struct              JsonBuilderClass;
-JsonBuilder *       json_builder_new                    (void);
-JsonNode *          json_builder_get_root               (JsonBuilder *builder);
-void                json_builder_reset                  (JsonBuilder *builder);
-
-JsonBuilder *       json_builder_begin_array            (JsonBuilder *builder);
-JsonBuilder *       json_builder_end_array              (JsonBuilder *builder);
-JsonBuilder *       json_builder_begin_object           (JsonBuilder *builder);
-JsonBuilder *       json_builder_set_member_name        (JsonBuilder *builder,
-                                                         const gchar *member_name);
-JsonBuilder *       json_builder_end_object             (JsonBuilder *builder);
-
-JsonBuilder *       json_builder_add_value              (JsonBuilder *builder,
-                                                         JsonNode *node);
-JsonBuilder *       json_builder_add_int_value          (JsonBuilder *builder,
-                                                         gint64 value);
-JsonBuilder *       json_builder_add_double_value       (JsonBuilder *builder,
-                                                         gdouble value);
-JsonBuilder *       json_builder_add_boolean_value      (JsonBuilder *builder,
-                                                         gboolean value);
-JsonBuilder *       json_builder_add_string_value       (JsonBuilder *builder,
-                                                         const gchar *value);
-JsonBuilder *       json_builder_add_null_value         (JsonBuilder *builder);
-
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonBuilder * + +json_builder_new () +
+JsonBuilder * + +json_builder_new_immutable () +
+JsonNode * + +json_builder_get_root () +
+void + +json_builder_reset () +
+JsonBuilder * + +json_builder_begin_array () +
+JsonBuilder * + +json_builder_end_array () +
+JsonBuilder * + +json_builder_begin_object () +
+JsonBuilder * + +json_builder_set_member_name () +
+JsonBuilder * + +json_builder_end_object () +
+JsonBuilder * + +json_builder_add_value () +
+JsonBuilder * + +json_builder_add_int_value () +
+JsonBuilder * + +json_builder_add_double_value () +
+JsonBuilder * + +json_builder_add_boolean_value () +
+JsonBuilder * + +json_builder_add_string_value () +
+JsonBuilder * + +json_builder_add_null_value () +
+
+
+

Properties

+
+++++ + + + + + +
gbooleanimmutableRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structJsonBuilder
structJsonBuilderClass

Object Hierarchy

-
-  GObject
-   +----JsonBuilder
+
    GObject
+    ╰── JsonBuilder
 

Description

-

-JsonBuilder provides an object for generating a JSON tree. -You can generate only one tree with one JsonBuilder instance. -

-

-The root of the JSON tree can be either a JsonObject or a JsonArray. +

JsonBuilder provides an object for generating a JSON tree. +You can generate only one tree with one JsonBuilder instance.

+

The root of the JSON tree can be either a JsonObject or a JsonArray. Thus the first call must necessarily be either -json_builder_begin_object() or json_builder_begin_array(). -

-

-For convenience to language bindings, JsonBuilder returns itself from -most of functions, making it easy to chain function calls. -

+json_builder_begin_object() or json_builder_begin_array().

+

For convenience to language bindings, JsonBuilder returns itself from +most of functions, making it easy to chain function calls.

-

Details

+

Functions

-

struct JsonBuilder

-
struct JsonBuilder;
-

-The JsonBuilder structure contains only -private data and shouls be accessed using the provided API -

-

Since 0.12

+

json_builder_new ()

+
JsonBuilder *
+json_builder_new (void);
+

Creates a new JsonBuilder. You can use this object to generate a +JSON tree and obtain the root JsonNode.

+
+

Returns

+

the newly created JsonBuilder instance

+

-

struct JsonBuilderClass

-
struct JsonBuilderClass {
-};
-
-

-The JsonBuilder structure contains only -private data -

-

Since 0.12

+

json_builder_new_immutable ()

+
JsonBuilder *
+json_builder_new_immutable (void);
+

Creates a new JsonBuilder instance with its “immutable” property +set to TRUE to create immutable output trees.

+
+

Returns

+

a new JsonBuilder.

+

[transfer full]

+
+

Since: 1.2


-

json_builder_new ()

-
JsonBuilder *       json_builder_new                    (void);
-

-Creates a new JsonBuilder. You can use this object to generate a -JSON tree and obtain the root JsonNodes. -

-
+

json_builder_get_root ()

+
JsonNode *
+json_builder_get_root (JsonBuilder *builder);
+

Returns the root of the current constructed tree, if the build is complete +(ie: all opened objects, object members and arrays are being closed).

+
+

Parameters

+
--+++ - - + + +

Returns :

the newly created JsonBuilder instance

builder

a JsonBuilder

 
+
+

Returns

+

the JsonNode, or NULL if the build is not complete. +Free the returned value with json_node_unref().

+

[transfer full]

+
+

-

json_builder_get_root ()

-
JsonNode *          json_builder_get_root               (JsonBuilder *builder);
-

-Returns the root of the current constructed tree, if the build is complete -(ie: all opened objects, object members and arrays are being closed). -

-
+

json_builder_reset ()

+
void
+json_builder_reset (JsonBuilder *builder);
+

Resets the state of the builder + back to its initial state.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

builder :

a JsonBuilder -

Returns :

the JsonNode, or NULL if the build is not complete. -Free the returned value with json_node_free(). [transfer full] -

builder

a JsonBuilder

 
+

-

json_builder_reset ()

-
void                json_builder_reset                  (JsonBuilder *builder);
-

-Resets the state of the builder back to its initial state. -

-
+

json_builder_begin_array ()

+
JsonBuilder *
+json_builder_begin_array (JsonBuilder *builder);
+

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.

+
+

Parameters

+
--+++ - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+

-

json_builder_begin_array ()

-
JsonBuilder *       json_builder_begin_array            (JsonBuilder *builder);
-

-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. -

-
+

json_builder_end_array ()

+
JsonBuilder *
+json_builder_end_array (JsonBuilder *builder);
+

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().

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

builder :

a JsonBuilder -

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

builder

a JsonBuilder

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_end_array ()

-
JsonBuilder *       json_builder_end_array              (JsonBuilder *builder);
-

-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(). -

-
+

json_builder_begin_object ()

+
JsonBuilder *
+json_builder_begin_object (JsonBuilder *builder);
+

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.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

builder :

a JsonBuilder -

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

builder

a JsonBuilder

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_begin_object ()

-
JsonBuilder *       json_builder_begin_object           (JsonBuilder *builder);
-

-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. -

-
+

json_builder_set_member_name ()

+
JsonBuilder *
+json_builder_set_member_name (JsonBuilder *builder,
+                              const gchar *member_name);
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

member_name

the name of the member

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_set_member_name ()

-
JsonBuilder *       json_builder_set_member_name        (JsonBuilder *builder,
-                                                         const gchar *member_name);
-

-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. -

-
+

json_builder_end_object ()

+
JsonBuilder *
+json_builder_end_object (JsonBuilder *builder);
+

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().

+
+

Parameters

+
--+++ - - - - - - - - - - - - - - + + + + +

builder :

a JsonBuilder -

member_name :

the name of the member

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

builder

a JsonBuilder

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_end_object ()

-
JsonBuilder *       json_builder_end_object             (JsonBuilder *builder);
-

-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(). -

-
+

json_builder_add_value ()

+
JsonBuilder *
+json_builder_add_value (JsonBuilder *builder,
+                        JsonNode *node);
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

node

the value of the member or element.

[transfer full]
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_add_value ()

-
JsonBuilder *       json_builder_add_value              (JsonBuilder *builder,
-                                                         JsonNode *node);
-

-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. -

-
+

json_builder_add_int_value ()

+
JsonBuilder *
+json_builder_add_int_value (JsonBuilder *builder,
+                            gint64 value);
+

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()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 

node :

the value of the member or element

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

value

the value of the member or element

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_add_int_value ()

-
JsonBuilder *       json_builder_add_int_value          (JsonBuilder *builder,
-                                                         gint64 value);
-

-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() -

-
+

json_builder_add_double_value ()

+
JsonBuilder *
+json_builder_add_double_value (JsonBuilder *builder,
+                               gdouble value);
+

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()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 

value :

the value of the member or element

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

value

the value of the member or element

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_add_double_value ()

-
JsonBuilder *       json_builder_add_double_value       (JsonBuilder *builder,
-                                                         gdouble value);
-

-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() -

-
+

json_builder_add_boolean_value ()

+
JsonBuilder *
+json_builder_add_boolean_value (JsonBuilder *builder,
+                                gboolean value);
+

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()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

builder :

a JsonBuilder -

builder

a JsonBuilder

 

value :

the value of the member or element

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

value

the value of the member or element

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_add_boolean_value ()

-
JsonBuilder *       json_builder_add_boolean_value      (JsonBuilder *builder,
-                                                         gboolean value);
-

-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() -

-
+

json_builder_add_string_value ()

+
JsonBuilder *
+json_builder_add_string_value (JsonBuilder *builder,
+                               const gchar *value);
+

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()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

builder :

a JsonBuilder -

value :

the value of the member or element

builder

a JsonBuilder

 

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

value

the value of the member or element

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+
-

json_builder_add_string_value ()

-
JsonBuilder *       json_builder_add_string_value       (JsonBuilder *builder,
-                                                         const gchar *value);
-

-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() -

-
+

json_builder_add_null_value ()

+
JsonBuilder *
+json_builder_add_null_value (JsonBuilder *builder);
+

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()

+
+

Parameters

+
--+++ - - - - - - - - - - - - - - + + + + +

builder :

a JsonBuilder -

value :

the value of the member or element

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -

builder

a JsonBuilder

 
+
+

Returns

+

the JsonBuilder, or NULL if the call was inconsistent.

+

[transfer none]

+
+ + +
+

Types and Values

+
+

struct JsonBuilder

+
struct JsonBuilder;
+

The JsonBuilder structure contains only private data and should be +accessed using the provided API

+

Since: 0.12

+

-

json_builder_add_null_value ()

-
JsonBuilder *       json_builder_add_null_value         (JsonBuilder *builder);
-

-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() -

-
---- - - - - - - - - - - -

builder :

a JsonBuilder -

Returns :

the JsonBuilder, or NULL if the call was inconsistent. [transfer none] -
+

struct JsonBuilderClass

+
struct JsonBuilderClass {
+};
+
+

The JsonBuilderClass structure contains only private data

+

Since: 0.12

+
+
+
+

Property Details

+
+

The “immutable” property

+
  “immutable”                gboolean
+

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.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 1.2

See Also

-JsonGenerator +

JsonGenerator

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/JsonGenerator.html b/doc/reference/html/JsonGenerator.html index bda4f03..ebf53ea 100644 --- a/doc/reference/html/JsonGenerator.html +++ b/doc/reference/html/JsonGenerator.html @@ -2,34 +2,28 @@ -JsonGenerator +JsonGenerator: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -37,492 +31,622 @@

JsonGenerator

JsonGenerator — Generates JSON data streams

- +
-
-

Synopsis

-
struct              JsonGenerator;
-struct              JsonGeneratorClass;
-JsonGenerator *     json_generator_new                  (void);
-void                json_generator_set_root             (JsonGenerator *generator,
-                                                         JsonNode *node);
-JsonNode *          json_generator_get_root             (JsonGenerator *generator);
-void                json_generator_set_pretty           (JsonGenerator *generator,
-                                                         gboolean is_pretty);
-gboolean            json_generator_get_pretty           (JsonGenerator *generator);
-void                json_generator_set_indent           (JsonGenerator *generator,
-                                                         guint indent_level);
-guint               json_generator_get_indent           (JsonGenerator *generator);
-void                json_generator_set_indent_char      (JsonGenerator *generator,
-                                                         gunichar indent_char);
-gunichar            json_generator_get_indent_char      (JsonGenerator *generator);
-
-gboolean            json_generator_to_file              (JsonGenerator *generator,
-                                                         const gchar *filename,
-                                                         GError **error);
-gchar *             json_generator_to_data              (JsonGenerator *generator,
-                                                         gsize *length);
-gboolean            json_generator_to_stream            (JsonGenerator *generator,
-                                                         GOutputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GError **error);
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----JsonGenerator
-
-
-
-

Properties

-
-  "indent"                   guint                 : Read / Write
-  "indent-char"              guint                 : Read / Write
-  "pretty"                   gboolean              : Read / Write
-  "root"                     JsonNode*             : Read / Write
-
-
-
-

Description

-

-JsonGenerator provides an object for generating a JSON data stream and -put it into a buffer or a file. -

-
-

Details

-
-

struct JsonGenerator

-
struct JsonGenerator;
-

-JSON data streams generator. The contents of the JsonGenerator structure -are private and should only be accessed via the provided API. -

-
-
-
-

struct JsonGeneratorClass

-
struct JsonGeneratorClass {
-};
-
-

-JsonGenerator class -

-
-
-
-

json_generator_new ()

-
JsonGenerator *     json_generator_new                  (void);
-

-Creates a new JsonGenerator. You can use this object to generate a -JSON data stream starting from a data object model composed by -JsonNodes. -

-
---- - - - - -

Returns :

the newly created JsonGenerator instance
-
-
-
-

json_generator_set_root ()

-
void                json_generator_set_root             (JsonGenerator *generator,
-                                                         JsonNode *node);
-

-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.
-

-

-
+

Functions

+
--++ - - + - - + + + + + + + + + + + + + + + + + + + + + - -

generator :

a JsonGenerator + +JsonGenerator * + +json_generator_new ()

node :

a JsonNode + +void + +json_generator_set_root () +
+JsonNode * + +json_generator_get_root () +
+void + +json_generator_set_pretty () +
+gboolean + +json_generator_get_pretty () +
+void + +json_generator_set_indent () +
+guint + +json_generator_get_indent ()
-
-
-
-

json_generator_get_root ()

-
JsonNode *          json_generator_get_root             (JsonGenerator *generator);
-

-Retrieves a pointer to the root JsonNode set using -json_generator_set_root(). -

-
---- - - - + - - + + + + + + + + + + + + +

generator :

a JsonGenerator + +void + +json_generator_set_indent_char ()

Returns :

a JsonNode, or NULL. The returned node -is owned by the JsonGenerator and it should not be freed. [transfer none] + +gunichar + +json_generator_get_indent_char () +
+gboolean + +json_generator_to_file () +
+gchar * + +json_generator_to_data () +
+gboolean + +json_generator_to_stream ()
-

Since 0.14

-
-
-

json_generator_set_pretty ()

-
void                json_generator_set_pretty           (JsonGenerator *generator,
-                                                         gboolean is_pretty);
-

-Sets whether the generated JSON should be pretty printed, using the -indentation character specified in the "indent-char" -property and the spacing specified in "indent" property. -

-
+
+

Properties

+
--+++ - - + + + + + + + + + + + + + - - + + +

generator :

a JsonGenerator -guintindentRead / Write
guintindent-charRead / Write
gbooleanprettyRead / Write

is_pretty :

whether the generated string should be pretty printed +JsonNode *rootRead / Write
-

Since 0.14

-
-
-

json_generator_get_pretty ()

-
gboolean            json_generator_get_pretty           (JsonGenerator *generator);
-

-Retrieves the value set using json_generator_set_pretty(). -

-
+
+

Types and Values

+
--++ - - + + - - + +

generator :

a JsonGenerator -structJsonGenerator

Returns :

-TRUE if the generated JSON should be pretty-printed, and -FALSE otherwisestructJsonGeneratorClass
-

Since 0.14

+
+
+

Object Hierarchy

+
    GObject
+    ╰── JsonGenerator
+
+
+
+

Description

+

JsonGenerator provides an object for generating a JSON data stream and +put it into a buffer or a file.

+
+
+

Functions

+
+

json_generator_new ()

+
JsonGenerator *
+json_generator_new (void);
+

Creates a new JsonGenerator. You can use this object to generate a +JSON data stream starting from a data object model composed by +JsonNodes.

+
+

Returns

+

the newly created JsonGenerator instance

+

-

json_generator_set_indent ()

-
void                json_generator_set_indent           (JsonGenerator *generator,
-                                                         guint indent_level);
-

-Sets the number of repetitions for each indentation level. -

-
+

json_generator_set_root ()

+
void
+json_generator_set_root (JsonGenerator *generator,
+                         JsonNode *node);
+

Sets node + as the root of the JSON data stream to be serialized by +the JsonGenerator.

+

The passed node + is copied by the generator object, so it can be +safely freed after calling this function.

+
+

Parameters

+
--+++ - - + + + - - + + +

generator :

a JsonGenerator -

generator

a JsonGenerator

 

indent_level :

the number of repetitions of the indentation character -that should be applied when pretty printing

node

a JsonNode

 
-

Since 0.14

+
+
+
+
+

json_generator_get_root ()

+
JsonNode *
+json_generator_get_root (JsonGenerator *generator);
+

Retrieves a pointer to the root JsonNode set using +json_generator_set_root().

+
+

Parameters

+
+++++ + + + + + +

generator

a JsonGenerator

 
+
+
+

Returns

+

a JsonNode, or NULL. The returned node +is owned by the JsonGenerator and it should not be freed.

+

[transfer none]

+
+

Since: 0.14


-

json_generator_get_indent ()

-
guint               json_generator_get_indent           (JsonGenerator *generator);
-

-Retrieves the value set using json_generator_set_indent(). -

-
+

json_generator_set_pretty ()

+
void
+json_generator_set_pretty (JsonGenerator *generator,
+                           gboolean is_pretty);
+

Sets whether the generated JSON should be pretty printed, using the +indentation character specified in the “indent-char” +property and the spacing specified in “indent” property.

+
+

Parameters

+
--+++ - - + + + - - + + +

generator :

a JsonGenerator -

generator

a JsonGenerator

 

Returns :

the number of repetitions per indentation level

is_pretty

whether the generated string should be pretty printed

 
-

Since 0.14

+
+

Since: 0.14

+
+
+
+

json_generator_get_pretty ()

+
gboolean
+json_generator_get_pretty (JsonGenerator *generator);
+

Retrieves the value set using json_generator_set_pretty().

+
+

Parameters

+
+++++ + + + + + +

generator

a JsonGenerator

 
+
+
+

Returns

+

TRUE if the generated JSON should be pretty-printed, and +FALSE otherwise

+
+

Since: 0.14


-

json_generator_set_indent_char ()

-
void                json_generator_set_indent_char      (JsonGenerator *generator,
-                                                         gunichar indent_char);
-

-Sets the character to be used when indenting -

-
+

json_generator_set_indent ()

+
void
+json_generator_set_indent (JsonGenerator *generator,
+                           guint indent_level);
+

Sets the number of repetitions for each indentation level.

+
+

Parameters

+
--+++ - - + + + - - + + +

generator :

a JsonGenerator -

generator

a JsonGenerator

 

indent_char :

a Unicode character to be used when indenting

indent_level

the number of repetitions of the indentation character +that should be applied when pretty printing

 
-

Since 0.14

+
+

Since: 0.14

+
+
+
+

json_generator_get_indent ()

+
guint
+json_generator_get_indent (JsonGenerator *generator);
+

Retrieves the value set using json_generator_set_indent().

+
+

Parameters

+
+++++ + + + + + +

generator

a JsonGenerator

 
+
+
+

Returns

+

the number of repetitions per indentation level

+
+

Since: 0.14


-

json_generator_get_indent_char ()

-
gunichar            json_generator_get_indent_char      (JsonGenerator *generator);
-

-Retrieves the value set using json_generator_set_indent_char(). -

-
+

json_generator_set_indent_char ()

+
void
+json_generator_set_indent_char (JsonGenerator *generator,
+                                gunichar indent_char);
+

Sets the character to be used when indenting

+
+

Parameters

+
--+++ - - + + + - - + + +

generator :

a JsonGenerator -

generator

a JsonGenerator

 

Returns :

the character to be used when indenting

indent_char

a Unicode character to be used when indenting

 
-

Since 0.14

+
+

Since: 0.14

+ +
+
+

json_generator_get_indent_char ()

+
gunichar
+json_generator_get_indent_char (JsonGenerator *generator);
+

Retrieves the value set using json_generator_set_indent_char().

+
+

Parameters

+
+++++ + + + + + +

generator

a JsonGenerator

 
+
+
+

Returns

+

the character to be used when indenting

+
+

Since: 0.14


-

json_generator_to_file ()

-
gboolean            json_generator_to_file              (JsonGenerator *generator,
-                                                         const gchar *filename,
-                                                         GError **error);
-

-Creates a JSON data stream and puts it inside filename, overwriting the -current file contents. This operation is atomic. -

-
+

json_generator_to_file ()

+
gboolean
+json_generator_to_file (JsonGenerator *generator,
+                        const gchar *filename,
+                        GError **error);
+

Creates a JSON data stream and puts it inside filename +, overwriting the +current file contents. This operation is atomic.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + +

generator :

a JsonGenerator -

filename :

path to the target file

generator

a JsonGenerator

 

error :

return location for a GError, or NULL -

filename

path to the target file

 

Returns :

-TRUE if saving was successful.

error

return location for a GError, or NULL

 
+
+

Returns

+

TRUE if saving was successful.

+
+
-

json_generator_to_data ()

-
gchar *             json_generator_to_data              (JsonGenerator *generator,
-                                                         gsize *length);
-

-Generates a JSON data stream from generator and returns it as a -buffer. -

-
+

json_generator_to_data ()

+
gchar *
+json_generator_to_data (JsonGenerator *generator,
+                        gsize *length);
+

Generates a JSON data stream from generator + and returns it as a +buffer.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

generator :

a JsonGenerator -

generator

a JsonGenerator

 

length :

return location for the length of the returned -buffer, or NULL. [out] -

Returns :

a newly allocated buffer holding a JSON data stream. -Use g_free() to free the allocated resources.

length

return location for the length of the returned +buffer, or NULL.

[out]
+
+

Returns

+

a newly allocated buffer holding a JSON data stream. +Use g_free() to free the allocated resources.

+
+
-

json_generator_to_stream ()

-
gboolean            json_generator_to_stream            (JsonGenerator *generator,
-                                                         GOutputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GError **error);
-

-Outputs JSON data and streams it (synchronously) to stream. -

-
+

json_generator_to_stream ()

+
gboolean
+json_generator_to_stream (JsonGenerator *generator,
+                          GOutputStream *stream,
+                          GCancellable *cancellable,
+                          GError **error);
+

Outputs JSON data and streams it (synchronously) to stream +.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

generator :

a JsonGenerator -

stream :

a GOutputStream -

generator

a JsonGenerator

 

cancellable :

a GCancellable, or NULL. [allow-none] -

stream

a GOutputStream

 

error :

return location for a GError, or NULL -

cancellable

a GCancellable, or NULL.

[allow-none]

Returns :

-TRUE if the write operation was successful, and FALSE -on failure. In case of error, the GError will be filled accordingly

error

return location for a GError, or NULL

 
-

Since 0.12

+
+
+

Returns

+

TRUE if the write operation was successful, and FALSE +on failure. In case of error, the GError will be filled accordingly

+
+

Since: 0.12

+ + +
+

Types and Values

+
+

struct JsonGenerator

+
struct JsonGenerator;
+

JSON data streams generator. The contents of the JsonGenerator structure +are private and should only be accessed via the provided API.

+
+
+
+

struct JsonGeneratorClass

+
struct JsonGeneratorClass {
+};
+
+

JsonGenerator class

Property Details

-

The "indent" property

-
  "indent"                   guint                 : Read / Write
-

-Number of spaces to be used to indent when pretty printing. -

+

The “indent” property

+
  “indent”                   guint
+

Number of spaces to be used to indent when pretty printing.

+

Flags: Read / Write

Default value: 2


-

The "indent-char" property

-
  "indent-char"              guint                 : Read / Write
-

-The character that should be used when indenting in pretty print. -

+

The “indent-char” property

+
  “indent-char”              guint
+

The character that should be used when indenting in pretty print.

+

Flags: Read / Write

Default value: ' '

-

Since 0.6

+

Since: 0.6


-

The "pretty" property

-
  "pretty"                   gboolean              : Read / Write
-

-Whether the output should be "pretty-printed", with indentation and +

The “pretty” property

+
  “pretty”                   gboolean
+

Whether the output should be "pretty-printed", with indentation and newlines. The indentation level can be controlled by using the -JsonGenerator:indent property -

+JsonGenerator:indent property

+

Flags: Read / Write

Default value: FALSE


-

The "root" property

-
  "root"                     JsonNode*             : Read / Write
-

-The root JsonNode to be used when constructing a JSON data -stream. -

-

Since 0.4

+

The “root” property

+
  “root”                     JsonNode *
+

The root JsonNode to be used when constructing a JSON data +stream.

+

Flags: Read / Write

+

Since: 0.4

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/JsonParser.html b/doc/reference/html/JsonParser.html index f908106..a268e18 100644 --- a/doc/reference/html/JsonParser.html +++ b/doc/reference/html/JsonParser.html @@ -2,34 +2,29 @@ -JsonParser +JsonParser: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -37,571 +32,587 @@

JsonParser

JsonParser — Parse JSON data streams

- +
-
-

Synopsis

-
enum                JsonParserError;
-
-struct              JsonParser;
-struct              JsonParserClass;
-JsonParser *        json_parser_new                     (void);
-gboolean            json_parser_load_from_file          (JsonParser *parser,
-                                                         const gchar *filename,
-                                                         GError **error);
-gboolean            json_parser_load_from_data          (JsonParser *parser,
-                                                         const gchar *data,
-                                                         gssize length,
-                                                         GError **error);
-gboolean            json_parser_load_from_stream        (JsonParser *parser,
-                                                         GInputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GError **error);
-void                json_parser_load_from_stream_async  (JsonParser *parser,
-                                                         GInputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GAsyncReadyCallback callback,
-                                                         gpointer user_data);
-gboolean            json_parser_load_from_stream_finish (JsonParser *parser,
-                                                         GAsyncResult *result,
-                                                         GError **error);
-
-JsonNode *          json_parser_get_root                (JsonParser *parser);
-
-guint               json_parser_get_current_line        (JsonParser *parser);
-guint               json_parser_get_current_pos         (JsonParser *parser);
-gboolean            json_parser_has_assignment          (JsonParser *parser,
-                                                         gchar **variable_name);
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----JsonParser
-
-
-

Signals

-
-  "array-element"                                  : Run Last
-  "array-end"                                      : Run Last
-  "array-start"                                    : Run Last
-  "error"                                          : Run Last
-  "object-end"                                     : Run Last
-  "object-member"                                  : Run Last
-  "object-start"                                   : Run Last
-  "parse-end"                                      : Run Last
-  "parse-start"                                    : Run Last
-
-
-
-

Description

-

-JsonParser provides an object for parsing a JSON data stream, either -inside a file or inside a static buffer. -

-
-
-

Details

-
-

enum JsonParserError

-
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;
-
-

-Error enumeration for JsonParser -

-

-This enumeration can be extended at later date -

-
+

Functions

+
--++ - - + + + + + + + + + - - + - - + - - + - - + - - + - - + + + + + + + + +

JSON_PARSER_ERROR_PARSE

parse error + +JsonParser * + +json_parser_new () +
+JsonParser * + +json_parser_new_immutable () +
+gboolean + +json_parser_load_from_file ()

JSON_PARSER_ERROR_TRAILING_COMMA

unexpected trailing comma + +gboolean + +json_parser_load_from_data ()

JSON_PARSER_ERROR_MISSING_COMMA

expected comma + +gboolean + +json_parser_load_from_stream ()

JSON_PARSER_ERROR_MISSING_COLON

expected colon + +void + +json_parser_load_from_stream_async ()

JSON_PARSER_ERROR_INVALID_BAREWORD

invalid bareword + +gboolean + +json_parser_load_from_stream_finish ()

JSON_PARSER_ERROR_EMPTY_MEMBER_NAME

empty member name (Since: 0.16) + +JsonNode * + +json_parser_get_root ()

JSON_PARSER_ERROR_UNKNOWN

unknown error + +guint + +json_parser_get_current_line () +
+guint + +json_parser_get_current_pos () +
+gboolean + +json_parser_has_assignment ()
-
-
-

struct JsonParser

-
struct JsonParser;
-

-JSON data streams parser. The contents of the JsonParser structure are -private and should only be accessed via the provided API. -

+
+

Properties

+
+++++ + + + + + +
gbooleanimmutableRead / Write / Construct Only
-
-
-

struct JsonParserClass

-
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);
-};
-
-

-JsonParser class. -

-
+
+

Signals

+
--+++ - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + +

parse_start ()

class handler for the JsonParser::parse-start signalvoidarray-elementRun Last

object_start ()

class handler for the JsonParser::object-start signalvoidarray-endRun Last

object_member ()

class handler for the JsonParser::object-member signalvoidarray-startRun Last

object_end ()

class handler for the JsonParser::object-end signalvoiderrorRun Last

array_start ()

class handler for the JsonParser::array-start signalvoidobject-endRun Last

array_element ()

class handler for the JsonParser::array-element signalvoidobject-memberRun Last

array_end ()

class handler for the JsonParser::array-end signalvoidobject-startRun Last

parse_end ()

class handler for the JsonParser::parse-end signalvoidparse-endRun Last

error ()

class handler for the JsonParser::error signalvoidparse-startRun Last
-
-
-

json_parser_new ()

-
JsonParser *        json_parser_new                     (void);
-

-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. -

-
+
+

Types and Values

+
--++ - - - - + + + + + + + + + + + + + +

Returns :

the newly created JsonParser. Use g_object_unref() -to release all the memory it allocates.
enumJsonParserError
structJsonParser
structJsonParserClass
+
+

Object Hierarchy

+
    GObject
+    ╰── JsonParser
+
+
+
+

Description

+

JsonParser provides an object for parsing a JSON data stream, either +inside a file or inside a static buffer.

+
+
+

Functions

+
+

json_parser_new ()

+
JsonParser *
+json_parser_new (void);
+

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.

+
+

Returns

+

the newly created JsonParser. Use g_object_unref() +to release all the memory it allocates.

+
+

-

json_parser_load_from_file ()

-
gboolean            json_parser_load_from_file          (JsonParser *parser,
-                                                         const gchar *filename,
-                                                         GError **error);
-

-Loads a JSON stream from the content of filename and parses it. See -json_parser_load_from_data(). -

-
+

json_parser_new_immutable ()

+
JsonParser *
+json_parser_new_immutable (void);
+

Creates a new JsonParser instance with its “immutable” property +set to TRUE to create immutable output trees.

+
+

Returns

+

a new JsonParser.

+

[transfer full]

+
+

Since: 1.2

+ +
+
+

json_parser_load_from_file ()

+
gboolean
+json_parser_load_from_file (JsonParser *parser,
+                            const gchar *filename,
+                            GError **error);
+

Loads a JSON stream from the content of filename + and parses it. See +json_parser_load_from_data().

+
+

Parameters

+
--+++ - - + + + - - + + + - - - - - - + + +

parser :

a JsonParser -

parser

a JsonParser

 

filename :

the path for the file to parse

filename

the path for the file to parse

 

error :

return location for a GError, or NULL -

Returns :

-TRUE if the file was successfully loaded and parsed. -In case of error, error is set accordingly and FALSE is returned

error

return location for a GError, or NULL

 
+
+

Returns

+

TRUE if the file was successfully loaded and parsed. +In case of error, error +is set accordingly and FALSE is returned

+
+

-

json_parser_load_from_data ()

-
gboolean            json_parser_load_from_data          (JsonParser *parser,
-                                                         const gchar *data,
-                                                         gssize length,
-                                                         GError **error);
-

-Loads a JSON stream from a buffer and parses it. You can call this function +

json_parser_load_from_data ()

+
gboolean
+json_parser_load_from_data (JsonParser *parser,
+                            const gchar *data,
+                            gssize length,
+                            GError **error);
+

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. -

-
+parser will be destroyed each time.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

parser :

a JsonParser -

data :

the buffer to parse

parser

a JsonParser

 

length :

the length of the buffer, or -1

data

the buffer to parse

 

error :

return location for a GError, or NULL -

length

the length of the buffer, or -1

 

Returns :

-TRUE if the buffer was succesfully parser. In case -of error, error is set accordingly and FALSE is returned

error

return location for a GError, or NULL

 
+
+

Returns

+

TRUE if the buffer was succesfully parser. In case +of error, error +is set accordingly and FALSE is returned

+
+

-

json_parser_load_from_stream ()

-
gboolean            json_parser_load_from_stream        (JsonParser *parser,
-                                                         GInputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GError **error);
-

-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 +

json_parser_load_from_stream ()

+
gboolean
+json_parser_load_from_stream (JsonParser *parser,
+                              GInputStream *stream,
+                              GCancellable *cancellable,
+                              GError **error);
+

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. -

-
+on the passed error +.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

parser :

a JsonParser -

stream :

an open GInputStream -

parser

a JsonParser

 

cancellable :

a GCancellable, or NULL. [allow-none] -

stream

an open GInputStream

 

error :

the return location for a GError, or NULL -

cancellable

a GCancellable, or NULL.

[allow-none]

Returns :

-TRUE if the data stream was successfully read and -parsed, and FALSE otherwise

error

the return location for a GError, or NULL

 
-

Since 0.12

+
+
+

Returns

+

TRUE if the data stream was successfully read and +parsed, and FALSE otherwise

+
+

Since: 0.12


-

json_parser_load_from_stream_async ()

-
void                json_parser_load_from_stream_async  (JsonParser *parser,
-                                                         GInputStream *stream,
-                                                         GCancellable *cancellable,
-                                                         GAsyncReadyCallback callback,
-                                                         gpointer user_data);
-

-Asynchronously reads the contents of stream. -

-

-For more details, see json_parser_load_from_stream() which is the -synchronous version of this call. -

-

-When the operation is finished, callback will be called. You should -then call json_parser_load_from_stream_finish() to get the result -of the operation. -

-
+

json_parser_load_from_stream_async ()

+
void
+json_parser_load_from_stream_async (JsonParser *parser,
+                                    GInputStream *stream,
+                                    GCancellable *cancellable,
+                                    GAsyncReadyCallback callback,
+                                    gpointer user_data);
+

Asynchronously reads the contents of stream +.

+

For more details, see json_parser_load_from_stream() which is the +synchronous version of this call.

+

When the operation is finished, callback + will be called. You should +then call json_parser_load_from_stream_finish() to get the result +of the operation.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + + - - + + +

parser :

a JsonParser -

parser

a JsonParser

 

stream :

a GInputStream -

stream

a GInputStream

 

cancellable :

a GCancellable, or NULL. [allow-none] -

cancellable

a GCancellable, or NULL.

[allow-none]

callback :

a GAsyncReadyCallback to call when the request is satisfied

callback

a GAsyncReadyCallback to call when the request is satisfied

 

user_data :

the data to pass to callback -

user_data

the data to pass to callback +

 
-

Since 0.12

+
+

Since: 0.12


-

json_parser_load_from_stream_finish ()

-
gboolean            json_parser_load_from_stream_finish (JsonParser *parser,
-                                                         GAsyncResult *result,
-                                                         GError **error);
-

-Finishes an asynchronous stream loading started with -json_parser_load_from_stream_async(). -

-
+

json_parser_load_from_stream_finish ()

+
gboolean
+json_parser_load_from_stream_finish (JsonParser *parser,
+                                     GAsyncResult *result,
+                                     GError **error);
+

Finishes an asynchronous stream loading started with +json_parser_load_from_stream_async().

+
+

Parameters

+
--+++ - - + + + - - + + + - - - - - - + + +

parser :

a JsonParser -

parser

a JsonParser

 

result :

a GAsyncResult -

result

a GAsyncResult

 

error :

the return location for a GError or NULL -

Returns :

-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.

error

the return location for a GError or NULL

 
-

Since 0.12

+
+
+

Returns

+

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.

+
+

Since: 0.12


-

json_parser_get_root ()

-
JsonNode *          json_parser_get_root                (JsonParser *parser);
-

-Retrieves the top level node from the parsed JSON stream. -

-
+

json_parser_get_root ()

+
JsonNode *
+json_parser_get_root (JsonParser *parser);
+

Retrieves the top level node from the parsed JSON stream.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

parser :

a JsonParser -

Returns :

the root JsonNode . The returned -node is owned by the JsonParser and should never be modified -or freed. [transfer none] -

parser

a JsonParser

 
+
+

Returns

+

the root JsonNode . The returned +node is owned by the JsonParser and should never be modified +or freed.

+

[transfer none]

+
+
-

json_parser_get_current_line ()

-
guint               json_parser_get_current_line        (JsonParser *parser);
-

-Retrieves the line currently parsed, starting from 1. -

-

-This function has defined behaviour only while parsing; calling this +

json_parser_get_current_line ()

+
guint
+json_parser_get_current_line (JsonParser *parser);
+

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. -

-
+yield 0.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

parser :

a JsonParser -

Returns :

the currently parsed line, or 0.

parser

a JsonParser

 
+
+

Returns

+

the currently parsed line, or 0.

+
+
-

json_parser_get_current_pos ()

-
guint               json_parser_get_current_pos         (JsonParser *parser);
-

-Retrieves the current position inside the current line, starting -from 0. -

-

-This function has defined behaviour only while parsing; calling this +

json_parser_get_current_pos ()

+
guint
+json_parser_get_current_pos (JsonParser *parser);
+

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. -

-
+yield 0.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

parser :

a JsonParser -

Returns :

the position in the current line, or 0.

parser

a JsonParser

 
+
+

Returns

+

the position in the current line, or 0.

+
+
-

json_parser_has_assignment ()

-
gboolean            json_parser_has_assignment          (JsonParser *parser,
-                                                         gchar **variable_name);
-

-A JSON data stream might sometimes contain an assignment, like: -

-

-

+

json_parser_has_assignment ()

+
gboolean
+json_parser_has_assignment (JsonParser *parser,
+                            gchar **variable_name);
+

A JSON data stream might sometimes contain an assignment, like:

@@ -613,328 +624,563 @@ A JSON data stream might sometimes contain an assignment, like:
-

-

-

-even though it would technically constitute a violation of the RFC. -

-

-JsonParser will ignore the left hand identifier and parse the right +

+

even though it would technically constitute a violation of the RFC.

+

JsonParser will ignore the left hand identifier and parse the right hand value of the assignment. JsonParser will record, though, the existence of the assignment in the data stream and the variable name -used. -

-
+used.

+
+

Parameters

+
--+++ - - + + + + + + + + + +

parser :

a JsonParser +

parser

a JsonParser

 

variable_name

Return location for the variable +name, or NULL.

[out][allow-none][transfer none]
+
+
+

Returns

+

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.

+
+

Since: 0.4

+ + +
+

Types and Values

+
+

enum JsonParserError

+

Error enumeration for JsonParser

+

This enumeration can be extended at later date

+
+

Members

+
+++++ + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

JSON_PARSER_ERROR_PARSE

+

parse error

 

variable_name :

Return location for the variable -name, or NULL. [out][allow-none][transfer none] +

JSON_PARSER_ERROR_TRAILING_COMMA

+

unexpected trailing comma

 

Returns :

-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.

JSON_PARSER_ERROR_MISSING_COMMA

+

expected comma

+
 

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

+
 
+
+
+
+
+

struct JsonParser

+
struct JsonParser;
+

JSON data streams parser. The contents of the JsonParser structure are +private and should only be accessed via the provided API.

+
+
+
+

struct JsonParserClass

+
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);
+};
+
+

JsonParser class.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

parse_start ()

class handler for the JsonParser::parse-start signal

 

object_start ()

class handler for the JsonParser::object-start signal

 

object_member ()

class handler for the JsonParser::object-member signal

 

object_end ()

class handler for the JsonParser::object-end signal

 

array_start ()

class handler for the JsonParser::array-start signal

 

array_element ()

class handler for the JsonParser::array-element signal

 

array_end ()

class handler for the JsonParser::array-end signal

 

parse_end ()

class handler for the JsonParser::parse-end signal

 

error ()

class handler for the JsonParser::error signal

 
-

Since 0.4

+
+
+
+
+

Property Details

+
+

The “immutable” property

+
  “immutable”                gboolean
+

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.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 1.2

Signal Details

-

The "array-element" signal

-
void                user_function                      (JsonParser *parser,
-                                                        JsonArray  *array,
-                                                        gint        index_,
-                                                        gpointer    user_data)      : Run Last
-

-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. -

-
+

The “array-element” signal

+
void
+user_function (JsonParser *parser,
+               JsonArray  *array,
+               gint        index_,
+               gpointer    user_data)
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

array :

a JsonArray -

array

a JsonArray

 

index_ :

the index of the newly parsed element

index_

the index of the newly parsed element

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+

-

The "array-end" signal

-
void                user_function                      (JsonParser *parser,
-                                                        JsonArray  *array,
-                                                        gpointer    user_data)      : Run Last
-

-The ::array-end signal is emitted each time the JsonParser -has successfully parsed an entire JsonArray -

-
+

The “array-end” signal

+
void
+user_function (JsonParser *parser,
+               JsonArray  *array,
+               gpointer    user_data)
+

The ::array-end signal is emitted each time the JsonParser +has successfully parsed an entire JsonArray

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

array :

the parsed JsonArray -

array

the parsed JsonArray

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "array-start" signal

-
void                user_function                      (JsonParser *parser,
-                                                        gpointer    user_data)      : Run Last
-

-The ::array-start signal is emitted each time the JsonParser -starts parsing a JsonArray -

-
+

The “array-start” signal

+
void
+user_function (JsonParser *parser,
+               gpointer    user_data)
+

The ::array-start signal is emitted each time the JsonParser +starts parsing a JsonArray

+
+

Parameters

+
--+++ - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "error" signal

-
void                user_function                      (JsonParser *parser,
-                                                        gpointer    error,
-                                                        gpointer    user_data)      : Run Last
-

-The ::error signal is emitted each time a JsonParser encounters -an error in a JSON stream. -

-
+

The “error” signal

+
void
+user_function (JsonParser *parser,
+               gpointer    error,
+               gpointer    user_data)
+

The ::error signal is emitted each time a JsonParser encounters +an error in a JSON stream.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

parser :

the parser instance that received the signal

parser

the parser instance that received the signal

 

error :

a pointer to the GError -

error

a pointer to the GError

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "object-end" signal

-
void                user_function                      (JsonParser *parser,
-                                                        JsonObject *object,
-                                                        gpointer    user_data)      : Run Last
-

-The ::object-end signal is emitted each time the JsonParser -has successfully parsed an entire JsonObject. -

-
+

The “object-end” signal

+
void
+user_function (JsonParser *parser,
+               JsonObject *object,
+               gpointer    user_data)
+

The ::object-end signal is emitted each time the JsonParser +has successfully parsed an entire JsonObject.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

object :

the parsed JsonObject -

object

the parsed JsonObject

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "object-member" signal

-
void                user_function                      (JsonParser *parser,
-                                                        JsonObject *object,
-                                                        gchar      *member_name,
-                                                        gpointer    user_data)        : Run Last
-

-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. -

-
+

The “object-member” signal

+
void
+user_function (JsonParser *parser,
+               JsonObject *object,
+               gchar      *member_name,
+               gpointer    user_data)
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the newly parsed member

member_name

the name of the newly parsed member

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "object-start" signal

-
void                user_function                      (JsonParser *parser,
-                                                        gpointer    user_data)      : Run Last
-

-The ::object-start signal is emitted each time the JsonParser -starts parsing a JsonObject. -

-
+

The “object-start” signal

+
void
+user_function (JsonParser *parser,
+               gpointer    user_data)
+

The ::object-start signal is emitted each time the JsonParser +starts parsing a JsonObject.

+
+

Parameters

+
--+++ - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "parse-end" signal

-
void                user_function                      (JsonParser *parser,
-                                                        gpointer    user_data)      : Run Last
-

-The ::parse-end signal is emitted when the parser successfully -finished parsing a JSON data stream -

-
+

The “parse-end” signal

+
void
+user_function (JsonParser *parser,
+               gpointer    user_data)
+

The ::parse-end signal is emitted when the parser successfully +finished parsing a JSON data stream

+
+

Parameters

+
--+++ - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+
-

The "parse-start" signal

-
void                user_function                      (JsonParser *parser,
-                                                        gpointer    user_data)      : Run Last
-

-The ::parse-start signal is emitted when the parser began parsing -a JSON data stream. -

-
+

The “parse-start” signal

+
void
+user_function (JsonParser *parser,
+               gpointer    user_data)
+

The ::parse-start signal is emitted when the parser began parsing +a JSON data stream.

+
+

Parameters

+
--+++ - - + + + - - + + +

parser :

the JsonParser that received the signal

parser

the JsonParser that received the signal

 

user_data :

user data set when the signal handler was connected.

user_data

user data set when the signal handler was connected.

 
+

Flags: Run Last

+ +
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/JsonPath.html b/doc/reference/html/JsonPath.html index de1ca79..8ebd513 100644 --- a/doc/reference/html/JsonPath.html +++ b/doc/reference/html/JsonPath.html @@ -2,32 +2,27 @@ -JsonPath +JsonPath: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -35,62 +30,105 @@

JsonPath

JsonPath — JSONPath implementation

- +
-
-

Synopsis

-
                    JsonPath;
-                    JsonPathClass;
-JsonPath *          json_path_new                       (void);
-#define             JSON_PATH_ERROR
-enum                JsonPathError;
-gboolean            json_path_compile                   (JsonPath *path,
-                                                         const char *expression,
-                                                         GError **error);
-JsonNode *          json_path_match                     (JsonPath *path,
-                                                         JsonNode *root);
-
-JsonNode *          json_path_query                     (const char *expression,
-                                                         JsonNode *root,
-                                                         GError **error);
-
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+JsonPath * + +json_path_new () +
#defineJSON_PATH_ERROR
+gboolean + +json_path_compile () +
+JsonNode * + +json_path_match () +
+JsonNode * + +json_path_query () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
 JsonPath
 JsonPathClass
enumJsonPathError

Object Hierarchy

-
-  GObject
-   +----JsonPath
+
    GObject
+    ╰── JsonPath
 

Description

-

-JsonPath is a simple class implementing the JSONPath syntax for extracting +

JsonPath 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. -

-

-Once a JsonPath instance has been created, it has to compile a JSONPath -expression using json_path_compile() before being able to match it to a +ECMAScript origins of JSON.

+

Once a JsonPath instance has been created, it has to compile a JSONPath +expression using json_path_compile() before being able to match it to a JSON tree; the same JsonPath instance can be used to match multiple JSON trees. It it also possible to compile a new JSONPath expression using the same JsonPath instance; the previous expression will be discarded only if -the compilation of the new expression is successful. -

-

-The simple convenience function json_path_query() can be used for one-off -matching. -

-

-

-
-

Syntax of the JSONPath expressions

+the compilation of the new expression is successful.

+

The simple convenience function json_path_query() can be used for one-off +matching.

+
+

Syntax of the JSONPath expressions

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.:

+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.:

@@ -98,382 +136,375 @@ matching. - +
1
 2
 3
-4
/* dot notation */
+4
+5
// dot notation
 $.store.book[0].title
-/* bracket notation */
+
+// bracket notation
 $['store']['book'][0]['title']
+

The available operators are:

-
-

Table 1. Operators

-
------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorDescriptionExampleResults
$The root node$The whole document
. or []The child member or element$.store.bookThe contents of the book member of the store object
..Recursive descent$..authorThe content of the author member in every object
*Wildcard$.store.book[*].authorThe content of the author member of any object of the - array contained in the book member of the store object
[]Subscript$.store.book[0]The first element of the array contained in the book - member of the store object
[,]Set$.store.book[0,1]The first two elements of the array contained in the - book member of the store object
[start:end:step]Slice$.store.book[:2]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
+
    +
  • 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' 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.

-

More information about JSONPath is available on Stefan Gössner's - website.

-
-

-

-

-

-
-

Example 1. Example of JsonPath usage

-
+
+

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"
-    }
-  }
-}
-
+on a JSON tree. We use the following JSON description of a bookstore:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
{ "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:

-
-JsonParser *parser = json_parser_new ();
-json_parser_load_from_data (parser, json_data, -1, NULL);
-  
+
+ + + + + + + +
1
+2
JsonParser *parser = json_parser_new ();
+json_parser_load_from_data (parser, json_data, -1, NULL);
+
+ +

If we run the following code:

-
-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:

-
-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);
-  
+
+ + + + + + + +
1
+2
+3
+4
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:

+
+ + + + + + + +
1
+2
+3
+4
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"
-]
-
+
+ + + + + + + +
1
["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"]
+ +

+

JsonPath is available since JSON-GLib 0.14

-


-

-

-JsonPath is available since JSON-GLib 0.14 -

-

Details

-
-

JsonPath

-
typedef struct _JsonPath JsonPath;
-

-The JsonPath structure is an opaque object -whose members cannot be directly accessed except through the provided -API. -

-

Since 0.14

-
-
+

Functions

-

JsonPathClass

-
typedef struct _JsonPathClass JsonPathClass;
-

-The JsonPathClass structure is an opaque -object class whose members cannot be directly accessed. -

-

Since 0.14

+

json_path_new ()

+
JsonPath *
+json_path_new (void);
+

Creates a new JsonPath instance.

+

Once created, the JsonPath object should be used with json_path_compile() +and json_path_match().

+
+

Returns

+

the newly created JsonPath instance. Use +g_object_unref() to free the allocated resources when done.

+

[transfer full]

-
-
-

json_path_new ()

-
JsonPath *          json_path_new                       (void);
-

-Creates a new JsonPath instance. -

-

-Once created, the JsonPath object should be used with json_path_compile() -and json_path_match(). -

-
---- - - - - -

Returns :

the newly created JsonPath instance. Use -g_object_unref() to free the allocated resources when done. [transfer full] -
-

Since 0.14

+

Since: 0.14


JSON_PATH_ERROR

#define JSON_PATH_ERROR         (json_path_error_quark ())
 
-

-Error domain for JsonPath errors -

-

Since 0.14

-
-
-
-

enum JsonPathError

-
typedef enum {
-  JSON_PATH_ERROR_INVALID_QUERY
-} JsonPathError;
-
-

-Error code enumeration for the JSON_PATH_ERROR domain. -

-
---- - - - - -

JSON_PATH_ERROR_INVALID_QUERY

Invalid query -
-

Since 0.14

+

Error domain for JsonPath errors

+

Since: 0.14


-

json_path_compile ()

-
gboolean            json_path_compile                   (JsonPath *path,
-                                                         const char *expression,
-                                                         GError **error);
-

-Validates and decomposes expression. -

-

-A JSONPath expression must be compiled before calling json_path_match(). -

-
+

json_path_compile ()

+
gboolean
+json_path_compile (JsonPath *path,
+                   const char *expression,
+                   GError **error);
+

Validates and decomposes expression +.

+

A JSONPath expression must be compiled before calling json_path_match().

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + +

path :

a JsonPath -

expression :

a JSONPath expression

path

a JsonPath

 

error :

return location for a GError, or NULL -

expression

a JSONPath expression

 

Returns :

-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

error

return location for a GError, or NULL

 
-

Since 0.14

+
+
+

Returns

+

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

+
+

Since: 0.14


-

json_path_match ()

-
JsonNode *          json_path_match                     (JsonPath *path,
-                                                         JsonNode *root);
-

-Matches the JSON tree pointed by root using the expression compiled -into the JsonPath. -

-

-The matching JsonNodes will be copied into a JsonArray and -returned wrapped in a JsonNode. -

-
+

json_path_match ()

+
JsonNode *
+json_path_match (JsonPath *path,
+                 JsonNode *root);
+

Matches the JSON tree pointed by root + using the expression compiled +into the JsonPath.

+

The matching JsonNodes will be copied into a JsonArray and +returned wrapped in a JsonNode.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

path :

a compiled JsonPath -

root :

a JsonNode -

path

a compiled JsonPath

 

Returns :

a newly-created JsonNode of type -JSON_NODE_ARRAY containing an array of matching JsonNodes. -Use json_node_free() when done. [transfer full] -

root

a JsonNode

 
-

Since 0.14

+
+
+

Returns

+

a newly-created JsonNode of type +JSON_NODE_ARRAY containing an array of matching JsonNodes. +Use json_node_unref() when done.

+

[transfer full]

+
+

Since: 0.14


-

json_path_query ()

-
JsonNode *          json_path_query                     (const char *expression,
-                                                         JsonNode *root,
-                                                         GError **error);
-

-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. -

-
+

json_path_query ()

+
JsonNode *
+json_path_query (const char *expression,
+                 JsonNode *root,
+                 GError **error);
+

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 +.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + +

expression :

a JSONPath expression

root :

the root of a JSON tree

expression

a JSONPath expression

 

error :

return location for a GError, or NULL -

root

the root of a JSON tree

 

Returns :

a newly-created JsonNode of type -JSON_NODE_ARRAY containing an array of matching JsonNodes. -Use json_node_free() when done. [transfer full] -

error

return location for a GError, or NULL

 
-

Since 0.14

+
+

Returns

+

a newly-created JsonNode of type +JSON_NODE_ARRAY containing an array of matching JsonNodes. +Use json_node_unref() when done.

+

[transfer full]

+

Since: 0.14

+
+
+
+

Types and Values

+
+

JsonPath

+
typedef struct _JsonPath JsonPath;
+

The JsonPath structure is an opaque object whose members cannot be +directly accessed except through the provided API.

+

Since: 0.14

- +
+

JsonPathClass

+
typedef struct _JsonPathClass JsonPathClass;
+

The JsonPathClass structure is an opaque object class whose members +cannot be directly accessed.

+

Since: 0.14

+
+
+
+

enum JsonPathError

+

Error code enumeration for the JSON_PATH_ERROR domain.

+
+

Members

+
+++++ + + + + + +

JSON_PATH_ERROR_INVALID_QUERY

+

Invalid query

+
 
+
+

Since: 0.14

+
+
+
+ \ No newline at end of file diff --git a/doc/reference/html/JsonReader.html b/doc/reference/html/JsonReader.html index dc89b6a..cd63566 100644 --- a/doc/reference/html/JsonReader.html +++ b/doc/reference/html/JsonReader.html @@ -2,34 +2,28 @@ -JsonReader +JsonReader: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -37,69 +31,232 @@

JsonReader

JsonReader — A cursor-based parser

- +
-
-

Synopsis

-
struct              JsonReader;
-struct              JsonReaderClass;
-JsonReader *        json_reader_new                     (JsonNode *node);
-void                json_reader_set_root                (JsonReader *reader,
-                                                         JsonNode *root);
-
-gboolean            json_reader_read_element            (JsonReader *reader,
-                                                         guint index_);
-void                json_reader_end_element             (JsonReader *reader);
-gboolean            json_reader_is_array                (JsonReader *reader);
-gint                json_reader_count_elements          (JsonReader *reader);
-
-gboolean            json_reader_read_member             (JsonReader *reader,
-                                                         const gchar *member_name);
-void                json_reader_end_member              (JsonReader *reader);
-gboolean            json_reader_is_object               (JsonReader *reader);
-gint                json_reader_count_members           (JsonReader *reader);
-gchar **            json_reader_list_members            (JsonReader *reader);
-const gchar *       json_reader_get_member_name         (JsonReader *reader);
-
-gboolean            json_reader_is_value                (JsonReader *reader);
-JsonNode *          json_reader_get_value               (JsonReader *reader);
-gint64              json_reader_get_int_value           (JsonReader *reader);
-gdouble             json_reader_get_double_value        (JsonReader *reader);
-const gchar *       json_reader_get_string_value        (JsonReader *reader);
-gboolean            json_reader_get_boolean_value       (JsonReader *reader);
-gboolean            json_reader_get_null_value          (JsonReader *reader);
-
-enum                JsonReaderError;
-#define             JSON_READER_ERROR
-const GError *      json_reader_get_error               (JsonReader *reader);
-
-
-

Object Hierarchy

-
-  GObject
-   +----JsonReader
-
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonReader * + +json_reader_new () +
+void + +json_reader_set_root () +
+gboolean + +json_reader_read_element () +
+void + +json_reader_end_element () +
+gboolean + +json_reader_is_array () +
+gint + +json_reader_count_elements () +
+gboolean + +json_reader_read_member () +
+void + +json_reader_end_member () +
+gboolean + +json_reader_is_object () +
+gint + +json_reader_count_members () +
+gchar ** + +json_reader_list_members () +
const gchar * + +json_reader_get_member_name () +
+gboolean + +json_reader_is_value () +
+JsonNode * + +json_reader_get_value () +
+gint64 + +json_reader_get_int_value () +
+gdouble + +json_reader_get_double_value () +
const gchar * + +json_reader_get_string_value () +
+gboolean + +json_reader_get_boolean_value () +
+gboolean + +json_reader_get_null_value () +
#defineJSON_READER_ERROR
const GError * + +json_reader_get_error () +

Properties

-
-  "root"                     JsonNode*             : Read / Write / Construct
+
+++++ + + + + + +
+JsonNode *rootRead / Write / Construct
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
structJsonReader
structJsonReaderClass
enumJsonReaderError
+
+
+

Object Hierarchy

+
    GObject
+    ╰── JsonReader
 

Description

-

-JsonReader provides a simple, cursor-based API for parsing a JSON DOM. It -is similar, in spirit, to the XML Reader API. -

-

-In case of error, JsonReader will be set in an error state; all subsequent +

JsonReader provides a simple, cursor-based API for parsing a JSON DOM. It +is similar, in spirit, to the XML Reader API.

+

In case of error, JsonReader 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.: -

-

-

+called, e.g.:

@@ -113,34 +270,25 @@ called, e.g.: 7 8 9 -10 -11 -12 - +
/* ask for the 7th element; if the element does not exist, the
- * reader will be put in an error state
- */
+10
// 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);
 
-/* in case of error, this will return NULL, otherwise it will
- * return the value of the element
- */
+// in case of error, this will return NULL, otherwise it will
+// return the value of the element
 str = json_reader_get_string_value (value);
 
-/* this function resets the error state if any was set */
+// 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(): -

-

-

+

+

If you want to detect the error state as soon as possible, you can use +json_reader_get_error():

@@ -151,11 +299,9 @@ If you want to detect the error state as soon as possible, you can use 4 5 6 -7 -8 - +
/* like the example above, but in this case we print out the
- * error immediately
- */
+7
// 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);
@@ -166,110 +312,88 @@ If you want to detect the error state as soon as possible, you can use
   
-

-

-

-JsonReader is available since JSON-GLib 0.12. -

+

+

JsonReader is available since JSON-GLib 0.12.

-

Details

-
-

struct JsonReader

-
struct JsonReader;
-

-The JsonReader structure contains only -private data and should only be accessed using the provided API -

-

Since 0.12

-
-
-
-

struct JsonReaderClass

-
struct JsonReaderClass {
-};
-
-

-The JsonReaderClass structure contains only -private data -

-

Since 0.12

-
-
+

Functions

-

json_reader_new ()

-
JsonReader *        json_reader_new                     (JsonNode *node);
-

-Creates a new JsonReader. You can use this object to read the contents of +

json_reader_new ()

+
JsonReader *
+json_reader_new (JsonNode *node);
+

Creates a new JsonReader. You can use this object to read the contents of the JSON tree starting from node

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode, or NULL. [allow-none] -

Returns :

the newly created JsonReader. Use g_object_unref() to -release the allocated resources when done

node

a JsonNode, or NULL.

[allow-none]
-

Since 0.12

+
+
+

Returns

+

the newly created JsonReader. Use g_object_unref() to +release the allocated resources when done

+
+

Since: 0.12


-

json_reader_set_root ()

-
void                json_reader_set_root                (JsonReader *reader,
-                                                         JsonNode *root);
-

-Sets the root JsonNode to be read by reader. The reader will take +

json_reader_set_root ()

+
void
+json_reader_set_root (JsonReader *reader,
+                      JsonNode *root);
+

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. -

-
+

If another JsonNode is currently set as root, it will be replaced.

+
+

Parameters

+
--+++ - - + + + - - + + +

reader :

a JsonReader -

reader

a JsonReader

 

root :

a JsonNode. [allow-none] -

root

a JsonNode.

[allow-none]
-

Since 0.12

+
+

Since: 0.12


-

json_reader_read_element ()

-
gboolean            json_reader_read_element            (JsonReader *reader,
-                                                         guint index_);
-

-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 -the value of the element; for instance: -

-

-

+

json_reader_read_element ()

+
gboolean
+json_reader_read_element (JsonReader *reader,
+                          guint index_);
+

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 +the value of the element; for instance:

@@ -283,14 +407,9 @@ the value of the element; for instance:
-

-

-

-After reading the value, json_reader_end_element() should be called to -reposition the cursor inside the JsonReader, e.g.: -

-

-

+

+

After reading the value, json_reader_end_element() should be called to +reposition the cursor inside the JsonReader, e.g.:

@@ -314,132 +433,167 @@ reposition the cursor inside the reader is not currently on an array or an object, or if the index_ is +

+

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:

+
+
+ + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
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);
+
+ +

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

reader :

a JsonReader -

index_ :

the index of the element

reader

a JsonReader

 

Returns :

-TRUE on success, and FALSE otherwise

index_

the index of the element

 
-

Since 0.12

+
+
+

Returns

+

TRUE on success, and FALSE otherwise

+
+

Since: 0.12


-

json_reader_end_element ()

-
void                json_reader_end_element             (JsonReader *reader);
-

-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 -

-
+

json_reader_end_element ()

+
void
+json_reader_end_element (JsonReader *reader);
+

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

+
+

Parameters

+
--+++ - - + + +

reader :

a JsonReader -

reader

a JsonReader

 
-

Since 0.12

+
+

Since: 0.12


-

json_reader_is_array ()

-
gboolean            json_reader_is_array                (JsonReader *reader);
-

-Checks whether the reader is currently on an array -

-
+

json_reader_is_array ()

+
gboolean
+json_reader_is_array (JsonReader *reader);
+

Checks whether the reader + is currently on an array

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

-TRUE if the JsonReader is on an array, and FALSE -otherwise

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

TRUE if the JsonReader is on an array, and FALSE +otherwise

+
+

Since: 0.12


-

json_reader_count_elements ()

-
gint                json_reader_count_elements          (JsonReader *reader);
-

-Counts the elements of the current position, if reader is -positioned on an array -

-
+

json_reader_count_elements ()

+
gint
+json_reader_count_elements (JsonReader *reader);
+

Counts the elements of the current position, if reader + is +positioned on an array

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the number of elements, or -1. In case of failure -the JsonReader is set in an error state

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the number of elements, or -1. In case of failure +the JsonReader is set in an error state

+
+

Since: 0.12


-

json_reader_read_member ()

-
gboolean            json_reader_read_member             (JsonReader *reader,
-                                                         const gchar *member_name);
-

-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 -the value of the member; for instance: -

-

-

+

json_reader_read_member ()

+
gboolean
+json_reader_read_member (JsonReader *reader,
+                         const gchar *member_name);
+

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 +the value of the member; for instance:

@@ -453,14 +607,9 @@ the value of the member; for instance:
-

-

-

-After reading the value, json_reader_end_member() should be called to -reposition the cursor inside the JsonReader, e.g.: -

-

-

+

+

After reading the value, json_reader_end_member() should be called to +reposition the cursor inside the JsonReader, e.g.:

@@ -474,488 +623,563 @@ reposition the cursor inside the
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 +

+

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:

+
+
+ + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
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);
+
+ +

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

reader :

a JsonReader -

member_name :

the name of the member to read

reader

a JsonReader

 

Returns :

-TRUE on success, and FALSE otherwise

member_name

the name of the member to read

 
-

Since 0.12

+
+
+

Returns

+

TRUE on success, and FALSE otherwise

+
+

Since: 0.12


-

json_reader_end_member ()

-
void                json_reader_end_member              (JsonReader *reader);
-

-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 -

-
+

json_reader_end_member ()

+
void
+json_reader_end_member (JsonReader *reader);
+

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

+
+

Parameters

+
--+++ - - + + +

reader :

a JsonReader -

reader

a JsonReader

 
-

Since 0.12

+
+

Since: 0.12


-

json_reader_is_object ()

-
gboolean            json_reader_is_object               (JsonReader *reader);
-

-Checks whether the reader is currently on an object -

-
+

json_reader_is_object ()

+
gboolean
+json_reader_is_object (JsonReader *reader);
+

Checks whether the reader + is currently on an object

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

-TRUE if the JsonReader is on an object, and FALSE -otherwise

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

TRUE if the JsonReader is on an object, and FALSE +otherwise

+
+

Since: 0.12


-

json_reader_count_members ()

-
gint                json_reader_count_members           (JsonReader *reader);
-

-Counts the members of the current position, if reader is -positioned on an object -

-
+

json_reader_count_members ()

+
gint
+json_reader_count_members (JsonReader *reader);
+

Counts the members of the current position, if reader + is +positioned on an object

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the number of members, or -1. In case of failure -the JsonReader is set in an error state

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the number of members, or -1. In case of failure +the JsonReader is set in an error state

+
+

Since: 0.12


-

json_reader_list_members ()

-
gchar **            json_reader_list_members            (JsonReader *reader);
-

-Retrieves a list of member names from the current position, if reader -is positioned on an object. -

-
+

json_reader_list_members ()

+
gchar **
+json_reader_list_members (JsonReader *reader);
+

Retrieves a list of member names from the current position, if reader + +is positioned on an object.

+
+

Parameters

+
--+++ - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

a newly allocated, NULL-terminated +

reader

a JsonReader

 
+
+
+

Returns

+

a newly allocated, NULL-terminated array of strings holding the members name. Use g_strfreev() when -done. [transfer full] - - - +done.

+

[transfer full]

+
+

Since: 0.14

+ +
+
+

json_reader_get_member_name ()

+
const gchar *
+json_reader_get_member_name (JsonReader *reader);
+

Retrieves the name of the current member.

+
+

Parameters

+
+++++ + + + + +

reader

a JsonReader

 
-

Since 0.14

+
+
+

Returns

+

the name of the member, or NULL.

+

[transfer none]

+
+

Since: 0.14


-

json_reader_get_member_name ()

-
const gchar *       json_reader_get_member_name         (JsonReader *reader);
-

-Retrieves the name of the current member. -

-
+

json_reader_is_value ()

+
gboolean
+json_reader_is_value (JsonReader *reader);
+

Checks whether the reader + is currently on a value

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the name of the member, or NULL. [transfer none] -

reader

a JsonReader

 
-

Since 0.14

+
+
+

Returns

+

TRUE if the JsonReader is on a value, and FALSE +otherwise

+
+

Since: 0.12


-

json_reader_is_value ()

-
gboolean            json_reader_is_value                (JsonReader *reader);
-

-Checks whether the reader is currently on a value +

json_reader_get_value ()

+
JsonNode *
+json_reader_get_value (JsonReader *reader);
+

Retrieves the JsonNode of the current position of reader

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

-TRUE if the JsonReader is on a value, and FALSE -otherwise

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

a JsonNode, or NULL. The returned node +is owned by the JsonReader and it should not be modified or freed +directly.

+

[transfer none]

+
+

Since: 0.12


-

json_reader_get_value ()

-
JsonNode *          json_reader_get_value               (JsonReader *reader);
-

-Retrieves the JsonNode of the current position of reader +

json_reader_get_int_value ()

+
gint64
+json_reader_get_int_value (JsonReader *reader);
+

Retrieves the integer value of the current position of reader

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

a JsonNode, or NULL. The returned node -is owned by the JsonReader and it should not be modified or freed -directly. [transfer none] -

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the integer value

+
+

Since: 0.12


-

json_reader_get_int_value ()

-
gint64              json_reader_get_int_value           (JsonReader *reader);
-

-Retrieves the integer value of the current position of reader +

json_reader_get_double_value ()

+
gdouble
+json_reader_get_double_value (JsonReader *reader);
+

Retrieves the floating point value of the current position of reader

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the integer value

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the floating point value

+
+

Since: 0.12


-

json_reader_get_double_value ()

-
gdouble             json_reader_get_double_value        (JsonReader *reader);
-

-Retrieves the floating point value of the current position of reader +

json_reader_get_string_value ()

+
const gchar *
+json_reader_get_string_value (JsonReader *reader);
+

Retrieves the string value of the current position of reader

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the floating point value

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the string value

+
+

Since: 0.12


-

json_reader_get_string_value ()

-
const gchar *       json_reader_get_string_value        (JsonReader *reader);
-

-Retrieves the string value of the current position of reader +

json_reader_get_boolean_value ()

+
gboolean
+json_reader_get_boolean_value (JsonReader *reader);
+

Retrieves the boolean value of the current position of reader

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the string value

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the boolean value

+
+

Since: 0.12


-

json_reader_get_boolean_value ()

-
gboolean            json_reader_get_boolean_value       (JsonReader *reader);
-

-Retrieves the boolean value of the current position of reader -

-
+

json_reader_get_null_value ()

+
gboolean
+json_reader_get_null_value (JsonReader *reader);
+

Checks whether the value of the current position of reader + is 'null'

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

the boolean value

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

TRUE if 'null' is set, and FALSE otherwise

+
+

Since: 0.12


-

json_reader_get_null_value ()

-
gboolean            json_reader_get_null_value          (JsonReader *reader);
-

-Checks whether the value of the current position of reader is 'null' -

-
+

JSON_READER_ERROR

+
#define JSON_READER_ERROR               (json_reader_error_quark ())
+
+

Error domain for JsonReader errors

+

Since: 0.12

+ +
+
+

json_reader_get_error ()

+
const GError *
+json_reader_get_error (JsonReader *reader);
+

Retrieves the GError currently set on reader +, if the JsonReader +is in error state

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

reader :

a JsonReader -

Returns :

-TRUE if 'null' is set, and FALSE otherwise

reader

a JsonReader

 
-

Since 0.12

+
+
+

Returns

+

the pointer to the error, or NULL.

+

[transfer none]

+
+

Since: 0.12

+ + +
+

Types and Values

+
+

struct JsonReader

+
struct JsonReader;
+

The JsonReader structure contains only private data and should +be accessed using the provided API

+

Since: 0.12


-

enum JsonReaderError

-
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;
+

struct JsonReaderClass

+
struct JsonReaderClass {
+};
 
-

-Error codes enumeration for JsonReader errors -

-
+

The JsonReaderClass structure contains only private data

+

Since: 0.12

+ +
+
+

enum JsonReaderError

+

Error codes enumeration for JsonReader errors

+
+

Members

+
--+++ - - + + - - + + - - + + - - + + - - + + - - + + - - + +

JSON_READER_ERROR_NO_ARRAY

No array found at the current position +

JSON_READER_ERROR_NO_ARRAY

+

No array found at the current position

 

JSON_READER_ERROR_INVALID_INDEX

Index out of bounds +

JSON_READER_ERROR_INVALID_INDEX

+

Index out of bounds

 

JSON_READER_ERROR_NO_OBJECT

No object found at the current position +

JSON_READER_ERROR_NO_OBJECT

+

No object found at the current position

 

JSON_READER_ERROR_INVALID_MEMBER

Member not found +

JSON_READER_ERROR_INVALID_MEMBER

+

Member not found

 

JSON_READER_ERROR_INVALID_NODE

No valid node found at the current position +

JSON_READER_ERROR_INVALID_NODE

+

No valid node found at the current position

 

JSON_READER_ERROR_NO_VALUE

The node at the current position does not - hold a value +

JSON_READER_ERROR_NO_VALUE

+

The node at the current position does not + hold a value

 

JSON_READER_ERROR_INVALID_TYPE

The node at the current position does not - hold a value of the desired type +

JSON_READER_ERROR_INVALID_TYPE

+

The node at the current position does not + hold a value of the desired type

 
-

Since 0.12

-
-
-

JSON_READER_ERROR

-
#define JSON_READER_ERROR               (json_reader_error_quark ())
-
-

-Error domain for JsonReader errors -

-

Since 0.12

-
-
-
-

json_reader_get_error ()

-
const GError *      json_reader_get_error               (JsonReader *reader);
-

-Retrieves the GError currently set on reader, if the JsonReader -is in error state -

-
---- - - - - - - - - - - -

reader :

a JsonReader -

Returns :

the pointer to the error, or NULL. [transfer none] -
-

Since 0.12

+

Since: 0.12

Property Details

-

The "root" property

-
  "root"                     JsonNode*             : Read / Write / Construct
-

-The root of the JSON tree that the JsonReader should read. -

-

Since 0.12

+

The “root” property

+
  “root”                     JsonNode *
+

The root of the JSON tree that the JsonReader should read.

+

Flags: Read / Write / Construct

+

Since: 0.12

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/annotation-glossary.html b/doc/reference/html/annotation-glossary.html index 78268c5..663d4a5 100644 --- a/doc/reference/html/annotation-glossary.html +++ b/doc/reference/html/annotation-glossary.html @@ -2,76 +2,79 @@ -Annotation Glossary +Annotation Glossary: JSON-GLib Reference Manual - + - + - - - - - - - - - - + + + + + + +

Annotation Glossary

-

O

-
out
-

Parameter for returning results. Default is transfer full.

-
out caller-allocates
-

Out parameter, where caller must allocate storage.

A

allow-none
-

NULL is ok, both for passing and for returning.

+

NULL is OK, both for passing and for returning.

+
array
+

Parameter points to an array of items.

C

closure

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

-

T

-
transfer none
-

Don't free data after the code is done.

-

A

-
array
-

Parameter points to an array of items.

+
constructor
+

This symbol is a constructor, not a static method.

E

element-type

Generics and defining elements of containers and arrays.

+

N

+
nullable
+

NULL may be passed as the value in, out, in-out; or as a return value.

+

O

+
optional
+

NULL may be passed instead of a pointer to a location.

+
out
+

Parameter for returning results. Default is transfer full.

+
out callee-allocates
+

Out parameter, where caller must allocate storage.

+
out caller-allocates
+

Out parameter, where caller must allocate storage.

+

S

+
scope call
+

The callback is valid only during the call to the method.

+
skip
+

Exposed in C code, not necessarily available in other languages.

T

transfer container

Free data container after the code is done.

transfer full

Free data after the code is done.

-

S

-
scope call
-

The callback is valid only during the call to the method.

+
transfer none
+

Don't free data after the code is done.

+
type
+

Override the parsed C type with given type.

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ch01.html b/doc/reference/html/ch01.html index e9a5305..0d5f354 100644 --- a/doc/reference/html/ch01.html +++ b/doc/reference/html/ch01.html @@ -2,22 +2,22 @@ -Data Types +Data Types: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -35,7 +35,6 @@

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/ch02.html b/doc/reference/html/ch02.html index 5a5332f..ee247db 100644 --- a/doc/reference/html/ch02.html +++ b/doc/reference/html/ch02.html @@ -2,22 +2,22 @@ -Parser +Parser: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -35,7 +35,6 @@

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/ch03.html b/doc/reference/html/ch03.html index 493e493..bda6138 100644 --- a/doc/reference/html/ch03.html +++ b/doc/reference/html/ch03.html @@ -2,22 +2,22 @@ -Generator +Generator: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -32,7 +32,6 @@

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/ch04.html b/doc/reference/html/ch04.html index 2486617..6826781 100644 --- a/doc/reference/html/ch04.html +++ b/doc/reference/html/ch04.html @@ -2,37 +2,31 @@ -Object Hierarchy +General Purpose API: JSON-GLib Reference Manual - - - - + + + + - - - - - - + + + + + +

-Object Hierarchy

-
-    GObject
-        JsonBuilder
-        JsonGenerator
-        JsonParser
-        JsonPath
-        JsonReader
-
+General Purpose API
+
+Utility API — Various utility functions +
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ch06.html b/doc/reference/html/ch06.html new file mode 100644 index 0000000..38e69a1 --- /dev/null +++ b/doc/reference/html/ch06.html @@ -0,0 +1,43 @@ + + + + +Object Hierarchy: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+

+Object Hierarchy

+
+    GObject
+    ├── JsonBuilder
+    ├── JsonGenerator
+    ├── JsonParser
+    ├── JsonPath
+    ╰── JsonReader
+    GInterface
+    ╰── JsonSerializable
+    GBoxed
+    ├── JsonArray
+    ├── JsonNode
+    ╰── JsonObject
+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/home.png b/doc/reference/html/home.png index 17003611d9df2b066afc682cbde962f3a575002d..9346b336a784463192c7daab5133a3673dd69845 100644 GIT binary patch delta 238 zcmeBUZD3OD4DfU3<&xrJU|`_&^l%9R(gGmN!3HGdKmSjhs3=pARQqaxysz9Q}BI-m)~YggoA|1V*z2{cQ=d z;!=?fvu4~`n82RKrk1UubNXTJj1GP|o-=>$A29f{JgJ9K`^t{Q-oWs>M&_hvT&MjX z@T4-&sBW+1^4oCGWij)gZ^F?&4{tD^snshuo_S#H_Z3c6f95eV9?NCUmzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u+Np+Dmo-00J9HL_t(|oYj@FYZGxC#XsM2Lxt zW(Y*EkbnV&=hBmFY+_Q|!3S@7fBbmw`|iu{cW}e7Ne@c81v~;Auy1Bxt}Q^)0`La# z=TaX?fd&wjw9jVNpLFQL{DGuiuh-Ms+M1FiQLEL`2z-jcXyXstwy8K0KhrN=H@2e`!nFSnGMDn2a;Y%QngxD6h#6qFbDzxe_CB#Rhp&> z!%$h46;1p&^GMQ1N!r=j(d_K(ALeBipKEb(@zQ{qA@c>G3MAXx+pMpzGZ>6+3Xo+P z{r&`dEiZFrWo7Kt!;Irt^YioN22Y30wAly{(NPidQc{4VC*zhm zEuC}P+uJKbULfg1x7(F-f9{{n%RFz=41hD|97{_}bUGbswHlR5g(OM-zPJ+dJSWd{ z;yA{8kM|y+gQUBXdXm&?wFD?l(@{5dB(f|Mpo4>hLi#T0-i(>mfjhvbsYV`;4sgfJ z-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~2PD1gRd&0-pW&-82m&1+ zA4^j6vIcL%FudPvHaR&tnQHn1b8~Z4Diwg&g?8bOcK!-J2Er>Pz!|U)JU6qSSM-<; ZzW@pK;yM -JSON-GLib Reference Manual +JSON-GLib Reference Manual: JSON-GLib Reference Manual - + @@ -14,7 +14,7 @@
-

for JSON-GLib 0.16.0 +

for JSON-GLib 1.2.0

@@ -83,6 +83,10 @@ JsonBuilder — Generates JSON trees +
General Purpose API
+
+Utility API — Various utility functions +
IV. JSON-GLib Advanced API
@@ -98,13 +102,22 @@
JSON GVariant Integration — Serialize and deserialize GVariant types
+
+Versioning information — JSON-GLib version checking +
V. JSON-GLib Additional Reference
+
JSON-GLib Tools
+
-Versioning information — JSON-GLib version checking +json-glib-format — JSON-GLib formatting tool +
+
+json-glib-validate — JSON-GLib validation tool
-
Object Hierarchy
+
+
Object Hierarchy
Index
Index of deprecated symbols
@@ -114,12 +127,14 @@
Index of new symbols in 0.10
Index of new symbols in 0.12
Index of new symbols in 0.14
+
Index of new symbols in 0.16
+
Index of new symbols in 1.0
+
Index of new symbols in 1.2
Annotation Glossary
A. License
+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/index.sgml b/doc/reference/html/index.sgml index 31fb574..5c35741 100644 --- a/doc/reference/html/index.sgml +++ b/doc/reference/html/index.sgml @@ -1,13 +1,10 @@ - - - - - - - - + + + + + @@ -26,6 +23,12 @@ + + + + + + @@ -51,15 +54,31 @@ + + + + + + + + + + - - - + + + + + + + + + @@ -82,14 +101,22 @@ + + - - - + + + + + + + + + @@ -101,6 +128,8 @@ + + @@ -115,23 +144,19 @@ + + + - - + + + + - - - - - - - - - - - + + @@ -141,6 +166,20 @@ + + + + + + + + + + + + + + @@ -152,13 +191,12 @@ - - + + + - - - + @@ -178,6 +216,11 @@ + + + + + @@ -186,33 +229,31 @@ - - - + + - - - - + - - + + + + + - - + + + - - - + @@ -225,19 +266,23 @@ + + + - + + + - - - + + @@ -251,22 +296,37 @@ + + + + + + + + + + + + - + - + + - + + + + - - + @@ -275,10 +335,12 @@ + + - + - + @@ -287,32 +349,46 @@ + - + - + + - + + - + + + + + - - - + + - - + + + + + + + + + - + + diff --git a/doc/reference/html/ix01.html b/doc/reference/html/ix01.html index 45ab3a2..290c151 100644 --- a/doc/reference/html/ix01.html +++ b/doc/reference/html/ix01.html @@ -2,191 +2,206 @@ -Index +Index: JSON-GLib Reference Manual - + - + - - - - - - - - - - + + + + + + +

Index

A

-JsonArray, struct in JSON Array +JsonArray, struct in JSON Array
-JsonArrayForeach, user_function in JSON Array +JsonArrayForeach, user_function in JSON Array
-json_array_add_array_element, function in JSON Array +json_array_add_array_element, function in JSON Array
-json_array_add_boolean_element, function in JSON Array +json_array_add_boolean_element, function in JSON Array
-json_array_add_double_element, function in JSON Array +json_array_add_double_element, function in JSON Array
-json_array_add_element, function in JSON Array +json_array_add_element, function in JSON Array
-json_array_add_int_element, function in JSON Array +json_array_add_int_element, function in JSON Array
-json_array_add_null_element, function in JSON Array +json_array_add_null_element, function in JSON Array
-json_array_add_object_element, function in JSON Array +json_array_add_object_element, function in JSON Array
-json_array_add_string_element, function in JSON Array +json_array_add_string_element, function in JSON Array
-json_array_dup_element, function in JSON Array +json_array_dup_element, function in JSON Array
-json_array_foreach_element, function in JSON Array +json_array_equal, function in JSON Array
-json_array_get_array_element, function in JSON Array +json_array_foreach_element, function in JSON Array
-json_array_get_boolean_element, function in JSON Array +json_array_get_array_element, function in JSON Array
-json_array_get_double_element, function in JSON Array +json_array_get_boolean_element, function in JSON Array
-json_array_get_element, function in JSON Array +json_array_get_double_element, function in JSON Array
-json_array_get_elements, function in JSON Array +json_array_get_element, function in JSON Array
-json_array_get_int_element, function in JSON Array +json_array_get_elements, function in JSON Array
-json_array_get_length, function in JSON Array +json_array_get_int_element, function in JSON Array
-json_array_get_null_element, function in JSON Array +json_array_get_length, function in JSON Array
-json_array_get_object_element, function in JSON Array +json_array_get_null_element, function in JSON Array
-json_array_get_string_element, function in JSON Array +json_array_get_object_element, function in JSON Array
-json_array_new, function in JSON Array +json_array_get_string_element, function in JSON Array
-json_array_ref, function in JSON Array +json_array_hash, function in JSON Array
-json_array_remove_element, function in JSON Array +json_array_is_immutable, function in JSON Array
-json_array_sized_new, function in JSON Array +json_array_new, function in JSON Array
-json_array_unref, function in JSON Array +json_array_ref, function in JSON Array +
+
+
+json_array_remove_element, function in JSON Array +
+
+
+json_array_seal, function in JSON Array +
+
+
+json_array_sized_new, function in JSON Array +
+
+
+json_array_unref, function in JSON Array

B

-JsonBoxedDeserializeFunc, user_function in Boxed Types Serialization +JsonBoxedDeserializeFunc, user_function in Boxed Types Serialization
-JsonBoxedSerializeFunc, user_function in Boxed Types Serialization +JsonBoxedSerializeFunc, user_function in Boxed Types Serialization
-json_boxed_can_deserialize, function in Boxed Types Serialization +json_boxed_can_deserialize, function in Boxed Types Serialization
-json_boxed_can_serialize, function in Boxed Types Serialization +json_boxed_can_serialize, function in Boxed Types Serialization
-json_boxed_deserialize, function in Boxed Types Serialization +json_boxed_deserialize, function in Boxed Types Serialization
-json_boxed_register_deserialize_func, function in Boxed Types Serialization +json_boxed_register_deserialize_func, function in Boxed Types Serialization
-json_boxed_register_serialize_func, function in Boxed Types Serialization +json_boxed_register_serialize_func, function in Boxed Types Serialization
-json_boxed_serialize, function in Boxed Types Serialization +json_boxed_serialize, function in Boxed Types Serialization
@@ -194,63 +209,71 @@
+JsonBuilder:immutable, object property in JsonBuilder +
+
+
JsonBuilderClass, struct in JsonBuilder
-json_builder_add_boolean_value, function in JsonBuilder +json_builder_add_boolean_value, function in JsonBuilder +
+
+
+json_builder_add_double_value, function in JsonBuilder
-json_builder_add_double_value, function in JsonBuilder +json_builder_add_int_value, function in JsonBuilder
-json_builder_add_int_value, function in JsonBuilder +json_builder_add_null_value, function in JsonBuilder
-json_builder_add_null_value, function in JsonBuilder +json_builder_add_string_value, function in JsonBuilder
-json_builder_add_string_value, function in JsonBuilder +json_builder_add_value, function in JsonBuilder
-json_builder_add_value, function in JsonBuilder +json_builder_begin_array, function in JsonBuilder
-json_builder_begin_array, function in JsonBuilder +json_builder_begin_object, function in JsonBuilder
-json_builder_begin_object, function in JsonBuilder +json_builder_end_array, function in JsonBuilder
-json_builder_end_array, function in JsonBuilder +json_builder_end_object, function in JsonBuilder
-json_builder_end_object, function in JsonBuilder +json_builder_get_root, function in JsonBuilder
-json_builder_get_root, function in JsonBuilder +json_builder_new, function in JsonBuilder
-json_builder_new, function in JsonBuilder +json_builder_new_immutable, function in JsonBuilder
-json_builder_reset, function in JsonBuilder +json_builder_reset, function in JsonBuilder
-json_builder_set_member_name, function in JsonBuilder +json_builder_set_member_name, function in JsonBuilder

C

@@ -259,7 +282,12 @@
-json_construct_gobject, function in GObject Serialization +json_construct_gobject, function in GObject Serialization +
+
+

F

+
+json_from_string, function in Utility API

G

@@ -268,19 +296,19 @@
-JsonGenerator:indent, object property in JsonGenerator +JsonGenerator:indent, object property in JsonGenerator
-JsonGenerator:indent-char, object property in JsonGenerator +JsonGenerator:indent-char, object property in JsonGenerator
-JsonGenerator:pretty, object property in JsonGenerator +JsonGenerator:pretty, object property in JsonGenerator
-JsonGenerator:root, object property in JsonGenerator +JsonGenerator:root, object property in JsonGenerator
@@ -288,83 +316,83 @@
-json_generator_get_indent, function in JsonGenerator +json_generator_get_indent, function in JsonGenerator
-json_generator_get_indent_char, function in JsonGenerator +json_generator_get_indent_char, function in JsonGenerator
-json_generator_get_pretty, function in JsonGenerator +json_generator_get_pretty, function in JsonGenerator
-json_generator_get_root, function in JsonGenerator +json_generator_get_root, function in JsonGenerator
-json_generator_new, function in JsonGenerator +json_generator_new, function in JsonGenerator
-json_generator_set_indent, function in JsonGenerator +json_generator_set_indent, function in JsonGenerator
-json_generator_set_indent_char, function in JsonGenerator +json_generator_set_indent_char, function in JsonGenerator
-json_generator_set_pretty, function in JsonGenerator +json_generator_set_pretty, function in JsonGenerator
-json_generator_set_root, function in JsonGenerator +json_generator_set_root, function in JsonGenerator
-json_generator_to_data, function in JsonGenerator +json_generator_to_data, function in JsonGenerator
-json_generator_to_file, function in JsonGenerator +json_generator_to_file, function in JsonGenerator
-json_generator_to_stream, function in JsonGenerator +json_generator_to_stream, function in JsonGenerator
-json_gobject_deserialize, function in GObject Serialization +json_gobject_deserialize, function in GObject Serialization
-json_gobject_from_data, function in GObject Serialization +json_gobject_from_data, function in GObject Serialization
-json_gobject_serialize, function in GObject Serialization +json_gobject_serialize, function in GObject Serialization
-json_gobject_to_data, function in GObject Serialization +json_gobject_to_data, function in GObject Serialization
-json_gvariant_deserialize, function in JSON GVariant Integration +json_gvariant_deserialize, function in JSON GVariant Integration
-json_gvariant_deserialize_data, function in JSON GVariant Integration +json_gvariant_deserialize_data, function in JSON GVariant Integration
-json_gvariant_serialize, function in JSON GVariant Integration +json_gvariant_serialize, function in JSON GVariant Integration
-json_gvariant_serialize_data, function in JSON GVariant Integration +json_gvariant_serialize_data, function in JSON GVariant Integration

M

@@ -382,7 +410,7 @@

N

-JsonNode, struct in JSON Node +JsonNode, struct in JSON Node
@@ -390,67 +418,75 @@
-json_node_alloc, function in JSON Node +json_node_alloc, function in JSON Node
-json_node_copy, function in JSON Node +json_node_copy, function in JSON Node
-json_node_dup_array, function in JSON Node +json_node_dup_array, function in JSON Node
-json_node_dup_object, function in JSON Node +json_node_dup_object, function in JSON Node
-json_node_dup_string, function in JSON Node +json_node_dup_string, function in JSON Node
-json_node_free, function in JSON Node +json_node_equal, function in JSON Node
-json_node_get_array, function in JSON Node +json_node_free, function in JSON Node
-json_node_get_boolean, function in JSON Node +json_node_get_array, function in JSON Node
-json_node_get_double, function in JSON Node +json_node_get_boolean, function in JSON Node
-json_node_get_int, function in JSON Node +json_node_get_double, function in JSON Node
-json_node_get_node_type, function in JSON Node +json_node_get_int, function in JSON Node
-json_node_get_object, function in JSON Node +json_node_get_node_type, function in JSON Node
-json_node_get_parent, function in JSON Node +json_node_get_object, function in JSON Node
-json_node_get_string, function in JSON Node +json_node_get_parent, function in JSON Node
-json_node_get_value, function in JSON Node +json_node_get_string, function in JSON Node
-json_node_get_value_type, function in JSON Node +json_node_get_value, function in JSON Node +
+
+
+json_node_get_value_type, function in JSON Node +
+
+
+json_node_hash, function in JSON Node
@@ -474,83 +510,95 @@
-json_node_init, function in JSON Node +json_node_init, function in JSON Node
-json_node_init_array, function in JSON Node +json_node_init_array, function in JSON Node
-json_node_init_boolean, function in JSON Node +json_node_init_boolean, function in JSON Node
-json_node_init_double, function in JSON Node +json_node_init_double, function in JSON Node
-json_node_init_int, function in JSON Node +json_node_init_int, function in JSON Node
-json_node_init_null, function in JSON Node +json_node_init_null, function in JSON Node
-json_node_init_object, function in JSON Node +json_node_init_object, function in JSON Node
-json_node_init_string, function in JSON Node +json_node_init_string, function in JSON Node
-json_node_is_null, function in JSON Node +json_node_is_immutable, function in JSON Node
-json_node_new, function in JSON Node +json_node_is_null, function in JSON Node
-json_node_set_array, function in JSON Node +json_node_new, function in JSON Node
-json_node_set_boolean, function in JSON Node +json_node_ref, function in JSON Node
-json_node_set_double, function in JSON Node +json_node_seal, function in JSON Node
-json_node_set_int, function in JSON Node +json_node_set_array, function in JSON Node
-json_node_set_object, function in JSON Node +json_node_set_boolean, function in JSON Node
-json_node_set_parent, function in JSON Node +json_node_set_double, function in JSON Node
-json_node_set_string, function in JSON Node +json_node_set_int, function in JSON Node
-json_node_set_value, function in JSON Node +json_node_set_object, function in JSON Node
-json_node_take_array, function in JSON Node +json_node_set_parent, function in JSON Node
-json_node_take_object, function in JSON Node +json_node_set_string, function in JSON Node +
+
+
+json_node_set_value, function in JSON Node +
+
+
+json_node_take_array, function in JSON Node +
+
+
+json_node_take_object, function in JSON Node
@@ -558,124 +606,156 @@
-json_node_type_name, function in JSON Node +json_node_type_name, function in JSON Node +
+
+
+json_node_unref, function in JSON Node

O

-JsonObject, struct in JSON Object +JsonObject, struct in JSON Object +
+
+
+JsonObjectForeach, user_function in JSON Object
-JsonObjectForeach, user_function in JSON Object +JsonObjectIter, struct in JSON Object
-json_object_add_member, function in JSON Object +json_object_add_member, function in JSON Object
-json_object_dup_member, function in JSON Object +json_object_dup_member, function in JSON Object
-json_object_foreach_member, function in JSON Object +json_object_equal, function in JSON Object
-json_object_get_array_member, function in JSON Object +json_object_foreach_member, function in JSON Object
-json_object_get_boolean_member, function in JSON Object +json_object_get_array_member, function in JSON Object
-json_object_get_double_member, function in JSON Object +json_object_get_boolean_member, function in JSON Object
-json_object_get_int_member, function in JSON Object +json_object_get_double_member, function in JSON Object
-json_object_get_member, function in JSON Object +json_object_get_int_member, function in JSON Object
-json_object_get_members, function in JSON Object +json_object_get_member, function in JSON Object
-json_object_get_null_member, function in JSON Object +json_object_get_members, function in JSON Object
-json_object_get_object_member, function in JSON Object +json_object_get_null_member, function in JSON Object
-json_object_get_size, function in JSON Object +json_object_get_object_member, function in JSON Object
-json_object_get_string_member, function in JSON Object +json_object_get_size, function in JSON Object
-json_object_get_values, function in JSON Object +json_object_get_string_member, function in JSON Object
-json_object_has_member, function in JSON Object +json_object_get_values, function in JSON Object
-json_object_new, function in JSON Object +json_object_hash, function in JSON Object
-json_object_ref, function in JSON Object +json_object_has_member, function in JSON Object
-json_object_remove_member, function in JSON Object +json_object_is_immutable, function in JSON Object
-json_object_set_array_member, function in JSON Object +json_object_iter_init, function in JSON Object
-json_object_set_boolean_member, function in JSON Object +json_object_iter_next, function in JSON Object
-json_object_set_double_member, function in JSON Object +json_object_new, function in JSON Object
-json_object_set_int_member, function in JSON Object +json_object_ref, function in JSON Object
-json_object_set_member, function in JSON Object +json_object_remove_member, function in JSON Object
-json_object_set_null_member, function in JSON Object +json_object_seal, function in JSON Object
-json_object_set_object_member, function in JSON Object +json_object_set_array_member, function in JSON Object
-json_object_set_string_member, function in JSON Object +json_object_set_boolean_member, function in JSON Object
-json_object_unref, function in JSON Object +json_object_set_double_member, function in JSON Object +
+
+
+json_object_set_int_member, function in JSON Object +
+
+
+json_object_set_member, function in JSON Object +
+
+
+json_object_set_null_member, function in JSON Object +
+
+
+json_object_set_object_member, function in JSON Object +
+
+
+json_object_set_string_member, function in JSON Object +
+
+
+json_object_unref, function in JSON Object

P

@@ -684,39 +764,43 @@
-JsonParser::array-element, object signal in JsonParser +JsonParser::array-element, object signal in JsonParser +
+
+
+JsonParser::array-end, object signal in JsonParser
-JsonParser::array-end, object signal in JsonParser +JsonParser::array-start, object signal in JsonParser
-JsonParser::array-start, object signal in JsonParser +JsonParser::error, object signal in JsonParser
-JsonParser::error, object signal in JsonParser +JsonParser::object-end, object signal in JsonParser
-JsonParser::object-end, object signal in JsonParser +JsonParser::object-member, object signal in JsonParser
-JsonParser::object-member, object signal in JsonParser +JsonParser::object-start, object signal in JsonParser
-JsonParser::object-start, object signal in JsonParser +JsonParser::parse-end, object signal in JsonParser
-JsonParser::parse-end, object signal in JsonParser +JsonParser::parse-start, object signal in JsonParser
-JsonParser::parse-start, object signal in JsonParser +JsonParser:immutable, object property in JsonParser
@@ -728,43 +812,47 @@
-json_parser_get_current_line, function in JsonParser +json_parser_get_current_line, function in JsonParser
-json_parser_get_current_pos, function in JsonParser +json_parser_get_current_pos, function in JsonParser
-json_parser_get_root, function in JsonParser +json_parser_get_root, function in JsonParser
-json_parser_has_assignment, function in JsonParser +json_parser_has_assignment, function in JsonParser
-json_parser_load_from_data, function in JsonParser +json_parser_load_from_data, function in JsonParser
-json_parser_load_from_file, function in JsonParser +json_parser_load_from_file, function in JsonParser
-json_parser_load_from_stream, function in JsonParser +json_parser_load_from_stream, function in JsonParser
-json_parser_load_from_stream_async, function in JsonParser +json_parser_load_from_stream_async, function in JsonParser
-json_parser_load_from_stream_finish, function in JsonParser +json_parser_load_from_stream_finish, function in JsonParser
-json_parser_new, function in JsonParser +json_parser_new, function in JsonParser +
+
+
+json_parser_new_immutable, function in JsonParser
@@ -780,7 +868,7 @@
-json_path_compile, function in JsonPath +json_path_compile, function in JsonPath
@@ -788,15 +876,15 @@
-json_path_match, function in JsonPath +json_path_match, function in JsonPath
-json_path_new, function in JsonPath +json_path_new, function in JsonPath
-json_path_query, function in JsonPath +json_path_query, function in JsonPath

R

@@ -805,7 +893,7 @@
-JsonReader:root, object property in JsonReader +JsonReader:root, object property in JsonReader
@@ -817,19 +905,19 @@
-json_reader_count_elements, function in JsonReader +json_reader_count_elements, function in JsonReader
-json_reader_count_members, function in JsonReader +json_reader_count_members, function in JsonReader
-json_reader_end_element, function in JsonReader +json_reader_end_element, function in JsonReader
-json_reader_end_member, function in JsonReader +json_reader_end_member, function in JsonReader
@@ -837,67 +925,67 @@
-json_reader_get_boolean_value, function in JsonReader +json_reader_get_boolean_value, function in JsonReader
-json_reader_get_double_value, function in JsonReader +json_reader_get_double_value, function in JsonReader
-json_reader_get_error, function in JsonReader +json_reader_get_error, function in JsonReader
-json_reader_get_int_value, function in JsonReader +json_reader_get_int_value, function in JsonReader
-json_reader_get_member_name, function in JsonReader +json_reader_get_member_name, function in JsonReader
-json_reader_get_null_value, function in JsonReader +json_reader_get_null_value, function in JsonReader
-json_reader_get_string_value, function in JsonReader +json_reader_get_string_value, function in JsonReader
-json_reader_get_value, function in JsonReader +json_reader_get_value, function in JsonReader
-json_reader_is_array, function in JsonReader +json_reader_is_array, function in JsonReader
-json_reader_is_object, function in JsonReader +json_reader_is_object, function in JsonReader
-json_reader_is_value, function in JsonReader +json_reader_is_value, function in JsonReader
-json_reader_list_members, function in JsonReader +json_reader_list_members, function in JsonReader
-json_reader_new, function in JsonReader +json_reader_new, function in JsonReader
-json_reader_read_element, function in JsonReader +json_reader_read_element, function in JsonReader
-json_reader_read_member, function in JsonReader +json_reader_read_member, function in JsonReader
-json_reader_set_root, function in JsonReader +json_reader_set_root, function in JsonReader

S

@@ -906,39 +994,56 @@
-json_serializable_default_deserialize_property, function in Serializable Interface +json_serializable_default_deserialize_property, function in Serializable Interface +
+
+
+json_serializable_default_serialize_property, function in Serializable Interface
-json_serializable_default_serialize_property, function in Serializable Interface +json_serializable_deserialize_property, function in Serializable Interface
-json_serializable_deserialize_property, function in Serializable Interface +json_serializable_find_property, function in Serializable Interface
-json_serializable_find_property, function in Serializable Interface +json_serializable_get_property, function in Serializable Interface
-json_serializable_get_property, function in Serializable Interface +json_serializable_list_properties, function in Serializable Interface
-json_serializable_list_properties, function in Serializable Interface +json_serializable_serialize_property, function in Serializable Interface
-json_serializable_serialize_property, function in Serializable Interface +json_serializable_set_property, function in Serializable Interface
-json_serializable_set_property, function in Serializable Interface +json_serialize_gobject, function in GObject Serialization
-json_serialize_gobject, function in GObject Serialization +json_string_compare, function in JSON Node +
+
+
+json_string_equal, function in JSON Node +
+
+
+json_string_hash, function in JSON Node +
+
+

T

+
+json_to_string, function in Utility API

V

@@ -951,12 +1056,19 @@
+JSON_VERSION_MAX_ALLOWED, macro in Versioning information +
+
+
+JSON_VERSION_MIN_REQUIRED, macro in Versioning information +
+
+
JSON_VERSION_S, macro in Versioning information
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix02.html b/doc/reference/html/ix02.html index b13d3ff..2956c53 100644 --- a/doc/reference/html/ix02.html +++ b/doc/reference/html/ix02.html @@ -2,53 +2,47 @@ -Index of deprecated symbols +Index of deprecated symbols: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + + +
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix03.html b/doc/reference/html/ix03.html index 59aed54..c48642d 100644 --- a/doc/reference/html/ix03.html +++ b/doc/reference/html/ix03.html @@ -2,60 +2,54 @@ -Index of new symbols in 0.4 +Index of new symbols in 0.4: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + + +
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix04.html b/doc/reference/html/ix04.html index 44915d0..af3a0dd 100644 --- a/doc/reference/html/ix04.html +++ b/doc/reference/html/ix04.html @@ -2,53 +2,47 @@ -Index of new symbols in 0.6 +Index of new symbols in 0.6: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +

Index of new symbols in 0.6

A

-json_array_dup_element, function in JSON Array +json_array_dup_element, function in JSON Array

G

-JsonGenerator:indent-char, object property in JsonGenerator +JsonGenerator:indent-char, object property in JsonGenerator

O

-json_object_dup_member, function in JSON Object +json_object_dup_member, function in JSON Object
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix05.html b/doc/reference/html/ix05.html index b785e52..9aa076d 100644 --- a/doc/reference/html/ix05.html +++ b/doc/reference/html/ix05.html @@ -2,185 +2,179 @@ -Index of new symbols in 0.8 +Index of new symbols in 0.8: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +

Index of new symbols in 0.8

A

-JsonArrayForeach, user_function in JSON Array +JsonArrayForeach, user_function in JSON Array
-json_array_add_array_element, function in JSON Array +json_array_add_array_element, function in JSON Array
-json_array_add_boolean_element, function in JSON Array +json_array_add_boolean_element, function in JSON Array
-json_array_add_double_element, function in JSON Array +json_array_add_double_element, function in JSON Array
-json_array_add_int_element, function in JSON Array +json_array_add_int_element, function in JSON Array
-json_array_add_null_element, function in JSON Array +json_array_add_null_element, function in JSON Array
-json_array_add_object_element, function in JSON Array +json_array_add_object_element, function in JSON Array
-json_array_add_string_element, function in JSON Array +json_array_add_string_element, function in JSON Array
-json_array_foreach_element, function in JSON Array +json_array_foreach_element, function in JSON Array
-json_array_get_array_element, function in JSON Array +json_array_get_array_element, function in JSON Array
-json_array_get_boolean_element, function in JSON Array +json_array_get_boolean_element, function in JSON Array
-json_array_get_double_element, function in JSON Array +json_array_get_double_element, function in JSON Array
-json_array_get_int_element, function in JSON Array +json_array_get_int_element, function in JSON Array
-json_array_get_null_element, function in JSON Array +json_array_get_null_element, function in JSON Array
-json_array_get_object_element, function in JSON Array +json_array_get_object_element, function in JSON Array
-json_array_get_string_element, function in JSON Array +json_array_get_string_element, function in JSON Array

N

-json_node_get_node_type, function in JSON Node +json_node_get_node_type, function in JSON Node
-json_node_is_null, function in JSON Node +json_node_is_null, function in JSON Node
-json_node_set_parent, function in JSON Node +json_node_set_parent, function in JSON Node

O

-JsonObjectForeach, user_function in JSON Object +JsonObjectForeach, user_function in JSON Object
-json_object_foreach_member, function in JSON Object +json_object_foreach_member, function in JSON Object
-json_object_get_array_member, function in JSON Object +json_object_get_array_member, function in JSON Object
-json_object_get_boolean_member, function in JSON Object +json_object_get_boolean_member, function in JSON Object
-json_object_get_double_member, function in JSON Object +json_object_get_double_member, function in JSON Object
-json_object_get_int_member, function in JSON Object +json_object_get_int_member, function in JSON Object
-json_object_get_null_member, function in JSON Object +json_object_get_null_member, function in JSON Object
-json_object_get_object_member, function in JSON Object +json_object_get_object_member, function in JSON Object
-json_object_get_string_member, function in JSON Object +json_object_get_string_member, function in JSON Object
-json_object_set_array_member, function in JSON Object +json_object_set_array_member, function in JSON Object
-json_object_set_boolean_member, function in JSON Object +json_object_set_boolean_member, function in JSON Object
-json_object_set_double_member, function in JSON Object +json_object_set_double_member, function in JSON Object
-json_object_set_int_member, function in JSON Object +json_object_set_int_member, function in JSON Object
-json_object_set_member, function in JSON Object +json_object_set_member, function in JSON Object
-json_object_set_null_member, function in JSON Object +json_object_set_null_member, function in JSON Object
-json_object_set_object_member, function in JSON Object +json_object_set_object_member, function in JSON Object
-json_object_set_string_member, function in JSON Object +json_object_set_string_member, function in JSON Object
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix06.html b/doc/reference/html/ix06.html index 750fe84..9fc641f 100644 --- a/doc/reference/html/ix06.html +++ b/doc/reference/html/ix06.html @@ -2,85 +2,80 @@ -Index of new symbols in 0.10 +Index of new symbols in 0.10: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +

Index of new symbols in 0.10

B

-JsonBoxedDeserializeFunc, user_function in Boxed Types Serialization +JsonBoxedDeserializeFunc, user_function in Boxed Types Serialization
-JsonBoxedSerializeFunc, user_function in Boxed Types Serialization +JsonBoxedSerializeFunc, user_function in Boxed Types Serialization
-json_boxed_can_deserialize, function in Boxed Types Serialization +json_boxed_can_deserialize, function in Boxed Types Serialization
-json_boxed_can_serialize, function in Boxed Types Serialization +json_boxed_can_serialize, function in Boxed Types Serialization
-json_boxed_deserialize, function in Boxed Types Serialization +json_boxed_deserialize, function in Boxed Types Serialization
-json_boxed_register_deserialize_func, function in Boxed Types Serialization +json_boxed_register_deserialize_func, function in Boxed Types Serialization
-json_boxed_register_serialize_func, function in Boxed Types Serialization +json_boxed_register_serialize_func, function in Boxed Types Serialization
-json_boxed_serialize, function in Boxed Types Serialization +json_boxed_serialize, function in Boxed Types Serialization

G

-json_gobject_deserialize, function in GObject Serialization +json_gobject_deserialize, function in GObject Serialization
-json_gobject_from_data, function in GObject Serialization +json_gobject_from_data, function in GObject Serialization
-json_gobject_serialize, function in GObject Serialization +json_gobject_serialize, function in GObject Serialization
-json_gobject_to_data, function in GObject Serialization +json_gobject_to_data, function in GObject Serialization

N

@@ -106,16 +101,15 @@

S

-json_serializable_default_deserialize_property, function in Serializable Interface +json_serializable_default_deserialize_property, function in Serializable Interface
-json_serializable_default_serialize_property, function in Serializable Interface +json_serializable_default_serialize_property, function in Serializable Interface
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix07.html b/doc/reference/html/ix07.html index aa55a06..6d2de66 100644 --- a/doc/reference/html/ix07.html +++ b/doc/reference/html/ix07.html @@ -2,34 +2,29 @@ -Index of new symbols in 0.12 +Index of new symbols in 0.12: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +

Index of new symbols in 0.12

@@ -44,20 +39,20 @@

G

-json_generator_to_stream, function in JsonGenerator +json_generator_to_stream, function in JsonGenerator

P

-json_parser_load_from_stream, function in JsonParser +json_parser_load_from_stream, function in JsonParser
-json_parser_load_from_stream_async, function in JsonParser +json_parser_load_from_stream_async, function in JsonParser
-json_parser_load_from_stream_finish, function in JsonParser +json_parser_load_from_stream_finish, function in JsonParser

R

@@ -66,7 +61,7 @@
-JsonReader:root, object property in JsonReader +JsonReader:root, object property in JsonReader
@@ -78,19 +73,19 @@
-json_reader_count_elements, function in JsonReader +json_reader_count_elements, function in JsonReader
-json_reader_count_members, function in JsonReader +json_reader_count_members, function in JsonReader
-json_reader_end_element, function in JsonReader +json_reader_end_element, function in JsonReader
-json_reader_end_member, function in JsonReader +json_reader_end_member, function in JsonReader
@@ -98,64 +93,63 @@
-json_reader_get_boolean_value, function in JsonReader +json_reader_get_boolean_value, function in JsonReader
-json_reader_get_double_value, function in JsonReader +json_reader_get_double_value, function in JsonReader
-json_reader_get_error, function in JsonReader +json_reader_get_error, function in JsonReader
-json_reader_get_int_value, function in JsonReader +json_reader_get_int_value, function in JsonReader
-json_reader_get_null_value, function in JsonReader +json_reader_get_null_value, function in JsonReader
-json_reader_get_string_value, function in JsonReader +json_reader_get_string_value, function in JsonReader
-json_reader_get_value, function in JsonReader +json_reader_get_value, function in JsonReader
-json_reader_is_array, function in JsonReader +json_reader_is_array, function in JsonReader
-json_reader_is_object, function in JsonReader +json_reader_is_object, function in JsonReader
-json_reader_is_value, function in JsonReader +json_reader_is_value, function in JsonReader
-json_reader_new, function in JsonReader +json_reader_new, function in JsonReader
-json_reader_read_element, function in JsonReader +json_reader_read_element, function in JsonReader
-json_reader_read_member, function in JsonReader +json_reader_read_member, function in JsonReader
-json_reader_set_root, function in JsonReader +json_reader_set_root, function in JsonReader
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix08.html b/doc/reference/html/ix08.html index 34f3871..9b14d6b 100644 --- a/doc/reference/html/ix08.html +++ b/doc/reference/html/ix08.html @@ -2,80 +2,75 @@ -Index of new symbols in 0.14 +Index of new symbols in 0.14: JSON-GLib Reference Manual - - + + - - - - - - - - - - + + + + + + +

Index of new symbols in 0.14

G

-json_generator_get_indent, function in JsonGenerator +json_generator_get_indent, function in JsonGenerator
-json_generator_get_indent_char, function in JsonGenerator +json_generator_get_indent_char, function in JsonGenerator
-json_generator_get_pretty, function in JsonGenerator +json_generator_get_pretty, function in JsonGenerator
-json_generator_get_root, function in JsonGenerator +json_generator_get_root, function in JsonGenerator
-json_generator_set_indent, function in JsonGenerator +json_generator_set_indent, function in JsonGenerator
-json_generator_set_indent_char, function in JsonGenerator +json_generator_set_indent_char, function in JsonGenerator
-json_generator_set_pretty, function in JsonGenerator +json_generator_set_pretty, function in JsonGenerator
-json_gvariant_deserialize, function in JSON GVariant Integration +json_gvariant_deserialize, function in JSON GVariant Integration
-json_gvariant_deserialize_data, function in JSON GVariant Integration +json_gvariant_deserialize_data, function in JSON GVariant Integration
-json_gvariant_serialize, function in JSON GVariant Integration +json_gvariant_serialize, function in JSON GVariant Integration
-json_gvariant_serialize_data, function in JSON GVariant Integration +json_gvariant_serialize_data, function in JSON GVariant Integration

P

@@ -92,7 +87,7 @@
-json_path_compile, function in JsonPath +json_path_compile, function in JsonPath
@@ -100,38 +95,45 @@
-json_path_match, function in JsonPath +json_path_match, function in JsonPath
-json_path_new, function in JsonPath +json_path_new, function in JsonPath
-json_path_query, function in JsonPath +json_path_query, function in JsonPath

R

-json_reader_get_member_name, function in JsonReader +json_reader_get_member_name, function in JsonReader
-json_reader_list_members, function in JsonReader +json_reader_list_members, function in JsonReader

S

-json_serializable_find_property, function in Serializable Interface +json_serializable_find_property, function in Serializable Interface
-json_serializable_list_properties, function in Serializable Interface +json_serializable_get_property, function in Serializable Interface +
+
+
+json_serializable_list_properties, function in Serializable Interface +
+
+
+json_serializable_set_property, function in Serializable Interface
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/ix09.html b/doc/reference/html/ix09.html new file mode 100644 index 0000000..6143e9e --- /dev/null +++ b/doc/reference/html/ix09.html @@ -0,0 +1,66 @@ + + + + +Index of new symbols in 0.16: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 0.16

+

N

+
+json_node_alloc, function in JSON Node +
+
+
+json_node_init, function in JSON Node +
+
+
+json_node_init_array, function in JSON Node +
+
+
+json_node_init_boolean, function in JSON Node +
+
+
+json_node_init_double, function in JSON Node +
+
+
+json_node_init_int, function in JSON Node +
+
+
+json_node_init_null, function in JSON Node +
+
+
+json_node_init_object, function in JSON Node +
+
+
+json_node_init_string, function in JSON Node +
+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/ix10.html b/doc/reference/html/ix10.html new file mode 100644 index 0000000..a9a12d9 --- /dev/null +++ b/doc/reference/html/ix10.html @@ -0,0 +1,38 @@ + + + + +Index of new symbols in 1.0: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.0

+

V

+
+JSON_VERSION_MAX_ALLOWED, macro in Versioning information +
+
+
+JSON_VERSION_MIN_REQUIRED, macro in Versioning information +
+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/ix11.html b/doc/reference/html/ix11.html new file mode 100644 index 0000000..aca9e1d --- /dev/null +++ b/doc/reference/html/ix11.html @@ -0,0 +1,155 @@ + + + + +Index of new symbols in 1.2: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.2

+

A

+
+json_array_equal, function in JSON Array +
+
+
+json_array_hash, function in JSON Array +
+
+
+json_array_is_immutable, function in JSON Array +
+
+
+json_array_seal, function in JSON Array +
+
+

B

+
+JsonBuilder:immutable, object property in JsonBuilder +
+
+
+json_builder_new_immutable, function in JsonBuilder +
+
+

F

+
+json_from_string, function in Utility API +
+
+

N

+
+json_node_equal, function in JSON Node +
+
+
+json_node_hash, function in JSON Node +
+
+
+json_node_is_immutable, function in JSON Node +
+
+
+json_node_ref, function in JSON Node +
+
+
+json_node_seal, function in JSON Node +
+
+
+json_node_unref, function in JSON Node +
+
+

O

+
+JsonObjectIter, struct in JSON Object +
+
+
+json_object_equal, function in JSON Object +
+
+
+json_object_hash, function in JSON Object +
+
+
+json_object_is_immutable, function in JSON Object +
+
+
+json_object_iter_init, function in JSON Object +
+
+
+json_object_iter_next, function in JSON Object +
+
+
+json_object_seal, function in JSON Object +
+
+

P

+
+JsonParser:immutable, object property in JsonParser +
+
+
+json_parser_new_immutable, function in JsonParser +
+
+

S

+
+json_string_compare, function in JSON Node +
+
+
+json_string_equal, function in JSON Node +
+
+
+json_string_hash, function in JSON Node +
+
+

T

+
+json_to_string, function in Utility API +
+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/json-advanced.html b/doc/reference/html/json-advanced.html index 5c5eeb5..0dbdb7c 100644 --- a/doc/reference/html/json-advanced.html +++ b/doc/reference/html/json-advanced.html @@ -2,22 +2,22 @@ -Part IV. JSON-GLib Advanced API +Part IV. JSON-GLib Advanced API: JSON-GLib Reference Manual - + - + - - - - - - + + + + + +

@@ -37,11 +37,13 @@
JSON GVariant Integration — Serialize and deserialize GVariant types
+
+Versioning information — JSON-GLib version checking +

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/json-base.html b/doc/reference/html/json-base.html index a6d9d12..fe2c5dd 100644 --- a/doc/reference/html/json-base.html +++ b/doc/reference/html/json-base.html @@ -2,22 +2,22 @@ -Part II. JSON-GLib Reference +Part II. JSON-GLib Reference: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -55,7 +55,6 @@

+
Generated by GTK-Doc V1.24
\ 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 index 0000000..2cf61cd --- /dev/null +++ b/doc/reference/html/json-format-tool.html @@ -0,0 +1,83 @@ + + + + +json-glib-format: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

json-glib-format

+

json-glib-format — JSON-GLib formatting tool

+
+
+

Synopsis

+

json-glib-format [-h, --help] [--prettify] [--indent-spaces SPACES] URI [ + URI... + ]

+
+
+

Description

+

json-glib-format 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.

+

+The resources to operate on are specified by the URI +argument. +

+
+
+

Commands

+
++++ + + + + + + + + + + + + + + +

-h, --help

+Prints help and exits. +

-p, --prettify

+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. +

--indent-spaces SPACES

+Changes the number of spaces using to indent the JSON data from the default of 2. +This argument is only considered if --prettify is used. +

+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/json-glib-Boxed-Types-Serialization.html b/doc/reference/html/json-glib-Boxed-Types-Serialization.html index 6e0e286..1cc2f9f 100644 --- a/doc/reference/html/json-glib-Boxed-Types-Serialization.html +++ b/doc/reference/html/json-glib-Boxed-Types-Serialization.html @@ -2,30 +2,26 @@ -Boxed Types Serialization +Boxed Types Serialization: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,46 +29,91 @@

Boxed Types Serialization

Boxed Types Serialization — Serialize and deserialize GBoxed types

- +
-
-

Synopsis

-
JsonNode *          (*JsonBoxedSerializeFunc)           (gconstpointer boxed);
-gpointer            (*JsonBoxedDeserializeFunc)         (JsonNode *node);
-void                json_boxed_register_serialize_func  (GType gboxed_type,
-                                                         JsonNodeType node_type,
-                                                         JsonBoxedSerializeFunc serialize_func);
-void                json_boxed_register_deserialize_func
-                                                        (GType gboxed_type,
-                                                         JsonNodeType node_type,
-                                                         JsonBoxedDeserializeFunc deserialize_func);
-
-gboolean            json_boxed_can_serialize            (GType gboxed_type,
-                                                         JsonNodeType *node_type);
-gboolean            json_boxed_can_deserialize          (GType gboxed_type,
-                                                         JsonNodeType node_type);
-JsonNode *          json_boxed_serialize                (GType gboxed_type,
-                                                         gconstpointer boxed);
-gpointer            json_boxed_deserialize              (GType gboxed_type,
-                                                         JsonNode *node);
-
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonNode * + +(*JsonBoxedSerializeFunc) () +
+gpointer + +(*JsonBoxedDeserializeFunc) () +
+void + +json_boxed_register_serialize_func () +
+void + +json_boxed_register_deserialize_func () +
+gboolean + +json_boxed_can_serialize () +
+gboolean + +json_boxed_can_deserialize () +
+JsonNode * + +json_boxed_serialize () +
+gpointer + +json_boxed_deserialize () +

Description

-

-GLib's GBoxed type is a generic wrapper for arbitrary C structures. -

-

-JSON-GLib allows serialization and deserialization of a GBoxed type +

GLib's GBoxed type is a generic wrapper for arbitrary C structures.

+

JSON-GLib allows serialization and deserialization of a GBoxed type by registering functions mapping a JsonNodeType to a specific -GType. -

-

-When registering a GBoxed type you should also register the -corresponding transformation functions, e.g.: -

-

-

+GType.

+

When registering a GBoxed type you should also register the +corresponding transformation functions, e.g.:

@@ -122,285 +163,326 @@ corresponding transformation functions, e.g.:
-

-

-

-The serialization function will be invoked by json_boxed_serialize(): +

+

The serialization function will be invoked by json_boxed_serialize(): it will be passed a pointer to the C structure and it must return a -JsonNode. The deserialization function will be invoked by -json_boxed_deserialize(): it will be passed a JsonNode for the -declared type and it must return a newly allocated C structure. -

-

-It is possible to check whether a GBoxed type can be deserialized +JsonNode. The deserialization function will be invoked by +json_boxed_deserialize(): it will be passed a JsonNode for the +declared type and it must return a newly allocated C structure.

+

It is possible to check whether a GBoxed type can be deserialized from a specific JsonNodeType, and whether a GBoxed can be serialized -and to which specific JsonNodeType. -

+and to which specific JsonNodeType.

-

Details

+

Functions

-

JsonBoxedSerializeFunc ()

-
JsonNode *          (*JsonBoxedSerializeFunc)           (gconstpointer boxed);
-

-Serializes the passed GBoxed and stores it inside a JsonNode -

-
+

JsonBoxedSerializeFunc ()

+
JsonNode *
+(*JsonBoxedSerializeFunc) (gconstpointer boxed);
+

Serializes the passed GBoxed and stores it inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

boxed :

a GBoxed -

Returns :

the newly created JsonNode -

boxed

a GBoxed

 
-

Since 0.10

+
+
+

Returns

+

the newly created JsonNode

+
+

Since: 0.10


-

JsonBoxedDeserializeFunc ()

-
gpointer            (*JsonBoxedDeserializeFunc)         (JsonNode *node);
-

-Deserializes the contents of the passed JsonNode into a GBoxed -

-
+

JsonBoxedDeserializeFunc ()

+
gpointer
+(*JsonBoxedDeserializeFunc) (JsonNode *node);
+

Deserializes the contents of the passed JsonNode into a GBoxed

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode -

Returns :

the newly created boxed type

node

a JsonNode

 
-

Since 0.10

+
+
+

Returns

+

the newly created boxed type

+
+

Since: 0.10


-

json_boxed_register_serialize_func ()

-
void                json_boxed_register_serialize_func  (GType gboxed_type,
-                                                         JsonNodeType node_type,
-                                                         JsonBoxedSerializeFunc serialize_func);
-

-Registers a serialization function for a GBoxed of type gboxed_type -to a JsonNode of type node_type +

json_boxed_register_serialize_func ()

+
void
+json_boxed_register_serialize_func (GType gboxed_type,
+                                    JsonNodeType node_type,
+                                    JsonBoxedSerializeFunc serialize_func);
+

Registers a serialization function for a GBoxed of type gboxed_type + +to a JsonNode of type node_type

-
+

[skip]

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

gboxed_type :

a boxed type

gboxed_type

a boxed type

 

node_type :

a node type

node_type

a node type

 

serialize_func :

serialization function for boxed_type into -a JsonNode of type node_type -

serialize_func

serialization function for boxed_type +into +a JsonNode of type node_type +

 
-

Since 0.10

+
+

Since: 0.10


-

json_boxed_register_deserialize_func ()

-
void                json_boxed_register_deserialize_func
-                                                        (GType gboxed_type,
-                                                         JsonNodeType node_type,
-                                                         JsonBoxedDeserializeFunc deserialize_func);
-

-Registers a deserialization function for a GBoxed of type gboxed_type -from a JsonNode of type node_type +

json_boxed_register_deserialize_func ()

+
void
+json_boxed_register_deserialize_func (GType gboxed_type,
+                                      JsonNodeType node_type,
+                                      JsonBoxedDeserializeFunc deserialize_func);
+

Registers a deserialization function for a GBoxed of type gboxed_type + +from a JsonNode of type node_type

-
+

[skip]

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

gboxed_type :

a boxed type

gboxed_type

a boxed type

 

node_type :

a node type

node_type

a node type

 

deserialize_func :

deserialization function for boxed_type from -a JsonNode of type node_type -

deserialize_func

deserialization function for boxed_type +from +a JsonNode of type node_type +

 
-

Since 0.10

+
+

Since: 0.10


-

json_boxed_can_serialize ()

-
gboolean            json_boxed_can_serialize            (GType gboxed_type,
-                                                         JsonNodeType *node_type);
-

-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. -

-
+

json_boxed_can_serialize ()

+
gboolean
+json_boxed_can_serialize (GType gboxed_type,
+                          JsonNodeType *node_type);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

gboxed_type :

a boxed type

gboxed_type

a boxed type

 

node_type :

the JsonNode type to which the boxed type can be -serialized into. [out] -

Returns :

-TRUE if the type can be serialized, -and FALSE otherwise.

node_type

the JsonNode type to which the boxed type can be +serialized into.

[out]
-

Since 0.10

+
+
+

Returns

+

TRUE if the type can be serialized, +and FALSE otherwise.

+
+

Since: 0.10


-

json_boxed_can_deserialize ()

-
gboolean            json_boxed_can_deserialize          (GType gboxed_type,
-                                                         JsonNodeType node_type);
-

-Checks whether it is possible to deserialize a GBoxed of -type gboxed_type from a JsonNode of type node_type +

json_boxed_can_deserialize ()

+
gboolean
+json_boxed_can_deserialize (GType gboxed_type,
+                            JsonNodeType node_type);
+

Checks whether it is possible to deserialize a GBoxed of +type gboxed_type + from a JsonNode of type node_type

-
+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

gboxed_type :

a boxed type

gboxed_type

a boxed type

 

node_type :

a JsonNode type

Returns :

-TRUE if the type can be deserialized, FALSE otherwise

node_type

a JsonNode type

 
-

Since 0.10

+
+
+

Returns

+

TRUE if the type can be deserialized, FALSE otherwise

+
+

Since: 0.10


-

json_boxed_serialize ()

-
JsonNode *          json_boxed_serialize                (GType gboxed_type,
-                                                         gconstpointer boxed);
-

-Serializes boxed, a pointer to a GBoxed of type gboxed_type, -into a JsonNode -

-
+

json_boxed_serialize ()

+
JsonNode *
+json_boxed_serialize (GType gboxed_type,
+                      gconstpointer boxed);
+

Serializes boxed +, a pointer to a GBoxed of type gboxed_type +, +into a JsonNode

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

gboxed_type :

a boxed type

boxed :

a pointer to a GBoxed of type gboxed_type -

gboxed_type

a boxed type

 

Returns :

a JsonNode with the serialization of the -boxed type, or NULL if serialization either failed or was not possible. [transfer full] -

boxed

a pointer to a GBoxed of type gboxed_type +

 
-

Since 0.10

+
+
+

Returns

+

a JsonNode with the serialization of the +boxed type, or NULL if serialization either failed or was not possible.

+

[transfer full]

+
+

Since: 0.10


-

json_boxed_deserialize ()

-
gpointer            json_boxed_deserialize              (GType gboxed_type,
-                                                         JsonNode *node);
-

-Deserializes node into a GBoxed of gboxed_type +

json_boxed_deserialize ()

+
gpointer
+json_boxed_deserialize (GType gboxed_type,
+                        JsonNode *node);
+

Deserializes node + into a GBoxed of gboxed_type

-
+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

gboxed_type :

a boxed type

node :

a JsonNode -

gboxed_type

a boxed type

 

Returns :

the newly allocated GBoxed. Use -g_boxed_free() to release the resources allocated by this -function. [transfer full] -

node

a JsonNode

 
-

Since 0.10

+
+
+

Returns

+

the newly allocated GBoxed. Use +g_boxed_free() to release the resources allocated by this +function.

+

[transfer full]

+
+

Since: 0.10

+
+

Types and Values

+
+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/json-glib-GObject-Serialization.html b/doc/reference/html/json-glib-GObject-Serialization.html index a4d0f68..9dc7303 100644 --- a/doc/reference/html/json-glib-GObject-Serialization.html +++ b/doc/reference/html/json-glib-GObject-Serialization.html @@ -2,30 +2,26 @@ -GObject Serialization +GObject Serialization: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,296 +29,354 @@

GObject Serialization

GObject Serialization — Serialize and deserialize GObjects

- +
-
-

Synopsis

-
JsonNode *          json_gobject_serialize              (GObject *gobject);
-GObject *           json_gobject_deserialize            (GType gtype,
-                                                         JsonNode *node);
-gchar *             json_gobject_to_data                (GObject *gobject,
-                                                         gsize *length);
-GObject *           json_gobject_from_data              (GType gtype,
-                                                         const gchar *data,
-                                                         gssize length,
-                                                         GError **error);
-
-GObject *           json_construct_gobject              (GType gtype,
-                                                         const gchar *data,
-                                                         gsize length,
-                                                         GError **error);
-gchar *             json_serialize_gobject              (GObject *gobject,
-                                                         gsize *length);
-
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonNode * + +json_gobject_serialize () +
+GObject * + +json_gobject_deserialize () +
+gchar * + +json_gobject_to_data () +
+GObject * + +json_gobject_from_data () +
+GObject * + +json_construct_gobject () +
+gchar * + +json_serialize_gobject () +

Description

-

-JSON-GLib provides API for serializing and deserializing GObjects -to and from JSON data streams. -

-

-Simple GObject classes can be (de)serialized into JSON objects, if the +

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, 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 JsonSerializable interface -and its virtual functions. -

+then the class should implement the provided JsonSerializable interface +and its virtual functions.

-

Details

+

Functions

-

json_gobject_serialize ()

-
JsonNode *          json_gobject_serialize              (GObject *gobject);
-

-Creates a JsonNode representing the passed GObject +

json_gobject_serialize ()

+
JsonNode *
+json_gobject_serialize (GObject *gobject);
+

Creates a JsonNode representing the passed GObject instance. Each member of the returned JSON object will -map to a property of the GObject -

-
+map to a property of the GObject

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

gobject :

a GObject -

Returns :

the newly created JsonNode -of type JSON_NODE_OBJECT. Use json_node_free() to free -the resources allocated by this function. [transfer full] -

gobject

a GObject

 
-

Since 0.10

+
+
+

Returns

+

the newly created JsonNode +of type JSON_NODE_OBJECT. Use json_node_unref() to free +the resources allocated by this function.

+

[transfer full]

+
+

Since: 0.10


-

json_gobject_deserialize ()

-
GObject *           json_gobject_deserialize            (GType gtype,
-                                                         JsonNode *node);
-

-Creates a new GObject of type gtype, and constructs it -using the members of the passed JsonObject -

-
+

json_gobject_deserialize ()

+
GObject *
+json_gobject_deserialize (GType gtype,
+                          JsonNode *node);
+

Creates a new GObject of type gtype +, and constructs it +using the members of the passed JsonObject

+
+

Parameters

+
--+++ - - + + + - - + - - - - +

+

gtype :

the type of the GObject to create

gtype

the type of the GObject to create

 

node :

a JsonNode of type JSON_NODE_OBJECT describing the +

node

a JsonNode of type JSON_NODE_OBJECT describing the instance of type gtype -

Returns :

The newly created GObject -instance. Use g_object_unref() to free the resources -allocated by this function. [transfer full] - 
-

Since 0.10

+
+
+

Returns

+

The newly created GObject +instance. Use g_object_unref() to free the resources +allocated by this function.

+

[transfer full]

+
+

Since: 0.10


-

json_gobject_to_data ()

-
gchar *             json_gobject_to_data                (GObject *gobject,
-                                                         gsize *length);
-

-Serializes a GObject into a JSON data stream, iterating recursively -over each property. -

-

-If gobject implements the JsonSerializableIface interface, it will +

json_gobject_to_data ()

+
gchar *
+json_gobject_to_data (GObject *gobject,
+                      gsize *length);
+

Serializes a GObject into a JSON data stream, iterating recursively +over each property.

+

If gobject + implements the JsonSerializableIface 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. -

-
+JSON native types.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

gobject :

a GObject -

gobject

a GObject

 

length :

return value for the length of the buffer, or NULL. [out] -

Returns :

a JSON data stream representing the passed GObject -

length

return value for the length of the buffer, or NULL.

[out]
-

Since 0.10

+
+
+

Returns

+

a JSON data stream representing the passed GObject

+
+

Since: 0.10


-

json_gobject_from_data ()

-
GObject *           json_gobject_from_data              (GType gtype,
-                                                         const gchar *data,
-                                                         gssize length,
-                                                         GError **error);
-

-Deserializes a JSON data stream and creates the corresponding -GObject class. If gtype implements the JsonSerializableIface +

json_gobject_from_data ()

+
GObject *
+json_gobject_from_data (GType gtype,
+                        const gchar *data,
+                        gssize length,
+                        GError **error);
+

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. -

-
+will be used to translate the compatible JSON native types.

+

Note: the JSON data stream must be an object declaration.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - - - - - + + +

gtype :

the GType of object to construct

gtype

the GType of object to construct

 

data :

a JSON data stream

data

a JSON data stream

 

length :

length of the data stream, or -1 if it is NUL-terminated

length

length of the data stream, or -1 if it is NUL-terminated

 

error :

return location for a GError, or NULL -

Returns :

a GObject or NULL. [transfer full] -

error

return location for a GError, or NULL

 
-

Since 0.10

+
+
+

Returns

+

a GObject or NULL.

+

[transfer full]

+
+

Since: 0.10


-

json_construct_gobject ()

-
GObject *           json_construct_gobject              (GType gtype,
-                                                         const gchar *data,
-                                                         gsize length,
-                                                         GError **error);
-
-

Warning

-

json_construct_gobject has been deprecated since version 0.10 and should not be used in newly-written code. Use json_gobject_from_data() instead

+

json_construct_gobject ()

+
GObject *
+json_construct_gobject (GType gtype,
+                        const gchar *data,
+                        gsize length,
+                        GError **error);
+
+

json_construct_gobject has been deprecated since version 0.10 and should not be used in newly-written code.

+

Use json_gobject_from_data() instead

-

-Deserializes a JSON data stream and creates the corresponding -GObject class. If gtype implements the JsonSerializableIface +

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. -

-
+will be used to translate the compatible JSON native types.

+

Note: the JSON data stream must be an object declaration.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

gtype :

the GType of object to construct

data :

a JSON data stream

gtype

the GType of object to construct

 

length :

length of the data stream

data

a JSON data stream

 

error :

return location for a GError, or NULL -

length

length of the data stream

 

Returns :

a GObject or NULL. [transfer full] -

error

return location for a GError, or NULL

 
-

Since 0.4

+
+
+

Returns

+

a GObject or NULL.

+

[transfer full]

+
+

Since: 0.4


-

json_serialize_gobject ()

-
gchar *             json_serialize_gobject              (GObject *gobject,
-                                                         gsize *length);
-
-

Warning

-

json_serialize_gobject has been deprecated since version 0.10 and should not be used in newly-written code. Use json_gobject_to_data() instead

+

json_serialize_gobject ()

+
gchar *
+json_serialize_gobject (GObject *gobject,
+                        gsize *length);
+
+

json_serialize_gobject has been deprecated since version 0.10 and should not be used in newly-written code.

+

Use json_gobject_to_data() instead

-

-Serializes a GObject into a JSON data stream. If gobject implements +

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. -

-
+translate the compatible types into JSON native types.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

gobject :

a GObject -

gobject

a GObject

 

length :

return value for the length of the buffer, or NULL. [out] -

Returns :

a JSON data stream representing the passed GObject -

length

return value for the length of the buffer, or NULL.

[out]
+
+

Returns

+

a JSON data stream representing the passed GObject

+
+
+ +
+

Types and Values

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/json-glib-JSON-Array.html b/doc/reference/html/json-glib-JSON-Array.html index 672d0ee..aa43f22 100644 --- a/doc/reference/html/json-glib-JSON-Array.html +++ b/doc/reference/html/json-glib-JSON-Array.html @@ -2,30 +2,27 @@ -JSON Array +JSON Array: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,896 +30,1322 @@

JSON Array

JSON Array — a JSON array representation

- +
-
-

Synopsis

-
                    JsonArray;
-JsonArray *         json_array_new                      (void);
-JsonArray *         json_array_sized_new                (guint n_elements);
-JsonArray *         json_array_ref                      (JsonArray *array);
-void                json_array_unref                    (JsonArray *array);
-
-void                json_array_add_element              (JsonArray *array,
-                                                         JsonNode *node);
-JsonNode *          json_array_get_element              (JsonArray *array,
-                                                         guint index_);
-JsonNode *          json_array_dup_element              (JsonArray *array,
-                                                         guint index_);
-GList *             json_array_get_elements             (JsonArray *array);
-guint               json_array_get_length               (JsonArray *array);
-void                json_array_remove_element           (JsonArray *array,
-                                                         guint index_);
-void                (*JsonArrayForeach)                 (JsonArray *array,
-                                                         guint index_,
-                                                         JsonNode *element_node,
-                                                         gpointer user_data);
-void                json_array_foreach_element          (JsonArray *array,
-                                                         JsonArrayForeach func,
-                                                         gpointer data);
-
-void                json_array_add_array_element        (JsonArray *array,
-                                                         JsonArray *value);
-JsonArray *         json_array_get_array_element        (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_boolean_element      (JsonArray *array,
-                                                         gboolean value);
-gboolean            json_array_get_boolean_element      (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_double_element       (JsonArray *array,
-                                                         gdouble value);
-gdouble             json_array_get_double_element       (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_int_element          (JsonArray *array,
-                                                         gint64 value);
-gint64              json_array_get_int_element          (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_null_element         (JsonArray *array);
-gboolean            json_array_get_null_element         (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_object_element       (JsonArray *array,
-                                                         JsonObject *value);
-JsonObject *        json_array_get_object_element       (JsonArray *array,
-                                                         guint index_);
-void                json_array_add_string_element       (JsonArray *array,
-                                                         const gchar *value);
-const gchar *       json_array_get_string_element       (JsonArray *array,
-                                                         guint index_);
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonArray * + +json_array_new () +
+JsonArray * + +json_array_sized_new () +
+JsonArray * + +json_array_ref () +
+void + +json_array_unref () +
+void + +json_array_seal () +
+gboolean + +json_array_is_immutable () +
+guint + +json_array_hash () +
+gboolean + +json_array_equal () +
+void + +json_array_add_element () +
+JsonNode * + +json_array_get_element () +
+JsonNode * + +json_array_dup_element () +
+GList * + +json_array_get_elements () +
+guint + +json_array_get_length () +
+void + +json_array_remove_element () +
+void + +(*JsonArrayForeach) () +
+void + +json_array_foreach_element () +
+void + +json_array_add_array_element () +
+JsonArray * + +json_array_get_array_element () +
+void + +json_array_add_boolean_element () +
+gboolean + +json_array_get_boolean_element () +
+void + +json_array_add_double_element () +
+gdouble + +json_array_get_double_element () +
+void + +json_array_add_int_element () +
+gint64 + +json_array_get_int_element () +
+void + +json_array_add_null_element () +
+gboolean + +json_array_get_null_element () +
+void + +json_array_add_object_element () +
+JsonObject * + +json_array_get_object_element () +
+void + +json_array_add_string_element () +
const gchar * + +json_array_get_string_element () +
+
+
+

Types and Values

+
++++ + + + + +
 JsonArray
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── JsonArray
 

Description

-

-JsonArray is the representation of the array type inside JSON. It contains -JsonNodes, which may contain fundamental types, other arrays or -objects. -

-

-Since arrays can be expensive, they are reference counted. You can control -the lifetime of a JsonArray using json_array_ref() and json_array_unref(). -

-

-To append an element, use json_array_add_element(). -To extract an element at a given index, use json_array_get_element(). -To retrieve the entire array in list form, use json_array_get_elements(). -To retrieve the length of the array, use json_array_get_length(). -

+

JsonArray is the representation of the array type inside JSON. It contains +JsonNode elements, which may contain fundamental types, other arrays or +objects.

+

Since arrays can be expensive, they are reference counted. You can control +the lifetime of a JsonArray using json_array_ref() and json_array_unref().

+

To append an element, use json_array_add_element(). +To extract an element at a given index, use json_array_get_element(). +To retrieve the entire array in list form, use json_array_get_elements(). +To retrieve the length of the array, use json_array_get_length().

-

Details

+

Functions

-

JsonArray

-
typedef struct _JsonArray JsonArray;
-

-A JSON array type. The contents of the JsonArray structure are private -and should only be accessed by the provided API -

+

json_array_new ()

+
JsonArray *
+json_array_new (void);
+

Creates a new JsonArray.

+

[constructor]

+
+

Returns

+

the newly created JsonArray.

+

[transfer full]

+

-

json_array_new ()

-
JsonArray *         json_array_new                      (void);
-

-Creates a new JsonArray. -

-
+

json_array_sized_new ()

+
JsonArray *
+json_array_sized_new (guint n_elements);
+

Creates a new JsonArray with n_elements + slots already allocated.

+

[constructor]

+
+

Parameters

+
--+++ - - + + +

Returns :

the newly created JsonArray -

n_elements

number of slots to pre-allocate

 
+
+

Returns

+

the newly created JsonArray.

+

[transfer full]

+
+

-

json_array_sized_new ()

-
JsonArray *         json_array_sized_new                (guint n_elements);
-

-Creates a new JsonArray with n_elements slots already allocated. -

-
+

json_array_ref ()

+
JsonArray *
+json_array_ref (JsonArray *array);
+

Increase by one the reference count of a JsonArray.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

n_elements :

number of slots to pre-allocate

Returns :

the newly created JsonArray -

array

a JsonArray

 
+
+

Returns

+

the passed JsonArray, with the reference count +increased by one.

+

[transfer none]

+
+

-

json_array_ref ()

-
JsonArray *         json_array_ref                      (JsonArray *array);
-

-Increase by one the reference count of a JsonArray. -

-
+

json_array_unref ()

+
void
+json_array_unref (JsonArray *array);
+

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.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

array :

a JsonArray -

Returns :

the passed JsonArray, with the reference count -increased by one.

array

a JsonArray

 
+

-

json_array_unref ()

-
void                json_array_unref                    (JsonArray *array);
-

-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. -

-
+

json_array_seal ()

+
void
+json_array_seal (JsonArray *array);
+

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.

+
+

Parameters

+
--+++ - - + + +

array :

a JsonArray -

array

a JsonArray

 
+

Since: 1.2

+
-

json_array_add_element ()

-
void                json_array_add_element              (JsonArray *array,
-                                                         JsonNode *node);
-

-Appends node inside array. The array will take ownership of the -JsonNode. -

-
+

json_array_is_immutable ()

+
gboolean
+json_array_is_immutable (JsonArray *array);
+

Check whether the given array + has been marked as immutable by calling +json_array_seal() on it.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

array :

a JsonArray -

node :

a JsonNode. [transfer full] -

array

a JsonArray

 
+
+

Returns

+

TRUE if the array +is immutable

+
+

Since: 1.2

+
-

json_array_get_element ()

-
JsonNode *          json_array_get_element              (JsonArray *array,
-                                                         guint index_);
-

-Retrieves the JsonNode containing the value of the element at index_ -inside a JsonArray. +

json_array_hash ()

+
guint
+json_array_hash (gconstpointer key);
+

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.

+
+

Parameters

+
+++++ + + + + + +

key

a JSON array to hash.

[type JsonArray]
+
+
+

Returns

+

hash value for key

-
+ +

Since: 1.2

+ +
+
+

json_array_equal ()

+
gboolean
+json_array_equal (gconstpointer a,
+                  gconstpointer b);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

array :

a JsonArray -

a

a JSON array.

[type JsonArray]

index_ :

the index of the element to retrieve

Returns :

a pointer to the JsonNode at the requested index. [transfer none] -

b

another JSON array.

[type JsonArray]
+
+

Returns

+

TRUE if a +and b +are equal; FALSE otherwise

+
+

Since: 1.2

+

-

json_array_dup_element ()

-
JsonNode *          json_array_dup_element              (JsonArray *array,
-                                                         guint index_);
-

-Retrieves a copy of the JsonNode containing the value of the -element at index_ inside a JsonArray -

-
+

json_array_add_element ()

+
void
+json_array_add_element (JsonArray *array,
+                        JsonNode *node);
+

Appends node + inside array +. The array will take ownership of the +JsonNode.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

array :

a JsonArray -

index_ :

the index of the element to retrieve

array

a JsonArray

 

Returns :

a copy of the JsonNode at the requested -index. Use json_node_free() when done. [transfer full] -

node

a JsonNode.

[transfer full]
-

Since 0.6

+

-

json_array_get_elements ()

-
GList *             json_array_get_elements             (JsonArray *array);
-

-Gets the elements of a JsonArray as a list of JsonNodes. -

-
+

json_array_get_element ()

+
JsonNode *
+json_array_get_element (JsonArray *array,
+                        guint index_);
+

Retrieves the JsonNode containing the value of the element at index_ + +inside a JsonArray.

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

Returns :

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. [element-type JsonNode][transfer container] -

index_

the index of the element to retrieve

 
+
+

Returns

+

a pointer to the JsonNode at the requested index.

+

[transfer none]

+
+
-

json_array_get_length ()

-
guint               json_array_get_length               (JsonArray *array);
-

-Retrieves the length of a JsonArray -

-
+

json_array_dup_element ()

+
JsonNode *
+json_array_dup_element (JsonArray *array,
+                        guint index_);
+

Retrieves a copy of the JsonNode containing the value of the +element at index_ + inside a JsonArray

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

Returns :

the length of the array

index_

the index of the element to retrieve

 
+
+

Returns

+

a copy of the JsonNode at the requested +index. Use json_node_unref() when done.

+

[transfer full]

+
+

Since: 0.6

+
-

json_array_remove_element ()

-
void                json_array_remove_element           (JsonArray *array,
-                                                         guint index_);
-

-Removes the JsonNode inside array at index_ freeing its allocated -resources. -

-
+

json_array_get_elements ()

+
GList *
+json_array_get_elements (JsonArray *array);
+

Gets the elements of a JsonArray as a list of JsonNode instances.

+
+

Parameters

+
+++++ + + + + + +

array

a JsonArray

 
+
+
+

Returns

+

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.

+

[element-type JsonNode][transfer container]

+
+ +
+
+

json_array_get_length ()

+
guint
+json_array_get_length (JsonArray *array);
+

Retrieves the length of a JsonArray

+
+

Parameters

+
+++++ + + + + + +

array

a JsonArray

 
+
+
+

Returns

+

the length of the array

+
+
+
+
+

json_array_remove_element ()

+
void
+json_array_remove_element (JsonArray *array,
+                           guint index_);
+

Removes the JsonNode inside array + at index_ + freeing its allocated +resources.

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

index_ :

the position of the element to be removed

index_

the position of the element to be removed

 
+

-

JsonArrayForeach ()

-
void                (*JsonArrayForeach)                 (JsonArray *array,
-                                                         guint index_,
-                                                         JsonNode *element_node,
-                                                         gpointer user_data);
-

-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. -

-
+

JsonArrayForeach ()

+
void
+(*JsonArrayForeach) (JsonArray *array,
+                     guint index_,
+                     JsonNode *element_node,
+                     gpointer user_data);
+

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 +.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + +

array :

the iterated JsonArray -

array

the iterated JsonArray

 

index_ :

the index of the element

index_

the index of the element

 

element_node :

a JsonNode containing the value at index_ -

element_node

a JsonNode containing the value at index_ +

 

user_data :

data passed to the function

user_data

data passed to the function

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_foreach_element ()

-
void                json_array_foreach_element          (JsonArray *array,
-                                                         JsonArrayForeach func,
-                                                         gpointer data);
-

-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 -from within the iterator func, but it is not safe to add or -remove elements from the array. -

-
+

json_array_foreach_element ()

+
void
+json_array_foreach_element (JsonArray *array,
+                            JsonArrayForeach func,
+                            gpointer data);
+

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 + +from within the iterator func +, but it is not safe to add or +remove elements from the array +.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

func :

the function to be called on each element. [scope call] -

func

the function to be called on each element.

[scope call]

data :

data to be passed to the function. [closure] -

data

data to be passed to the function.

[closure]
-

Since 0.8

+
+

Since: 0.8


-

json_array_add_array_element ()

-
void                json_array_add_array_element        (JsonArray *array,
-                                                         JsonArray *value);
-

-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() -

-
+

json_array_add_array_element ()

+
void
+json_array_add_array_element (JsonArray *array,
+                              JsonArray *value);
+

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()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

a JsonArray. [allow-none][transfer full] -

value

a JsonArray.

[allow-none][transfer full]
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_array_element ()

-
JsonArray *         json_array_get_array_element        (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the array from the element at index_ +

json_array_get_array_element ()

+
JsonArray *
+json_array_get_array_element (JsonArray *array,
+                              guint index_);
+

Conveniently retrieves the array from the element at index_ + inside array

-

-See also: json_array_get_element(), json_node_get_array() -

-
+

See also: json_array_get_element(), json_node_get_array()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

array :

a JsonArray -

array

a JsonArray

 

index_ :

the index of the element to retrieve

Returns :

the array. [transfer none] -

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the array.

+

[transfer none]

+
+

Since: 0.8


-

json_array_add_boolean_element ()

-
void                json_array_add_boolean_element      (JsonArray *array,
-                                                         gboolean value);
-

-Conveniently adds a boolean value into array +

json_array_add_boolean_element ()

+
void
+json_array_add_boolean_element (JsonArray *array,
+                                gboolean value);
+

Conveniently adds a boolean value + into array

-

-See also: json_array_add_element(), json_node_set_boolean() -

-
+

See also: json_array_add_element(), json_node_set_boolean()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

a boolean value

value

a boolean value

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_boolean_element ()

-
gboolean            json_array_get_boolean_element      (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the boolean value of the element at index_ +

json_array_get_boolean_element ()

+
gboolean
+json_array_get_boolean_element (JsonArray *array,
+                                guint index_);
+

Conveniently retrieves the boolean value of the element at index_ + inside array

-

-See also: json_array_get_element(), json_node_get_boolean() -

-
+

See also: json_array_get_element(), json_node_get_boolean()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

array :

a JsonArray -

index_ :

the index of the element to retrieve

array

a JsonArray

 

Returns :

the integer value

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the integer value

+
+

Since: 0.8


-

json_array_add_double_element ()

-
void                json_array_add_double_element       (JsonArray *array,
-                                                         gdouble value);
-

-Conveniently adds a floating point value into array -

-

-See also: json_array_add_element(), json_node_set_double() +

json_array_add_double_element ()

+
void
+json_array_add_double_element (JsonArray *array,
+                               gdouble value);
+

Conveniently adds a floating point value + into array

-
+

See also: json_array_add_element(), json_node_set_double()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

a floating point value

value

a floating point value

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_double_element ()

-
gdouble             json_array_get_double_element       (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the floating point value of the element at -index_ inside array -

-

-See also: json_array_get_element(), json_node_get_double() +

json_array_get_double_element ()

+
gdouble
+json_array_get_double_element (JsonArray *array,
+                               guint index_);
+

Conveniently retrieves the floating point value of the element at +index_ + inside array

-
+

See also: json_array_get_element(), json_node_get_double()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

array :

a JsonArray -

array

a JsonArray

 

index_ :

the index of the element to retrieve

Returns :

the floating point value

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the floating point value

+
+

Since: 0.8


-

json_array_add_int_element ()

-
void                json_array_add_int_element          (JsonArray *array,
-                                                         gint64 value);
-

-Conveniently adds an integer value into array +

json_array_add_int_element ()

+
void
+json_array_add_int_element (JsonArray *array,
+                            gint64 value);
+

Conveniently adds an integer value + into array

-

-See also: json_array_add_element(), json_node_set_int() -

-
+

See also: json_array_add_element(), json_node_set_int()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

an integer value

value

an integer value

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_int_element ()

-
gint64              json_array_get_int_element          (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the integer value of the element at index_ +

json_array_get_int_element ()

+
gint64
+json_array_get_int_element (JsonArray *array,
+                            guint index_);
+

Conveniently retrieves the integer value of the element at index_ + inside array

-

-See also: json_array_get_element(), json_node_get_int() -

-
+

See also: json_array_get_element(), json_node_get_int()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

array :

a JsonArray -

index_ :

the index of the element to retrieve

array

a JsonArray

 

Returns :

the integer value

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the integer value

+
+

Since: 0.8


-

json_array_add_null_element ()

-
void                json_array_add_null_element         (JsonArray *array);
-

-Conveniently adds a null element into array +

json_array_add_null_element ()

+
void
+json_array_add_null_element (JsonArray *array);
+

Conveniently adds a null element into array

-

-See also: json_array_add_element(), JSON_NODE_NULL -

-
+

See also: json_array_add_element(), JSON_NODE_NULL

+
+

Parameters

+
--+++ - - + + +

array :

a JsonArray -

array

a JsonArray

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_null_element ()

-
gboolean            json_array_get_null_element         (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves whether the element at index_ is set to null -

-

-See also: json_array_get_element(), JSON_NODE_TYPE(), JSON_NODE_NULL -

-
+

json_array_get_null_element ()

+
gboolean
+json_array_get_null_element (JsonArray *array,
+                             guint index_);
+

Conveniently retrieves whether the element at index_ + is set to null

+

See also: json_array_get_element(), JSON_NODE_TYPE(), JSON_NODE_NULL

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

array :

a JsonArray -

index_ :

the index of the element to retrieve

array

a JsonArray

 

Returns :

-TRUE if the element is null

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

TRUE if the element is null

+
+

Since: 0.8


-

json_array_add_object_element ()

-
void                json_array_add_object_element       (JsonArray *array,
-                                                         JsonObject *value);
-

-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() -

-
+

json_array_add_object_element ()

+
void
+json_array_add_object_element (JsonArray *array,
+                               JsonObject *value);
+

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()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

a JsonObject. [transfer full] -

value

a JsonObject.

[transfer full]
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_object_element ()

-
JsonObject *        json_array_get_object_element       (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the object from the element at index_ +

json_array_get_object_element ()

+
JsonObject *
+json_array_get_object_element (JsonArray *array,
+                               guint index_);
+

Conveniently retrieves the object from the element at index_ + inside array

-

-See also: json_array_get_element(), json_node_get_object() -

-
+

See also: json_array_get_element(), json_node_get_object()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

array :

a JsonArray -

index_ :

the index of the element to retrieve

array

a JsonArray

 

Returns :

the object. [transfer none] -

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the object.

+

[transfer none]

+
+

Since: 0.8


-

json_array_add_string_element ()

-
void                json_array_add_string_element       (JsonArray *array,
-                                                         const gchar *value);
-

-Conveniently adds a string value into array -

-

-See also: json_array_add_element(), json_node_set_string() +

json_array_add_string_element ()

+
void
+json_array_add_string_element (JsonArray *array,
+                               const gchar *value);
+

Conveniently adds a string value + into array

-
+

See also: json_array_add_element(), json_node_set_string()

+
+

Parameters

+
--+++ - - + + + - - + + +

array :

a JsonArray -

array

a JsonArray

 

value :

a string value

value

a string value

 
-

Since 0.8

+
+

Since: 0.8


-

json_array_get_string_element ()

-
const gchar *       json_array_get_string_element       (JsonArray *array,
-                                                         guint index_);
-

-Conveniently retrieves the string value of the element at index_ +

json_array_get_string_element ()

+
const gchar *
+json_array_get_string_element (JsonArray *array,
+                               guint index_);
+

Conveniently retrieves the string value of the element at index_ + inside array

-

-See also: json_array_get_element(), json_node_get_string() -

-
+

See also: json_array_get_element(), json_node_get_string()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

array :

a JsonArray -

array

a JsonArray

 

index_ :

the index of the element to retrieve

Returns :

the string value; the returned string is owned by -the JsonArray and should not be modified or freed

index_

the index of the element to retrieve

 
-

Since 0.8

+
+
+

Returns

+

the string value; the returned string is owned by +the JsonArray and should not be modified or freed

+
+

Since: 0.8

+ + +
+

Types and Values

+
+

JsonArray

+
typedef struct _JsonArray JsonArray;
+

A JSON array type. The contents of the JsonArray structure are private +and should only be accessed by the provided API

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/json-glib-JSON-GVariant-Integration.html b/doc/reference/html/json-glib-JSON-GVariant-Integration.html index d13ddbc..c931bfb 100644 --- a/doc/reference/html/json-glib-JSON-GVariant-Integration.html +++ b/doc/reference/html/json-glib-JSON-GVariant-Integration.html @@ -2,30 +2,26 @@ -JSON GVariant Integration +JSON GVariant Integration: JSON-GLib Reference Manual - - + + - - - - - - - - - - + + + + + + +
@@ -33,262 +29,289 @@

JSON GVariant Integration

JSON GVariant Integration — Serialize and deserialize GVariant types

- +
-
-

Synopsis

-
JsonNode *          json_gvariant_serialize             (GVariant *variant);
-gchar *             json_gvariant_serialize_data        (GVariant *variant,
-                                                         gsize *length);
-GVariant *          json_gvariant_deserialize           (JsonNode *json_node,
-                                                         const gchar *signature,
-                                                         GError **error);
-GVariant *          json_gvariant_deserialize_data      (const gchar *json,
-                                                         gssize length,
-                                                         const gchar *signature,
-                                                         GError **error);
-
-
-

Description

-

-Use json_gvariant_serialize() and json_gvariant_serialize_data() to -convert from any GVariant value to a JsonNode tree or its string -representation. -

-

-Use json_gvariant_deserialize() and json_gvariant_deserialize_data() to -obtain the GVariant value from a JsonNode tree or directly from a JSON -string. -

-

-Since many GVariant data types cannot be directly represented as -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: -

-

-

-
-

Table 2. Default JSON to GVariant conversion (without signature constrains)

-
+

Functions

+
--++ - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - +
JSONGVariant
stringstring (s)
int64int64 (x)
booleanboolean (b)
doubledouble (d) +JsonNode * + +json_gvariant_serialize () +
arrayarray of variants (av) +gchar * + +json_gvariant_serialize_data () +
objectdictionary of string-variant (a{sv}) +GVariant * + +json_gvariant_deserialize () +
nullmaybe variant (mv) +GVariant * + +json_gvariant_deserialize_data () +
-


-

+
+

Description

+

Use json_gvariant_serialize() and json_gvariant_serialize_data() to +convert from any GVariant value to a JsonNode tree or its string +representation.

+

Use json_gvariant_deserialize() and json_gvariant_deserialize_data() to +obtain the GVariant value from a JsonNode tree or directly from a JSON +string.

+

Since many GVariant data types cannot be directly represented as +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 +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).

+
+
+

Objects

+

JSON objects map to GVariant dictionaries of string to variants (a{sv}).

+
+
+

Null values

+

JSON null values map to GVariant maybe variants (mv).

+
-

Details

+

Functions

-

json_gvariant_serialize ()

-
JsonNode *          json_gvariant_serialize             (GVariant *variant);
-

-Converts variant to a JSON tree. -

-
+

json_gvariant_serialize ()

+
JsonNode *
+json_gvariant_serialize (GVariant *variant);
+

Converts variant + to a JSON tree.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

variant :

A GVariant to convert

Returns :

A JsonNode representing the root of the -JSON data structure obtained from variant. [transfer full] -

variant

A GVariant to convert

 
-

Since 0.14

+
+
+

Returns

+

A JsonNode representing the root of the +JSON data structure obtained from variant +.

+

[transfer full]

+
+

Since: 0.14


-

json_gvariant_serialize_data ()

-
gchar *             json_gvariant_serialize_data        (GVariant *variant,
-                                                         gsize *length);
-

-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. -

-
+

json_gvariant_serialize_data ()

+
gchar *
+json_gvariant_serialize_data (GVariant *variant,
+                              gsize *length);
+

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.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

variant :

A GVariant to convert

length :

Return location for the length of the returned -string, or NULL. [out][allow-none] -

variant

A GVariant to convert

 

Returns :

The JSON encoded string corresponding to -variant. [transfer full] -

length

Return location for the length of the returned +string, or NULL.

[out][allow-none]
-

Since 0.14

+
+
+

Returns

+

The JSON encoded string corresponding to +variant +.

+

[transfer full]

+
+

Since: 0.14


-

json_gvariant_deserialize ()

-
GVariant *          json_gvariant_deserialize           (JsonNode *json_node,
-                                                         const gchar *signature,
-                                                         GError **error);
-

-Converts a JSON data structure to a GVariant value using signature to +

json_gvariant_deserialize ()

+
GVariant *
+json_gvariant_deserialize (JsonNode *json_node,
+                           const gchar *signature,
+                           GError **error);
+

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. -

-

-If signature is not NULL but does not represent a valid GVariant type +is guaranteed to conform to signature +.

+

If signature + is not NULL but does not represent a valid GVariant type string, NULL is returned and error is set to G_IO_ERROR_INVALID_ARGUMENT. -If a signature is provided but the JSON structure cannot be mapped to it, +If a signature + is provided but the JSON structure cannot be mapped to it, NULL is returned and error is set to G_IO_ERROR_INVALID_DATA. -If signature is NULL, the conversion is done based strictly on the types -in the JSON nodes. -

-

-The returned variant has a floating reference that will need to be sunk -by the caller code. -

-
+If signature + is NULL, the conversion is done based strictly on the types +in the JSON nodes.

+

The returned variant has a floating reference that will need to be sunk +by the caller code.

+
+

Parameters

+
--+++ - - + + + - - + + + - - - - - - + + +

json_node :

A JsonNode to convert

json_node

A JsonNode to convert

 

signature :

A valid GVariant type string, or NULL. [allow-none] -

signature

A valid GVariant type string, or NULL.

[allow-none]

error :

A pointer to a GError -

Returns :

A newly created, floating GVariant -compliant with signature, or NULL on error. [transfer none] -

error

A pointer to a GError

 
-

Since 0.14

+
+
+

Returns

+

A newly created, floating GVariant +compliant with signature +, or NULL on error.

+

[transfer none]

+
+

Since: 0.14


-

json_gvariant_deserialize_data ()

-
GVariant *          json_gvariant_deserialize_data      (const gchar *json,
-                                                         gssize length,
-                                                         const gchar *signature,
-                                                         GError **error);
-

-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. -

-

-The returned variant has a floating reference that will need to be sunk -by the caller code. -

-
+

json_gvariant_deserialize_data ()

+
GVariant *
+json_gvariant_deserialize_data (const gchar *json,
+                                gssize length,
+                                const gchar *signature,
+                                GError **error);
+

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.

+

The returned variant has a floating reference that will need to be sunk +by the caller code.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

json :

A JSON data string

length :

The length of json, or -1 if NULL-terminated

json

A JSON data string

 

signature :

A valid GVariant type string, or NULL. [allow-none] -

length

The length of json +, or -1 if NULL-terminated

 

error :

A pointer to a GError -

signature

A valid GVariant type string, or NULL.

[allow-none]

Returns :

A newly created, floating GVariant compliant -with signature, or NULL on error. [transfer none] -

error

A pointer to a GError

 
-

Since 0.14

+
+

Returns

+

A newly created, floating GVariant compliant +with signature +, or NULL on error.

+

[transfer none]

+
+

Since: 0.14

+ + +
+

Types and Values

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/json-glib-JSON-Node.html b/doc/reference/html/json-glib-JSON-Node.html index 821b80c..b87deae 100644 --- a/doc/reference/html/json-glib-JSON-Node.html +++ b/doc/reference/html/json-glib-JSON-Node.html @@ -2,30 +2,27 @@ -JSON Node +JSON Node: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,1356 +30,2186 @@

JSON Node

JSON Node — Node in a JSON object model

- +
-
-

Synopsis

-
enum                JsonNodeType;
-                    JsonNode;
-#define             JSON_NODE_TYPE                      (node)
-#define             JSON_NODE_HOLDS                     (node,
-                                                         t)
-#define             JSON_NODE_HOLDS_VALUE               (node)
-#define             JSON_NODE_HOLDS_OBJECT              (node)
-#define             JSON_NODE_HOLDS_ARRAY               (node)
-#define             JSON_NODE_HOLDS_NULL                (node)
-JsonNode *          json_node_alloc                     (void);
-JsonNode *          json_node_init                      (JsonNode *node,
-                                                         JsonNodeType type);
-JsonNode *          json_node_init_int                  (JsonNode *node,
-                                                         gint64 value);
-JsonNode *          json_node_init_double               (JsonNode *node,
-                                                         gdouble value);
-JsonNode *          json_node_init_boolean              (JsonNode *node,
-                                                         gboolean value);
-JsonNode *          json_node_init_string               (JsonNode *node,
-                                                         const char *value);
-JsonNode *          json_node_init_null                 (JsonNode *node);
-JsonNode *          json_node_init_object               (JsonNode *node,
-                                                         JsonObject *object);
-JsonNode *          json_node_init_array                (JsonNode *node,
-                                                         JsonArray *array);
-JsonNode *          json_node_new                       (JsonNodeType type);
-JsonNode *          json_node_copy                      (JsonNode *node);
-void                json_node_free                      (JsonNode *node);
-
-void                json_node_set_array                 (JsonNode *node,
-                                                         JsonArray *array);
-void                json_node_take_array                (JsonNode *node,
-                                                         JsonArray *array);
-JsonArray *         json_node_get_array                 (JsonNode *node);
-JsonArray *         json_node_dup_array                 (JsonNode *node);
-
-void                json_node_set_object                (JsonNode *node,
-                                                         JsonObject *object);
-void                json_node_take_object               (JsonNode *node,
-                                                         JsonObject *object);
-JsonObject *        json_node_get_object                (JsonNode *node);
-JsonObject *        json_node_dup_object                (JsonNode *node);
-
-void                json_node_set_value                 (JsonNode *node,
-                                                         const GValue *value);
-void                json_node_get_value                 (JsonNode *node,
-                                                         GValue *value);
-void                json_node_set_boolean               (JsonNode *node,
-                                                         gboolean value);
-gboolean            json_node_get_boolean               (JsonNode *node);
-void                json_node_set_double                (JsonNode *node,
-                                                         gdouble value);
-gdouble             json_node_get_double                (JsonNode *node);
-void                json_node_set_int                   (JsonNode *node,
-                                                         gint64 value);
-gint64              json_node_get_int                   (JsonNode *node);
-void                json_node_set_string                (JsonNode *node,
-                                                         const gchar *value);
-const gchar *       json_node_get_string                (JsonNode *node);
-gchar *             json_node_dup_string                (JsonNode *node);
-
-void                json_node_set_parent                (JsonNode *node,
-                                                         JsonNode *parent);
-JsonNode *          json_node_get_parent                (JsonNode *node);
-const gchar *       json_node_type_name                 (JsonNode *node);
-GType               json_node_get_value_type            (JsonNode *node);
-JsonNodeType        json_node_get_node_type             (JsonNode *node);
-gboolean            json_node_is_null                   (JsonNode *node);
-
-
-
-

Description

-

-A JsonNode 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). -

-

-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 JSON_NODE_TYPE macro. If the node contains a fundamental -type you can retrieve a copy of the GValue holding it with the -json_node_get_value() function, and then use the GValue API to extract -the data; if the node contains a complex type you can retrieve the -JsonObject or the JsonArray using json_node_get_object() or -json_node_get_array() respectively, and then retrieve the nodes -they contain. -

-
-

Details

-
-

enum JsonNodeType

-
typedef enum {
-  JSON_NODE_OBJECT,
-  JSON_NODE_ARRAY,
-  JSON_NODE_VALUE,
-  JSON_NODE_NULL
-} JsonNodeType;
-
-

-Indicates the content of a JsonNode. -

-
+

Functions

+
--++ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - + - - +

JSON_NODE_OBJECT

The node contains a JsonObject +#define +JSON_NODE_TYPE() +
#define +JSON_NODE_HOLDS() +
#define +JSON_NODE_HOLDS_VALUE() +
#define +JSON_NODE_HOLDS_OBJECT() +
#define +JSON_NODE_HOLDS_ARRAY() +
#define +JSON_NODE_HOLDS_NULL() +
+JsonNode * + +json_node_alloc () +
+JsonNode * + +json_node_init () +
+JsonNode * + +json_node_init_int () +
+JsonNode * + +json_node_init_double () +
+JsonNode * + +json_node_init_boolean () +
+JsonNode * + +json_node_init_string () +
+JsonNode * + +json_node_init_null () +
+JsonNode * + +json_node_init_object () +
+JsonNode * + +json_node_init_array () +
+JsonNode * + +json_node_new () +
+JsonNode * + +json_node_copy () +
+void + +json_node_free () +
+JsonNode * + +json_node_ref () +
+void + +json_node_unref () +
+gboolean + +json_node_is_immutable () +
+void + +json_node_seal () +
+guint + +json_node_hash () +
+gboolean + +json_node_equal () +
+void + +json_node_set_array () +
+void + +json_node_take_array () +
+JsonArray * + +json_node_get_array () +
+JsonArray * + +json_node_dup_array () +
+void + +json_node_set_object () +
+void + +json_node_take_object () +
+JsonObject * + +json_node_get_object () +
+JsonObject * + +json_node_dup_object () +
+void + +json_node_set_value () +
+void + +json_node_get_value () +
+void + +json_node_set_boolean () +
+gboolean + +json_node_get_boolean () +
+void + +json_node_set_double () +
+gdouble + +json_node_get_double () +
+void + +json_node_set_int () +
+gint64 + +json_node_get_int () +
+void + +json_node_set_string () +
const gchar * + +json_node_get_string () +
+gchar * + +json_node_dup_string () +
+void + +json_node_set_parent () +
+JsonNode * + +json_node_get_parent () +
const gchar * + +json_node_type_name () +
+GType + +json_node_get_value_type () +
+JsonNodeType + +json_node_get_node_type () +
+gboolean + +json_node_is_null ()

JSON_NODE_ARRAY

The node contains a JsonArray + +guint + +json_string_hash ()

JSON_NODE_VALUE

The node contains a fundamental type + +gboolean + +json_string_equal ()

JSON_NODE_NULL

Special type, for nodes containing null + +gint + +json_string_compare ()
-
-
-

JsonNode

-
typedef struct _JsonNode JsonNode;
-

-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. -

+
+

Types and Values

+
++++ + + + + + + + + + + +
enumJsonNodeType
 JsonNode
-
+
+

Object Hierarchy

+
    GBoxed
+    ╰── JsonNode
+
+
+
+

Description

+

A JsonNode 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).

+

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 JSON_NODE_TYPE macro. If the node contains a fundamental +type you can retrieve a copy of the GValue holding it with the +json_node_get_value() function, and then use the GValue API to extract +the data; if the node contains a complex type you can retrieve the +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.

+
+
+

Functions

JSON_NODE_TYPE()

#define JSON_NODE_TYPE(node)    (json_node_get_node_type ((node)))
 
-

-Evaluates to the JsonNodeType contained by node +

Evaluates to the JsonNodeType contained by node

-
+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
+

JSON_NODE_HOLDS()

#define JSON_NODE_HOLDS(node,t)         (json_node_get_node_type ((node)) == (t))
 
-

-Evaluates to TRUE if the node holds type t +

Evaluates to TRUE if the node + holds type t

-
+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode

 

t :

a JsonNodeType -

t

a JsonNodeType

 
-

Since 0.10

+
+

Since: 0.10


JSON_NODE_HOLDS_VALUE()

#define JSON_NODE_HOLDS_VALUE(node)     (JSON_NODE_HOLDS ((node), JSON_NODE_VALUE))
 
-

-Evaluates to TRUE if node holds a JSON_NODE_VALUE -

-
+

Evaluates to TRUE if node + holds a JSON_NODE_VALUE

+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
-

Since 0.10

+
+

Since: 0.10


JSON_NODE_HOLDS_OBJECT()

#define JSON_NODE_HOLDS_OBJECT(node)    (JSON_NODE_HOLDS ((node), JSON_NODE_OBJECT))
 
-

-Evaluates to TRUE if node holds a JSON_NODE_OBJECT -

-
+

Evaluates to TRUE if node + holds a JSON_NODE_OBJECT

+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
-

Since 0.10

+
+

Since: 0.10


JSON_NODE_HOLDS_ARRAY()

#define JSON_NODE_HOLDS_ARRAY(node)     (JSON_NODE_HOLDS ((node), JSON_NODE_ARRAY))
 
-

-Evaluates to TRUE if node holds a JSON_NODE_ARRAY -

-
+

Evaluates to TRUE if node + holds a JSON_NODE_ARRAY

+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
-

Since 0.10

+
+

Since: 0.10


JSON_NODE_HOLDS_NULL()

#define JSON_NODE_HOLDS_NULL(node)      (JSON_NODE_HOLDS ((node), JSON_NODE_NULL))
 
-

-Evaluates to TRUE if node holds a JSON_NODE_NULL -

-
+

Evaluates to TRUE if node + holds a JSON_NODE_NULL

+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
-

Since 0.10

+
+

Since: 0.10


-

json_node_alloc ()

-
JsonNode *          json_node_alloc                     (void);
-

-Allocates a new JsonNode. Use json_node_init() and its variants -to initialize the returned value. -

-
---- - - - - -

Returns :

the newly allocated JsonNode. Use -json_node_free() to free the resources allocated by this function. [transfer full] -
-

Since 0.16

+

json_node_alloc ()

+
JsonNode *
+json_node_alloc (void);
+

Allocates a new JsonNode. Use json_node_init() and its variants +to initialize the returned value.

+

[constructor]

+
+

Returns

+

the newly allocated JsonNode. Use +json_node_free() to free the resources allocated by this function.

+

[transfer full]

+
+

Since: 0.16


-

json_node_init ()

-
JsonNode *          json_node_init                      (JsonNode *node,
-                                                         JsonNodeType type);
-

-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. -

-
+

json_node_init ()

+
JsonNode *
+json_node_init (JsonNode *node,
+                JsonNodeType type);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

node :

the JsonNode to initialize

node

the JsonNode to initialize

 

type :

the type of JSON node to initialize node to

Returns :

the initialized JsonNode. [transfer none] -

type

the type of JSON node to initialize node +to

 
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_int ()

-
JsonNode *          json_node_init_int                  (JsonNode *node,
-                                                         gint64 value);
-

-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. -

-
+

json_node_init_int ()

+
JsonNode *
+json_node_init_int (JsonNode *node,
+                    gint64 value);
+

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.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

node :

the JsonNode to initialize

value :

an integer

node

the JsonNode to initialize

 

Returns :

the initialized JsonNode. [transfer none] -

value

an integer

 
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_double ()

-
JsonNode *          json_node_init_double               (JsonNode *node,
-                                                         gdouble value);
-

-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. -

-
+

json_node_init_double ()

+
JsonNode *
+json_node_init_double (JsonNode *node,
+                       gdouble value);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

node :

the JsonNode to initialize

node

the JsonNode to initialize

 

value :

a floating point value

Returns :

the initialized JsonNode. [transfer none] -

value

a floating point value

 
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_boolean ()

-
JsonNode *          json_node_init_boolean              (JsonNode *node,
-                                                         gboolean value);
-

-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. -

-
+

json_node_init_boolean ()

+
JsonNode *
+json_node_init_boolean (JsonNode *node,
+                        gboolean value);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

node :

the JsonNode to initialize

node

the JsonNode to initialize

 

value :

a boolean value

Returns :

the initialized JsonNode. [transfer none] -

value

a boolean value

 
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_string ()

-
JsonNode *          json_node_init_string               (JsonNode *node,
-                                                         const char *value);
-

-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. -

-
+

json_node_init_string ()

+
JsonNode *
+json_node_init_string (JsonNode *node,
+                       const char *value);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

node :

the JsonNode to initialize

node

the JsonNode to initialize

 

value :

a string value. [allow-none] -

Returns :

the initialized JsonNode. [transfer none] -

value

a string value.

[allow-none]
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_null ()

-
JsonNode *          json_node_init_null                 (JsonNode *node);
-

-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. -

-
+

json_node_init_null ()

+
JsonNode *
+json_node_init_null (JsonNode *node);
+

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.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

the JsonNode to initialize

Returns :

the initialized JsonNode. [transfer none] -

node

the JsonNode to initialize

 
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_object ()

-
JsonNode *          json_node_init_object               (JsonNode *node,
-                                                         JsonObject *object);
-

-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. -

-
+

json_node_init_object ()

+
JsonNode *
+json_node_init_object (JsonNode *node,
+                       JsonObject *object);
+

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.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

node :

the JsonNode to initialize

node

the JsonNode to initialize

 

object :

the JsonObject to initialize node with, or NULL. [allow-none] -

Returns :

the initialized JsonNode. [transfer none] -

object

the JsonObject to initialize node +with, or NULL.

[allow-none]
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_init_array ()

-
JsonNode *          json_node_init_array                (JsonNode *node,
-                                                         JsonArray *array);
-

-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. -

-
+

json_node_init_array ()

+
JsonNode *
+json_node_init_array (JsonNode *node,
+                      JsonArray *array);
+

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.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

node :

the JsonNode to initialize

array :

the JsonArray to initialize node with, or NULL. [allow-none] -

node

the JsonNode to initialize

 

Returns :

the initialized JsonNode. [transfer none] -

array

the JsonArray to initialize node +with, or NULL.

[allow-none]
-

Since 0.16

+
+
+

Returns

+

the initialized JsonNode.

+

[transfer none]

+
+

Since: 0.16


-

json_node_new ()

-
JsonNode *          json_node_new                       (JsonNodeType type);
-

-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: -

-

-

+

json_node_new ()

+
JsonNode *
+json_node_new (JsonNodeType type);
+

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:

- +
1
return json_node_init (json_node_alloc (), type);
json_node_init (json_node_alloc (), type);
- -

-

-
+ +

+

[constructor]

+
+

Parameters

+
+++++ + + + + + +

type

a JsonNodeType

 
+
+
+

Returns

+

the newly created JsonNode.

+

[transfer full]

+
+ +
+
+

json_node_copy ()

+
JsonNode *
+json_node_copy (JsonNode *node);
+

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.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode

 
+
+
+

Returns

+

the copied JsonNode.

+

[transfer full]

+
+
+
+
+

json_node_free ()

+
void
+json_node_free (JsonNode *node);
+

Frees the resources allocated by node +.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode

 
+
+
+
+
+

json_node_ref ()

+
JsonNode *
+json_node_ref (JsonNode *node);
+

Increment the reference count of node +.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode

 
+
+
+

Returns

+

a pointer to node +.

+

[transfer full]

+
+

Since: 1.2

+
+
+
+

json_node_unref ()

+
void
+json_node_unref (JsonNode *node);
+

Decrement the reference count of node +. If it reaches zero, the node is +freed.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode.

[transfer full]
+
+

Since: 1.2

+
+
+
+

json_node_is_immutable ()

+
gboolean
+json_node_is_immutable (JsonNode *node);
+

Check whether the given node + has been marked as immutable by calling +json_node_seal() on it.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode

 
+
+
+

Returns

+

TRUE if the node +is immutable

+
+

Since: 1.2

+
+
+
+

json_node_seal ()

+
void
+json_node_seal (JsonNode *node);
+

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.

+
+

Parameters

+
+++++ + + + + + +

node

a JsonNode

 
+
+

Since: 1.2

+
+
+
+

json_node_hash ()

+
guint
+json_node_hash (gconstpointer key);
+

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).

+
+

Parameters

+
+++++ + + + + + +

key

a JSON node to hash.

[type JsonNode]
+
+
+

Returns

+

hash value for key +

+
+

Since: 1.2

+
+
+
+

json_node_equal ()

+
gboolean
+json_node_equal (gconstpointer a,
+                 gconstpointer b);
+

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.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

a

a JSON node.

[type JsonNode]

b

another JSON node.

[type JsonNode]
+
+
+

Returns

+

TRUE if a +and b +are equal; FALSE otherwise

+
+

Since: 1.2

+
+
+
+

json_node_set_array ()

+
void
+json_node_set_array (JsonNode *node,
+                     JsonArray *array);
+

Sets array + inside node + and increases the JsonArray reference count.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

type :

a JsonNodeType -

node

a JsonNode initialized to JSON_NODE_ARRAY

 

Returns :

the newly created JsonNode -

array

a JsonArray

 
+

-

json_node_copy ()

-
JsonNode *          json_node_copy                      (JsonNode *node);
-

-Copies node. If the node contains complex data types then the reference -count of the objects is increased. -

-
+

json_node_take_array ()

+
void
+json_node_take_array (JsonNode *node,
+                      JsonArray *array);
+

Sets array + into node + without increasing the JsonArray reference count.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode initialized to JSON_NODE_ARRAY

 

Returns :

the copied JsonNode. [transfer full] -

array

a JsonArray.

[transfer full]
+
-

json_node_free ()

-
void                json_node_free                      (JsonNode *node);
-

-Frees the resources allocated by node. -

-
+

json_node_get_array ()

+
JsonArray *
+json_node_get_array (JsonNode *node);
+

Retrieves the JsonArray stored inside a JsonNode

+
+

Parameters

+
--+++ - - + + +

node :

a JsonNode -

node

a JsonNode

 
+
+

Returns

+

the JsonArray.

+

[transfer none]

+
+
-

json_node_set_array ()

-
void                json_node_set_array                 (JsonNode *node,
-                                                         JsonArray *array);
-

-Sets array inside node and increases the JsonArray reference count -

-
+

json_node_dup_array ()

+
JsonArray *
+json_node_dup_array (JsonNode *node);
+

Retrieves the JsonArray stored inside a JsonNode and returns it +with its reference count increased by one.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode initialized to JSON_NODE_ARRAY -

array :

a JsonArray -

node

a JsonNode

 
+
+

Returns

+

the JsonArray with its reference +count increased.

+

[transfer full]

+
+
-

json_node_take_array ()

-
void                json_node_take_array                (JsonNode *node,
-                                                         JsonArray *array);
-

-Sets array into node without increasing the JsonArray reference count. -

-
+

json_node_set_object ()

+
void
+json_node_set_object (JsonNode *node,
+                      JsonObject *object);
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode initialized to JSON_NODE_ARRAY -

node

a JsonNode initialized to JSON_NODE_OBJECT

 

array :

a JsonArray. [transfer full] -

object

a JsonObject.

[nullable]
+
-

json_node_get_array ()

-
JsonArray *         json_node_get_array                 (JsonNode *node);
-

-Retrieves the JsonArray stored inside a JsonNode -

-
+

json_node_take_object ()

+
void
+json_node_take_object (JsonNode *node,
+                       JsonObject *object);
+

Sets object + inside node +. The reference count of object + is not increased.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode initialized to JSON_NODE_OBJECT

 

Returns :

the JsonArray. [transfer none] -

object

a JsonObject.

[transfer full]
+
-

json_node_dup_array ()

-
JsonArray *         json_node_dup_array                 (JsonNode *node);
-

-Retrieves the JsonArray stored inside a JsonNode and returns it -with its reference count increased by one. -

-
+

json_node_get_object ()

+
JsonObject *
+json_node_get_object (JsonNode *node);
+

Retrieves the JsonObject stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode -

Returns :

the JsonArray with its reference -count increased. [transfer full] -

node

a JsonNode

 
+
+

Returns

+

the JsonObject.

+

[transfer none]

+
+
-

json_node_set_object ()

-
void                json_node_set_object                (JsonNode *node,
-                                                         JsonObject *object);
-

-Sets objects inside node. The reference count of object is increased. -

-
+

json_node_dup_object ()

+
JsonObject *
+json_node_dup_object (JsonNode *node);
+

Retrieves the JsonObject inside node +. The reference count of +the returned object is increased.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode initialized to JSON_NODE_OBJECT -

object :

a JsonObject -

node

a JsonNode

 
+
+

Returns

+

the JsonObject.

+

[transfer full]

+
+
-

json_node_take_object ()

-
void                json_node_take_object               (JsonNode *node,
-                                                         JsonObject *object);
-

-Sets object inside node. The reference count of object is not increased. -

-
+

json_node_set_value ()

+
void
+json_node_set_value (JsonNode *node,
+                     const GValue *value);
+

Sets value + inside node +. The passed GValue is copied into the JsonNode.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode initialized to JSON_NODE_OBJECT -

node

a JsonNode initialized to JSON_NODE_VALUE

 

object :

a JsonObject. [transfer full] -

value

the GValue to set

 
+
-

json_node_get_object ()

-
JsonObject *        json_node_get_object                (JsonNode *node);
-

-Retrieves the JsonObject stored inside a JsonNode -

-
+

json_node_get_value ()

+
void
+json_node_get_value (JsonNode *node,
+                     GValue *value);
+

Retrieves a value from a JsonNode and copies into value +. When done +using it, call g_value_unset() on the GValue.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode

 

Returns :

the JsonObject. [transfer none] -

value

return location for an uninitialized value.

[out caller-allocates]
+
-

json_node_dup_object ()

-
JsonObject *        json_node_dup_object                (JsonNode *node);
-

-Retrieves the JsonObject inside node. The reference count of -the returned object is increased. -

-
+

json_node_set_boolean ()

+
void
+json_node_set_boolean (JsonNode *node,
+                       gboolean value);
+

Sets value + as the boolean content of the node +, replacing any existing +content.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode of type JSON_NODE_VALUE

 

Returns :

the JsonObject. [transfer full] -

value

a boolean value

 
+
-

json_node_set_value ()

-
void                json_node_set_value                 (JsonNode *node,
-                                                         const GValue *value);
-

-Sets value inside node. The passed GValue is copied into the JsonNode -

-
+

json_node_get_boolean ()

+
gboolean
+json_node_get_boolean (JsonNode *node);
+

Gets the boolean value stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode initialized to JSON_NODE_VALUE -

value :

the GValue to set

node

a JsonNode of type JSON_NODE_VALUE

 
+
+

Returns

+

a boolean value.

+
+
-

json_node_get_value ()

-
void                json_node_get_value                 (JsonNode *node,
-                                                         GValue *value);
-

-Retrieves a value from a JsonNode and copies into value. When done -using it, call g_value_unset() on the GValue. -

-
+

json_node_set_double ()

+
void
+json_node_set_double (JsonNode *node,
+                      gdouble value);
+

Sets value + as the double content of the node +, replacing any existing +content.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

node

a JsonNode of type JSON_NODE_VALUE

 

value :

return location for an uninitialized value. [out caller-allocates] -

value

a double value

 
+
-

json_node_set_boolean ()

-
void                json_node_set_boolean               (JsonNode *node,
-                                                         gboolean value);
-

-Sets value as the boolean content of the node, replacing any existing -content. -

-
+

json_node_get_double ()

+
gdouble
+json_node_get_double (JsonNode *node);
+

Gets the double value stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

value :

a boolean value

node

a JsonNode of type JSON_NODE_VALUE

 
+
+

Returns

+

a double value.

+
+
-

json_node_get_boolean ()

-
gboolean            json_node_get_boolean               (JsonNode *node);
-

-Gets the boolean value stored inside a JsonNode -

-
+

json_node_set_int ()

+
void
+json_node_set_int (JsonNode *node,
+                   gint64 value);
+

Sets value + as the integer content of the node +, replacing any existing +content.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode of type JSON_NODE_VALUE -

node

a JsonNode of type JSON_NODE_VALUE

 

Returns :

a boolean value.

value

an integer value

 
+
-

json_node_set_double ()

-
void                json_node_set_double                (JsonNode *node,
-                                                         gdouble value);
-

-Sets value as the double content of the node, replacing any existing -content. -

-
+

json_node_get_int ()

+
gint64
+json_node_get_int (JsonNode *node);
+

Gets the integer value stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

value :

a double value

node

a JsonNode of type JSON_NODE_VALUE

 
+
+

Returns

+

an integer value.

+
+
-

json_node_get_double ()

-
gdouble             json_node_get_double                (JsonNode *node);
-

-Gets the double value stored inside a JsonNode -

-
+

json_node_set_string ()

+
void
+json_node_set_string (JsonNode *node,
+                      const gchar *value);
+

Sets value + as the string content of the node +, replacing any existing +content.

+

It is an error to call this on an immutable node.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode of type JSON_NODE_VALUE -

node

a JsonNode initialized to JSON_NODE_VALUE

 

Returns :

a double value.

value

a string value

 
+
-

json_node_set_int ()

-
void                json_node_set_int                   (JsonNode *node,
-                                                         gint64 value);
-

-Sets value as the integer content of the node, replacing any existing -content. -

-
+

json_node_get_string ()

+
const gchar *
+json_node_get_string (JsonNode *node);
+

Gets the string value stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

value :

an integer value

node

a JsonNode of type JSON_NODE_VALUE

 
+
+

Returns

+

a string value.

+
+
-

json_node_get_int ()

-
gint64              json_node_get_int                   (JsonNode *node);
-

-Gets the integer value stored inside a JsonNode -

-
+

json_node_dup_string ()

+
gchar *
+json_node_dup_string (JsonNode *node);
+

Gets a copy of the string value stored inside a JsonNode

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

Returns :

an integer value.

node

a JsonNode of type JSON_NODE_VALUE

 
+
+

Returns

+

a newly allocated string containing a copy +of the JsonNode contents. Use g_free() to free the allocated resources.

+

[transfer full]

+
+
-

json_node_set_string ()

-
void                json_node_set_string                (JsonNode *node,
-                                                         const gchar *value);
-

-Sets value as the string content of the node, replacing any existing -content. -

-
+

json_node_set_parent ()

+
void
+json_node_set_parent (JsonNode *node,
+                      JsonNode *parent);
+

Sets the parent JsonNode of node +.

+

It is an error to call this with an immutable parent +. node + may be +immutable.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode initialized to JSON_NODE_VALUE -

node

a JsonNode

 

value :

a string value

parent

the parent JsonNode of node +.

[transfer none]
+

Since: 0.8

+
-

json_node_get_string ()

-
const gchar *       json_node_get_string                (JsonNode *node);
-

-Gets the string value stored inside a JsonNode -

-
+

json_node_get_parent ()

+
JsonNode *
+json_node_get_parent (JsonNode *node);
+

Retrieves the parent JsonNode of node +.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

Returns :

a string value.

node

a JsonNode

 
+
+

Returns

+

the parent node, or NULL if node +is +the root node.

+

[transfer none]

+
+
-

json_node_dup_string ()

-
gchar *             json_node_dup_string                (JsonNode *node);
-

-Gets a copy of the string value stored inside a JsonNode -

-
+

json_node_type_name ()

+
const gchar *
+json_node_type_name (JsonNode *node);
+

Retrieves the user readable name of the data type contained by node +.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode of type JSON_NODE_VALUE -

Returns :

a newly allocated string containing a copy -of the JsonNode contents. Use g_free() to free the allocated resources. [transfer full] -

node

a JsonNode

 
+
+

Returns

+

a string containing the name of the type. The returned string +is owned by the node and should never be modified or freed

+
+
-

json_node_set_parent ()

-
void                json_node_set_parent                (JsonNode *node,
-                                                         JsonNode *parent);
-

-Sets the parent JsonNode of node -

-
+

json_node_get_value_type ()

+
GType
+json_node_get_value_type (JsonNode *node);
+

Returns the GType of the payload of the node.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode -

parent :

the parent JsonNode of node. [transfer none] -

node

a JsonNode

 
-

Since 0.8

+
+
+

Returns

+

a GType for the payload.

+
+

Since: 0.4


-

json_node_get_parent ()

-
JsonNode *          json_node_get_parent                (JsonNode *node);
-

-Retrieves the parent JsonNode of node. +

json_node_get_node_type ()

+
JsonNodeType
+json_node_get_node_type (JsonNode *node);
+

Retrieves the JsonNodeType of node

-
+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode -

Returns :

the parent node, or NULL if node is -the root node. [transfer none] -

node

a JsonNode

 
+
+

Returns

+

the type of the node

+
+

Since: 0.8

+
-

json_node_type_name ()

-
const gchar *       json_node_type_name                 (JsonNode *node);
-

-Retrieves the user readable name of the data type contained by node. -

-
+

json_node_is_null ()

+
gboolean
+json_node_is_null (JsonNode *node);
+

Checks whether node + is a JSON_NODE_NULL.

+

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.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

node :

a JsonNode -

Returns :

a string containing the name of the type. The returned string -is owned by the node and should never be modified or freed

node

a JsonNode

 
+
+

Returns

+

TRUE if the node is null

+
+

Since: 0.8

+
-

json_node_get_value_type ()

-
GType               json_node_get_value_type            (JsonNode *node);
-

-Returns the GType of the payload of the node. +

json_string_hash ()

+
guint
+json_string_hash (gconstpointer key);
+

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.

+
+

Parameters

+
+++++ + + + + + +

key

a JSON string to hash.

[type utf8]
+
+
+

Returns

+

hash value for key

-
+ +

Since: 1.2

+ +
+
+

json_string_equal ()

+
gboolean
+json_string_equal (gconstpointer a,
+                   gconstpointer b);
+

Check whether a + and b + are equal UTF-8 JSON strings.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

a

a JSON string.

[type utf8]

Returns :

a GType for the payload.

b

another JSON string.

[type utf8]
-

Since 0.4

+
+
+

Returns

+

TRUE if a +and b +are equal; FALSE otherwise

+
+

Since: 1.2


-

json_node_get_node_type ()

-
JsonNodeType        json_node_get_node_type             (JsonNode *node);
-

-Retrieves the JsonNodeType of node -

-
+

json_string_compare ()

+
gint
+json_string_compare (gconstpointer a,
+                     gconstpointer b);
+

Check whether a + and b + are equal UTF-8 JSON strings and return an ordering +over them in strcmp() style.

+
+

Parameters

+
--+++ - - + + + - - + + +

node :

a JsonNode -

a

a JSON string.

[type utf8]

Returns :

the type of the node

b

another JSON string.

[type utf8]
-

Since 0.8

-
-
-

json_node_is_null ()

-
gboolean            json_node_is_null                   (JsonNode *node);
-

-Checks whether node is a JSON_NODE_NULL -

-

+

+

Returns

+

an integer less than zero if a +< b +, equal to zero if a +== b +, and +greater than zero if a +> b

-
-

Note

A null node is not the same as a NULLJsonNode
-

-

-
+

Since: 1.2

+ + +
+

Types and Values

+
+

enum JsonNodeType

+

Indicates the content of a JsonNode.

+
+

Members

+
--+++ - - + + + + + + + + + + + + - - + + +

node :

a JsonNode +

JSON_NODE_OBJECT

+

The node contains a JsonObject

+
 

JSON_NODE_ARRAY

+

The node contains a JsonArray

+
 

JSON_NODE_VALUE

+

The node contains a fundamental type

 

Returns :

-TRUE if the node is null

JSON_NODE_NULL

+

Special type, for nodes containing null

+
 
-

Since 0.8

+
+
+
+
+

JsonNode

+
typedef struct _JsonNode JsonNode;
+

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.

+
Generated by GTK-Doc V1.24 \ No newline at end of file diff --git a/doc/reference/html/json-glib-JSON-Object.html b/doc/reference/html/json-glib-JSON-Object.html index 77cc968..b633ca3 100644 --- a/doc/reference/html/json-glib-JSON-Object.html +++ b/doc/reference/html/json-glib-JSON-Object.html @@ -2,30 +2,27 @@ -JSON Object +JSON Object: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,1045 +30,1654 @@

JSON Object

JSON Object — a JSON object representation

- +
-
-

Synopsis

-
                    JsonObject;
-JsonObject *        json_object_new                     (void);
-JsonObject *        json_object_ref                     (JsonObject *object);
-void                json_object_unref                   (JsonObject *object);
-
-void                json_object_add_member              (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *node);
-void                json_object_set_member              (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *node);
-gboolean            json_object_has_member              (JsonObject *object,
-                                                         const gchar *member_name);
-JsonNode *          json_object_get_member              (JsonObject *object,
-                                                         const gchar *member_name);
-JsonNode *          json_object_dup_member              (JsonObject *object,
-                                                         const gchar *member_name);
-GList *             json_object_get_members             (JsonObject *object);
-GList *             json_object_get_values              (JsonObject *object);
-guint               json_object_get_size                (JsonObject *object);
-void                json_object_remove_member           (JsonObject *object,
-                                                         const gchar *member_name);
-void                (*JsonObjectForeach)                (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *member_node,
-                                                         gpointer user_data);
-void                json_object_foreach_member          (JsonObject *object,
-                                                         JsonObjectForeach func,
-                                                         gpointer data);
-
-void                json_object_set_array_member        (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonArray *value);
-JsonArray *         json_object_get_array_member        (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_boolean_member      (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gboolean value);
-gboolean            json_object_get_boolean_member      (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_double_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gdouble value);
-gdouble             json_object_get_double_member       (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_int_member          (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gint64 value);
-gint64              json_object_get_int_member          (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_null_member         (JsonObject *object,
-                                                         const gchar *member_name);
-gboolean            json_object_get_null_member         (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_object_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonObject *value);
-JsonObject *        json_object_get_object_member       (JsonObject *object,
-                                                         const gchar *member_name);
-void                json_object_set_string_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         const gchar *value);
-const gchar *       json_object_get_string_member       (JsonObject *object,
-                                                         const gchar *member_name);
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+JsonObject * + +json_object_new () +
+JsonObject * + +json_object_ref () +
+void + +json_object_unref () +
+void + +json_object_seal () +
+gboolean + +json_object_is_immutable () +
+guint + +json_object_hash () +
+gboolean + +json_object_equal () +
+void + +json_object_add_member () +
+void + +json_object_set_member () +
+gboolean + +json_object_has_member () +
+JsonNode * + +json_object_get_member () +
+JsonNode * + +json_object_dup_member () +
+GList * + +json_object_get_members () +
+GList * + +json_object_get_values () +
+guint + +json_object_get_size () +
+void + +json_object_remove_member () +
+void + +(*JsonObjectForeach) () +
+void + +json_object_foreach_member () +
+void + +json_object_iter_init () +
+gboolean + +json_object_iter_next () +
+void + +json_object_set_array_member () +
+JsonArray * + +json_object_get_array_member () +
+void + +json_object_set_boolean_member () +
+gboolean + +json_object_get_boolean_member () +
+void + +json_object_set_double_member () +
+gdouble + +json_object_get_double_member () +
+void + +json_object_set_int_member () +
+gint64 + +json_object_get_int_member () +
+void + +json_object_set_null_member () +
+gboolean + +json_object_get_null_member () +
+void + +json_object_set_object_member () +
+JsonObject * + +json_object_get_object_member () +
+void + +json_object_set_string_member () +
const gchar * + +json_object_get_string_member () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
 JsonObject
 JsonObjectIter
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── JsonObject
 

Description

-

-JsonObject is the representation of the object type inside JSON. It contains -JsonNodes, which may contain fundamental types, arrays or other -objects. Each member of an object is accessed using its 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(). -

-

-To add or overwrite a member with a given name, use json_object_set_member(). -To extract a member with a given name, use json_object_get_member(). -To retrieve the list of members, use json_object_get_members(). +

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().

+

To add or overwrite a member with a given name, use json_object_set_member(). +To extract a member with a given name, use json_object_get_member(). +To retrieve the list of members, use json_object_get_members(). To retrieve the size of the object (that is, the number of members it has), -use json_object_get_size(). -

+use json_object_get_size().

-

Details

+

Functions

-

JsonObject

-
typedef struct _JsonObject JsonObject;
-

-A JSON object type. The contents of the JsonObject structure are private -and should only be accessed by the provided API -

+

json_object_new ()

+
JsonObject *
+json_object_new (void);
+

Creates a new JsonObject, an JSON object type representation.

+

[constructor]

+
+

Returns

+

the newly created JsonObject.

+

[transfer full]

+

-

json_object_new ()

-
JsonObject *        json_object_new                     (void);
-

-Creates a new JsonObject, an JSON object type representation. -

-
+

json_object_ref ()

+
JsonObject *
+json_object_ref (JsonObject *object);
+

Increase by one the reference count of a JsonObject.

+
+

Parameters

+
--+++ - - + + +

Returns :

the newly created JsonObject -

object

a JsonObject

 
+
+

Returns

+

the passed JsonObject, with the reference count +increased by one.

+

[transfer none]

+
+

-

json_object_ref ()

-
JsonObject *        json_object_ref                     (JsonObject *object);
-

-Increase by one the reference count of a JsonObject. -

-
+

json_object_unref ()

+
void
+json_object_unref (JsonObject *object);
+

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.

+
+

Parameters

+
--+++ - - - - - - - - - - + + + + +

object :

a JsonObject -

Returns :

the passed JsonObject, with the reference count -increased by one.

object

a JsonObject

 
+

-

json_object_unref ()

-
void                json_object_unref                   (JsonObject *object);
-

-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. -

-
+

json_object_seal ()

+
void
+json_object_seal (JsonObject *object);
+

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.

+
+

Parameters

+
--+++ - - + + +

object :

a JsonObject -

object

a JsonObject

 
+

Since: 1.2

+

-

json_object_add_member ()

-
void                json_object_add_member              (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *node);
-
-

Warning

-

json_object_add_member has been deprecated since version 0.8 and should not be used in newly-written code. Use json_object_set_member() instead

-
-

-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. +

json_object_is_immutable ()

+
gboolean
+json_object_is_immutable (JsonObject *object);
+

Check whether the given object + has been marked as immutable by calling +json_object_seal() on it.

+
+

Parameters

+
+++++ + + + + + +

object

a JsonObject

 
+
+
+

Returns

+

TRUE if the object +is immutable

+
+

Since: 1.2

+
+
+
+

json_object_hash ()

+
guint
+json_object_hash (gconstpointer key);
+

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.

+
+

Parameters

+
+++++ + + + + + +

key

a JSON object to hash.

[type JsonObject]
+
+
+

Returns

+

hash value for key

-
+ +

Since: 1.2

+ +
+
+

json_object_equal ()

+
gboolean
+json_object_equal (gconstpointer a,
+                   gconstpointer b);
+

Check whether a + and b + are equal JsonObjects, meaning they have the same +set of members, and the values of corresponding members are equal.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

object :

a JsonObject -

a

a JSON object.

[type JsonObject]

member_name :

the name of the member

node :

the value of the member. [transfer full] -

b

another JSON object.

[type JsonObject]
+
+

Returns

+

TRUE if a +and b +are equal; FALSE otherwise

+
+

Since: 1.2

+

-

json_object_set_member ()

-
void                json_object_set_member              (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *node);
-

-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 -member is added to object. -

-
+

json_object_add_member ()

+
void
+json_object_add_member (JsonObject *object,
+                        const gchar *member_name,
+                        JsonNode *node);
+
+

json_object_add_member has been deprecated since version 0.8 and should not be used in newly-written code.

+

Use json_object_set_member() instead

+
+

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 +.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

node :

the value of the member. [transfer full] -

node

the value of the member.

[transfer full]
-

Since 0.8

+

-

json_object_has_member ()

-
gboolean            json_object_has_member              (JsonObject *object,
-                                                         const gchar *member_name);
-

-Checks whether object has a member named member_name. -

-
+

json_object_set_member ()

+
void
+json_object_set_member (JsonObject *object,
+                        const gchar *member_name,
+                        JsonNode *node);
+

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 +member is added to object +.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of a JSON object member

member_name

the name of the member

 

Returns :

-TRUE if the JSON object has the requested member

node

the value of the member.

[transfer full]
+

Since: 0.8

+
-

json_object_get_member ()

-
JsonNode *          json_object_get_member              (JsonObject *object,
-                                                         const gchar *member_name);
-

-Retrieves the JsonNode containing the value of member_name inside -a JsonObject. -

-
+

json_object_has_member ()

+
gboolean
+json_object_has_member (JsonObject *object,
+                        const gchar *member_name);
+

Checks whether object + has a member named member_name +.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the JSON object member to access

object

a JsonObject

 

Returns :

a pointer to the node for the requested object -member, or NULL. [transfer none] -

member_name

the name of a JSON object member

 
+
+

Returns

+

TRUE if the JSON object has the requested member

+
+
-

json_object_dup_member ()

-
JsonNode *          json_object_dup_member              (JsonObject *object,
-                                                         const gchar *member_name);
-

-Retrieves a copy of the JsonNode containing the value of member_name -inside a JsonObject -

-
+

json_object_get_member ()

+
JsonNode *
+json_object_get_member (JsonObject *object,
+                        const gchar *member_name);
+

Retrieves the JsonNode containing the value of member_name + inside +a JsonObject.

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the JSON object member to access

Returns :

a copy of the node for the requested -object member or NULL. Use json_node_free() when done. [transfer full] -

member_name

the name of the JSON object member to access

 
-

Since 0.6

+
+
+

Returns

+

a pointer to the node for the requested object +member, or NULL.

+

[transfer none]

+

-

json_object_get_members ()

-
GList *             json_object_get_members             (JsonObject *object);
-

-Retrieves all the names of the members of a JsonObject. You can -obtain the value for each member using json_object_get_member(). -

-
+

json_object_dup_member ()

+
JsonNode *
+json_object_dup_member (JsonObject *object,
+                        const gchar *member_name);
+

Retrieves a copy of the JsonNode containing the value of member_name + +inside a JsonObject

+
+

Parameters

+
--+++ - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

Returns :

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. [element-type utf8][transfer container] -

member_name

the name of the JSON object member to access

 
+
+

Returns

+

a copy of the node for the requested +object member or NULL. Use json_node_unref() when done.

+

[transfer full]

+
+

Since: 0.6

+
-

json_object_get_values ()

-
GList *             json_object_get_values              (JsonObject *object);
-

-Retrieves all the values of the members of a JsonObject. -

-
+

json_object_get_members ()

+
GList *
+json_object_get_members (JsonObject *object);
+

Retrieves all the names of the members of a JsonObject. You can +obtain the value for each member using json_object_get_member().

+
+

Parameters

+
+++++ + + + + + +

object

a JsonObject

 
+
+
+

Returns

+

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.

+

[element-type utf8][transfer container]

+
+ +
+
+

json_object_get_values ()

+
GList *
+json_object_get_values (JsonObject *object);
+

Retrieves all the values of the members of a JsonObject.

+
+

Parameters

+
+++++ + + + + + +

object

a JsonObject

 
+
+
+

Returns

+

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.

+

[element-type JsonNode][transfer container]

+
+
+
+
+

json_object_get_size ()

+
guint
+json_object_get_size (JsonObject *object);
+

Retrieves the number of members of a JsonObject.

+
+

Parameters

+
+++++ + + + + + +

object

a JsonObject

 
+
+
+

Returns

+

the number of members

+
+
+
+
+

json_object_remove_member ()

+
void
+json_object_remove_member (JsonObject *object,
+                           const gchar *member_name);
+

Removes member_name + from object +, freeing its allocated resources.

+
+

Parameters

+
--+++ - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

Returns :

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. [element-type JsonNode][transfer container] -

member_name

the name of the member to remove

 
+

-

json_object_get_size ()

-
guint               json_object_get_size                (JsonObject *object);
-

-Retrieves the number of members of a JsonObject. -

-
+

JsonObjectForeach ()

+
void
+(*JsonObjectForeach) (JsonObject *object,
+                      const gchar *member_name,
+                      JsonNode *member_node,
+                      gpointer user_data);
+

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 +.

+
+

Parameters

+
--+++ - - + + + - - + + + + + + + + + + + + +

object :

a JsonObject -

object

the iterated JsonObject

 

Returns :

the number of members

member_name

the name of the member

 

member_node

a JsonNode containing the member_name +value

 

user_data

data passed to the function

 
+

Since: 0.8

+
-

json_object_remove_member ()

-
void                json_object_remove_member           (JsonObject *object,
-                                                         const gchar *member_name);
-

-Removes member_name from object, freeing its allocated resources. -

-
+

json_object_foreach_member ()

+
void
+json_object_foreach_member (JsonObject *object,
+                            JsonObjectForeach func,
+                            gpointer data);
+

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 + +from within the iterator func +, but it is not safe to add or +remove members from the object +.

+
+

Parameters

+
--+++ - - + + + + + + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

func

the function to be called on each member.

[scope call]

member_name :

the name of the member to remove

data

data to be passed to the function.

[closure]
+

Since: 0.8

+
-

JsonObjectForeach ()

-
void                (*JsonObjectForeach)                (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonNode *member_node,
-                                                         gpointer user_data);
-

-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. -

-
+

json_object_iter_init ()

+
void
+json_object_iter_init (JsonObjectIter *iter,
+                       JsonObject *object);
+

Initialise the iter + and associate it with object +.

+
+
+ + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
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.
+  }
+
+ +

+
+

Parameters

+
--+++ - - - - - - + + + - - - - - - + + +

object :

the iterated JsonObject -

member_name :

the name of the member

iter

an uninitialised JsonObjectIter

 

member_node :

a JsonNode containing the member_name value

user_data :

data passed to the function

object

the JsonObject to iterate over

 
-

Since 0.8

+
+

Since: 1.2


-

json_object_foreach_member ()

-
void                json_object_foreach_member          (JsonObject *object,
-                                                         JsonObjectForeach func,
-                                                         gpointer data);
-

-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 -from within the iterator func, but it is not safe to add or -remove members from the object. -

-
+

json_object_iter_next ()

+
gboolean
+json_object_iter_next (JsonObjectIter *iter,
+                       const gchar **member_name,
+                       JsonNode **member_node);
+

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.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

iter

a JsonObjectIter

 

func :

the function to be called on each member. [scope call] -

member_name

return +location for the member name, or NULL to ignore.

[out callee-allocates][transfer none][optional]

data :

data to be passed to the function. [closure] -

member_node

return +location for the member value, or NULL to ignore.

[out callee-allocates][transfer none][optional]
-

Since 0.8

+
+
+

Returns

+

TRUE if member_name +and member_node +are valid; FALSE if the end +of the object has been reached

+
+

Since: 1.2


-

json_object_set_array_member ()

-
void                json_object_set_array_member        (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonArray *value);
-

-Convenience function for setting an array value of -member_name inside object. -

-

-The object will take ownership of the passed JsonArray -

-

-See also: json_object_set_member() -

-
+

json_object_set_array_member ()

+
void
+json_object_set_array_member (JsonObject *object,
+                              const gchar *member_name,
+                              JsonArray *value);
+

Convenience function for setting an array value + of +member_name + inside object +.

+

The object + will take ownership of the passed JsonArray

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member. [transfer full] -

value

the value of the member.

[transfer full]
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_array_member ()

-
JsonArray *         json_object_get_array_member        (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the array -stored in member_name of object +

json_object_get_array_member ()

+
JsonArray *
+json_object_get_array_member (JsonObject *object,
+                              const gchar *member_name);
+

Convenience function that retrieves the array +stored in member_name + of object

-

-See also: json_object_get_member() -

-
+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

the array inside the object's member. [transfer none] -

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

the array inside the object's member.

+

[transfer none]

+
+

Since: 0.8


-

json_object_set_boolean_member ()

-
void                json_object_set_boolean_member      (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gboolean value);
-

-Convenience function for setting a boolean value of -member_name inside object. -

-

-See also: json_object_set_member() -

-
+

json_object_set_boolean_member ()

+
void
+json_object_set_boolean_member (JsonObject *object,
+                                const gchar *member_name,
+                                gboolean value);
+

Convenience function for setting a boolean value + of +member_name + inside object +.

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member

value

the value of the member

 
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_boolean_member ()

-
gboolean            json_object_get_boolean_member      (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the boolean value -stored in member_name of object +

json_object_get_boolean_member ()

+
gboolean
+json_object_get_boolean_member (JsonObject *object,
+                                const gchar *member_name);
+

Convenience function that retrieves the boolean value +stored in member_name + of object

-

-See also: json_object_get_member() -

-
+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - + + + - - - - - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

Returns :

the boolean value of the object's member

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

the boolean value of the object's member

+
+

Since: 0.8


-

json_object_set_double_member ()

-
void                json_object_set_double_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gdouble value);
-

-Convenience function for setting a floating point value -of member_name inside object. -

-

-See also: json_object_set_member() -

-
+

json_object_set_double_member ()

+
void
+json_object_set_double_member (JsonObject *object,
+                               const gchar *member_name,
+                               gdouble value);
+

Convenience function for setting a floating point value + +of member_name + inside object +.

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member

value

the value of the member

 
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_double_member ()

-
gdouble             json_object_get_double_member       (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the floating point value -stored in member_name of object +

json_object_get_double_member ()

+
gdouble
+json_object_get_double_member (JsonObject *object,
+                               const gchar *member_name);
+

Convenience function that retrieves the floating point value +stored in member_name + of object

-

-See also: json_object_get_member() -

-
+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

the floating point value of the object's member

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

the floating point value of the object's member

+
+

Since: 0.8


-

json_object_set_int_member ()

-
void                json_object_set_int_member          (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         gint64 value);
-

-Convenience function for setting an integer value of -member_name inside object. -

-

-See also: json_object_set_member() -

-
+

json_object_set_int_member ()

+
void
+json_object_set_int_member (JsonObject *object,
+                            const gchar *member_name,
+                            gint64 value);
+

Convenience function for setting an integer value + of +member_name + inside object +.

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member

value

the value of the member

 
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_int_member ()

-
gint64              json_object_get_int_member          (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the integer value -stored in member_name of object -

-

-See also: json_object_get_member() +

json_object_get_int_member ()

+
gint64
+json_object_get_int_member (JsonObject *object,
+                            const gchar *member_name);
+

Convenience function that retrieves the integer value +stored in member_name + of object

-
+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

the integer value of the object's member

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

the integer value of the object's member

+
+

Since: 0.8


-

json_object_set_null_member ()

-
void                json_object_set_null_member         (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function for setting a null value of -member_name inside object. -

-

-See also: json_object_set_member() -

-
+

json_object_set_null_member ()

+
void
+json_object_set_null_member (JsonObject *object,
+                             const gchar *member_name);
+

Convenience function for setting a null value + of +member_name + inside object +.

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_null_member ()

-
gboolean            json_object_get_null_member         (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that checks whether the value -stored in member_name of object is null -

-

-See also: json_object_get_member() -

-
+

json_object_get_null_member ()

+
gboolean
+json_object_get_null_member (JsonObject *object,
+                             const gchar *member_name);
+

Convenience function that checks whether the value +stored in member_name + of object + is null

+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

-TRUE if the value is null

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

TRUE if the value is null

+
+

Since: 0.8


-

json_object_set_object_member ()

-
void                json_object_set_object_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         JsonObject *value);
-

-Convenience function for setting an object value of -member_name inside object. -

-

-The object will take ownership of the passed JsonObject -

-

-See also: json_object_set_member() -

-
+

json_object_set_object_member ()

+
void
+json_object_set_object_member (JsonObject *object,
+                               const gchar *member_name,
+                               JsonObject *value);
+

Convenience function for setting an object value + of +member_name + inside object +.

+

The object + will take ownership of the passed JsonObject

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member. [transfer full] -

value

the value of the member.

[transfer full]
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_object_member ()

-
JsonObject *        json_object_get_object_member       (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the object -stored in member_name of object -

-

-See also: json_object_get_member() -

-
+

json_object_get_object_member ()

+
JsonObject *
+json_object_get_object_member (JsonObject *object,
+                               const gchar *member_name);
+

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()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

the object inside the object's member. [transfer none] -

member_name

the name of the member

 
-

Since 0.8

+
+
+

Returns

+

the object inside the object’s +member, or NULL if the value for the member is null.

+

[transfer none][nullable]

+
+

Since: 0.8


-

json_object_set_string_member ()

-
void                json_object_set_string_member       (JsonObject *object,
-                                                         const gchar *member_name,
-                                                         const gchar *value);
-

-Convenience function for setting a string value of -member_name inside object. -

-

-See also: json_object_set_member() -

-
+

json_object_set_string_member ()

+
void
+json_object_set_string_member (JsonObject *object,
+                               const gchar *member_name,
+                               const gchar *value);
+

Convenience function for setting a string value + of +member_name + inside object +.

+

See also: json_object_set_member()

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

object :

a JsonObject -

object

a JsonObject

 

member_name :

the name of the member

member_name

the name of the member

 

value :

the value of the member

value

the value of the member

 
-

Since 0.8

+
+

Since: 0.8


-

json_object_get_string_member ()

-
const gchar *       json_object_get_string_member       (JsonObject *object,
-                                                         const gchar *member_name);
-

-Convenience function that retrieves the string value -stored in member_name of object -

-

-See also: json_object_get_member() +

json_object_get_string_member ()

+
const gchar *
+json_object_get_string_member (JsonObject *object,
+                               const gchar *member_name);
+

Convenience function that retrieves the string value +stored in member_name + of object

-
+

See also: json_object_get_member()

+
+

Parameters

+
--+++ - - - - - - + + + - - + + +

object :

a JsonObject -

member_name :

the name of the member

object

a JsonObject

 

Returns :

the string value of the object's member

member_name

the name of the member

 
-

Since 0.8

+
+

Returns

+

the string value of the object's member

+

Since: 0.8

+ + +
+

Types and Values

+
+

JsonObject

+
typedef struct _JsonObject JsonObject;
+

A JSON object type. The contents of the JsonObject structure are private +and should only be accessed by the provided API

- +
+

JsonObjectIter

+
typedef struct {
+} 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

+
+
+ + \ No newline at end of file diff --git a/doc/reference/html/json-glib-Serializable-Interface.html b/doc/reference/html/json-glib-Serializable-Interface.html index e253f75..959f14d 100644 --- a/doc/reference/html/json-glib-Serializable-Interface.html +++ b/doc/reference/html/json-glib-Serializable-Interface.html @@ -2,30 +2,27 @@ -Serializable Interface +Serializable Interface: JSON-GLib Reference Manual - + - - - - - - - - - - + + + + + + +
@@ -33,319 +30,385 @@

Serializable Interface

Serializable Interface — Interface for serialize and deserialize special GObjects

- +
-
-

Synopsis

-
struct              JsonSerializableIface;
-JsonNode *          json_serializable_serialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         const GValue *value,
-                                                         GParamSpec *pspec);
-gboolean            json_serializable_deserialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         GValue *value,
-                                                         GParamSpec *pspec,
-                                                         JsonNode *property_node);
-GParamSpec *        json_serializable_find_property     (JsonSerializable *serializable,
-                                                         const char *name);
-void                json_serializable_get_property      (JsonSerializable *serializable,
-                                                         GParamSpec *pspec,
-                                                         GValue *value);
-GParamSpec **       json_serializable_list_properties   (JsonSerializable *serializable,
-                                                         guint *n_pspecs);
-void                json_serializable_set_property      (JsonSerializable *serializable,
-                                                         GParamSpec *pspec,
-                                                         const GValue *value);
-
-JsonNode *          json_serializable_default_serialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         const GValue *value,
-                                                         GParamSpec *pspec);
-gboolean            json_serializable_default_deserialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         GValue *value,
-                                                         GParamSpec *pspec,
-                                                         JsonNode *property_node);
-
-
-

Description

-

-JsonSerializable is an interface for GObject classes that -allows controlling how the class is going to be serialized -or deserialized by json_construct_gobject() and -json_serialize_gobject() respectively. -

-
-
-

Details

-
-

struct JsonSerializableIface

-
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);
-};
-
-

-Interface that allows serializing and deserializing GObjects -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 -sequence. -

-
+

Functions

+
--++ - - + - - + + - - + + - - + + - - + + - - + + + + + + + + + +

serialize_property ()

virtual function for serializing a GObject property -into a JsonNode + +JsonNode * + +json_serializable_serialize_property ()

deserialize_property ()

virtual function for deserializing a JsonNode -into a GObject property +gboolean + +json_serializable_deserialize_property () +

find_property ()

virtual function for finding a property definition using -its name +GParamSpec * + +json_serializable_find_property () +

list_properties ()

virtual function for listing the installed property -definitions +void + +json_serializable_get_property () +

set_property ()

virtual function for setting a property +GParamSpec ** + +json_serializable_list_properties () +

get_property ()

virtual function for getting a property +void + +json_serializable_set_property () +
+JsonNode * + +json_serializable_default_serialize_property () +
+gboolean + +json_serializable_default_deserialize_property () +
-
+
+

Types and Values

+
++++ + + + + +
structJsonSerializableIface
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── JsonSerializable
+
+
+
+

Description

+

JsonSerializable is an interface for GObject classes that +allows controlling how the class is going to be serialized +or deserialized by json_construct_gobject() and +json_serialize_gobject() respectively.

+
+
+

Functions

-

json_serializable_serialize_property ()

-
JsonNode *          json_serializable_serialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         const GValue *value,
-                                                         GParamSpec *pspec);
-

-Asks a JsonSerializable implementation to serialize a GObject -property into a JsonNode object. -

-
+

json_serializable_serialize_property ()

+
JsonNode *
+json_serializable_serialize_property (JsonSerializable *serializable,
+                                      const gchar *property_name,
+                                      const GValue *value,
+                                      GParamSpec *pspec);
+

Asks a JsonSerializable implementation to serialize a GObject +property into a JsonNode object.

+
+

Parameters

+
--+++ - - - - - - + + + - - + + + - - + + + - - + + +

serializable :

a JsonSerializable object

property_name :

the name of the property

serializable

a JsonSerializable object

 

value :

the value of the property

property_name

the name of the property

 

pspec :

a GParamSpec -

value

the value of the property

 

Returns :

a JsonNode containing the serialized property

pspec

a GParamSpec

 
+
+

Returns

+

a JsonNode containing the serialized property

+
+

-

json_serializable_deserialize_property ()

-
gboolean            json_serializable_deserialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         GValue *value,
-                                                         GParamSpec *pspec,
-                                                         JsonNode *property_node);
-

-Asks a JsonSerializable implementation to deserialize the -property contained inside property_node into value. -

-
+

json_serializable_deserialize_property ()

+
gboolean
+json_serializable_deserialize_property
+                               (JsonSerializable *serializable,
+                                const gchar *property_name,
+                                GValue *value,
+                                GParamSpec *pspec,
+                                JsonNode *property_node);
+

Asks a JsonSerializable implementation to deserialize the +property contained inside property_node + into value +.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + + - - + + + + + +

serializable :

a JsonSerializable -

serializable

a JsonSerializable

 

property_name :

the name of the property

property_name

the name of the property

 

value :

a pointer to an uninitialized GValue. [out] -

value

a pointer to an uninitialized GValue.

[out]

pspec :

a GParamSpec -

pspec

a GParamSpec

 

property_node :

a JsonNode containing the serialized property

property_node

a JsonNode containing the serialized property

 
+
+
+

Returns

+

TRUE if the property was successfully deserialized.

+
+
+
+
+

json_serializable_find_property ()

+
GParamSpec *
+json_serializable_find_property (JsonSerializable *serializable,
+                                 const char *name);
+

Calls the JsonSerializableIface.find_property() implementation on +the serializable + instance. *

+
+

Parameters

+
+++++ + + + + + - - + + +

serializable

a JsonSerializable

 

Returns :

-TRUE if the property was successfully deserialized.

name

the name of the property

 
+
+

Returns

+

the GParamSpec for the property +or NULL if no property was found.

+

[transfer none]

+
+

Since: 0.14

+

-

json_serializable_find_property ()

-
GParamSpec *        json_serializable_find_property     (JsonSerializable *serializable,
-                                                         const char *name);
-

-FIXME -

-
+

json_serializable_get_property ()

+
void
+json_serializable_get_property (JsonSerializable *serializable,
+                                GParamSpec *pspec,
+                                GValue *value);
+

Calls the JsonSerializableIface.get_property() implementation +on the serializable + instance.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

serializable :

a JsonSerializable -

serializable

a JsonSerializable

 

name :

the name of the property

pspec

a GParamSpec

 

Returns :

the GParamSpec for the property -or NULL if no property was found. [transfer none] -

value

return location for the property value.

[out]
-

Since 0.14

+
+

Since: 0.14


-

json_serializable_get_property ()

-
void                json_serializable_get_property      (JsonSerializable *serializable,
-                                                         GParamSpec *pspec,
-                                                         GValue *value);
+

json_serializable_list_properties ()

+
GParamSpec **
+json_serializable_list_properties (JsonSerializable *serializable,
+                                   guint *n_pspecs);
+

Calls the JsonSerializableIface.list_properties() implementation on +the serializable + instance.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

serializable

a JsonSerializable

 

n_pspecs

return location for the length of the array +of GParamSpec returned by the function.

[out]
+
+
+

Returns

+

an array +of GParamSpec. Use g_free() to free the array when done.

+

[array length=n_pspecs][transfer container]

+
+

Since: 0.14


-

json_serializable_list_properties ()

-
GParamSpec **       json_serializable_list_properties   (JsonSerializable *serializable,
-                                                         guint *n_pspecs);
-

-FIXME -

-
+

json_serializable_set_property ()

+
void
+json_serializable_set_property (JsonSerializable *serializable,
+                                GParamSpec *pspec,
+                                const GValue *value);
+

Calls the JsonSerializableIface.set_property() implementation +on the serializable + instance.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

serializable :

a JsonSerializable -

serializable

a JsonSerializable

 

n_pspecs :

return location for the length of the array -of GParamSpec returned by the function. [out] -

pspec

a GParamSpec

 

Returns :

an array -of GParamSpec. Use g_free() to free the array when done. [array length=n_pspecs][transfer container] -

value

the property value to set

 
-

Since 0.14

-
-
-

json_serializable_set_property ()

-
void                json_serializable_set_property      (JsonSerializable *serializable,
-                                                         GParamSpec *pspec,
-                                                         const GValue *value);
+

Since: 0.14


-

json_serializable_default_serialize_property ()

-
JsonNode *          json_serializable_default_serialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         const GValue *value,
-                                                         GParamSpec *pspec);
-

-Calls the default implementation of the JsonSerializable -serialize_property() virtual function -

-

-This function can be used inside a custom implementation -of the serialize_property() virtual function in lieu of: -

-

-

+

json_serializable_default_serialize_property ()

+
JsonNode *
+json_serializable_default_serialize_property
+                               (JsonSerializable *serializable,
+                                const gchar *property_name,
+                                const GValue *value,
+                                GParamSpec *pspec);
+

Calls the default implementation of the JsonSerializable +JsonSerializableIface.serialize_property() virtual function.

+

This function can be used inside a custom implementation +of the JsonSerializableIface.serialize_property() virtual +function in lieu of calling the default implementation +through g_type_default_interface_peek():

@@ -369,60 +432,61 @@ of the serialize_property() virtual function in li
-

-

-
+

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - - - - - + + +

serializable :

a JsonSerializable object

serializable

a JsonSerializable object

 

property_name :

the name of the property

property_name

the name of the property

 

value :

the value of the property

value

the value of the property

 

pspec :

a GParamSpec -

Returns :

a JsonNode containing the serialized -property. [transfer full] -

pspec

a GParamSpec

 
-

Since 0.10

+
+
+

Returns

+

a JsonNode containing the serialized +property.

+

[transfer full]

+
+

Since: 0.10


-

json_serializable_default_deserialize_property ()

-
gboolean            json_serializable_default_deserialize_property
-                                                        (JsonSerializable *serializable,
-                                                         const gchar *property_name,
-                                                         GValue *value,
-                                                         GParamSpec *pspec,
-                                                         JsonNode *property_node);
-

-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: -

-

-

+

json_serializable_default_deserialize_property ()

+
gboolean
+json_serializable_default_deserialize_property
+                               (JsonSerializable *serializable,
+                                const gchar *property_name,
+                                GValue *value,
+                                GParamSpec *pspec,
+                                JsonNode *property_node);
+

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:

@@ -448,50 +512,133 @@ of the deserialize_property() virtual function in
-

-

-
+

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + + - - + + + - - + + + + + +

serializable :

a JsonSerializable -

serializable

a JsonSerializable

 

property_name :

the name of the property

property_name

the name of the property

 

value :

a pointer to an uninitialized GValue -

value

a pointer to an uninitialized GValue

 

pspec :

a GParamSpec -

pspec

a GParamSpec

 

property_node :

a JsonNode containing the serialized property

property_node

a JsonNode containing the serialized property

 
+
+
+

Returns

+

TRUE if the property was successfully deserialized.

+
+

Since: 0.10

+ + +
+

Types and Values

+
+

struct JsonSerializableIface

+
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);
+};
+
+

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 +sequence.

+
+

Members

+
+++++ + + + + + - - + + + + + + + + + + + + + + + + + + + + + + +

serialize_property ()

virtual function for serializing a GObject property +into a JsonNode

 

Returns :

-TRUE if the property was successfully deserialized.

deserialize_property ()

virtual function for deserializing a JsonNode +into a GObject property

 

find_property ()

virtual function for finding a property definition using +its name

 

list_properties ()

virtual function for listing the installed property +definitions

 

set_property ()

virtual function for setting a property

 

get_property ()

virtual function for getting a property

 
-

Since 0.10

+
+
Generated by GTK-Doc V1.24 \ 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 index 0000000..07b496b --- /dev/null +++ b/doc/reference/html/json-glib-Utility-API.html @@ -0,0 +1,153 @@ + + + + +Utility API: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Utility API

+

Utility API — Various utility functions

+
+
+

Functions

+
++++ + + + + + + + + + + +
+JsonNode * + +json_from_string () +
+char * + +json_to_string () +
+
+
+

Description

+

Various utility functions.

+
+
+

Functions

+
+

json_from_string ()

+
JsonNode *
+json_from_string (const char *str,
+                  GError **error);
+

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.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

str

a valid UTF-8 string containing JSON data

 

error

return location for a GError

 
+
+
+

Returns

+

a JsonNode, or NULL.

+

[transfer full]

+
+

Since: 1.2

+
+
+
+

json_to_string ()

+
char *
+json_to_string (JsonNode *node,
+                gboolean pretty);
+

Generates a stringified JSON representation of the contents of +the passed node +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

node

a JsonNode

 

pretty

whether the output should be prettyfied for printing

 
+
+
+

Returns

+

the string representation of the JsonNode.

+

[transfer full]

+
+

Since: 1.2

+
+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff --git a/doc/reference/html/json-glib-Versioning-information.html b/doc/reference/html/json-glib-Versioning-information.html index 75ea93b..e3f8dc7 100644 --- a/doc/reference/html/json-glib-Versioning-information.html +++ b/doc/reference/html/json-glib-Versioning-information.html @@ -2,30 +2,26 @@ -Versioning information +Versioning information: JSON-GLib Reference Manual - - - - + + + + - - - - - - - - - - + + + + + + +
@@ -33,119 +29,186 @@

Versioning information

Versioning information — JSON-GLib version checking

- +
-
-

Synopsis

-
#define             JSON_MAJOR_VERSION
-#define             JSON_MINOR_VERSION
-#define             JSON_MICRO_VERSION
-
-#define             JSON_VERSION
-#define             JSON_VERSION_S
-#define             JSON_VERSION_HEX
-
-#define             JSON_CHECK_VERSION                  (major,
-                                                         minor,
-                                                         micro)
-
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#defineJSON_MAJOR_VERSION
#defineJSON_MINOR_VERSION
#defineJSON_MICRO_VERSION
#defineJSON_VERSION
#define +JSON_CHECK_VERSION() +
#defineJSON_VERSION_MIN_REQUIRED
#defineJSON_VERSION_MAX_ALLOWED
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineJSON_VERSION_S
#defineJSON_VERSION_HEX

Description

-

-JSON-GLib provides macros to check the version of the library -at compile-time -

+

JSON-GLib provides macros to check the version of the library +at compile-time

-

Details

+

Functions

JSON_MAJOR_VERSION

-
#define JSON_MAJOR_VERSION              (0)
+
#define JSON_MAJOR_VERSION              (1)
 
-

-Json major version component (e.g. 1 if JSON_VERSION is 1.2.3) -

+

Json major version component (e.g. 1 if JSON_VERSION is 1.2.3)


JSON_MINOR_VERSION

-
#define JSON_MINOR_VERSION              (16)
+
#define JSON_MINOR_VERSION              (2)
 
-

-Json minor version component (e.g. 2 if JSON_VERSION is 1.2.3) -

+

Json minor version component (e.g. 2 if JSON_VERSION is 1.2.3)


JSON_MICRO_VERSION

#define JSON_MICRO_VERSION              (0)
 
-

-Json micro version component (e.g. 3 if JSON_VERSION is 1.2.3) -

+

Json micro version component (e.g. 3 if JSON_VERSION is 1.2.3)


JSON_VERSION

-
#define JSON_VERSION                    (0.16.0)
+
#define JSON_VERSION                    (1.2.0)
 
-

-Json version. -

-
-
-
-

JSON_VERSION_S

-
#define JSON_VERSION_S                  "0.16.0"
-
-

-Json version, encoded as a string, useful for printing and -concatenation. -

-
-
-
-

JSON_VERSION_HEX

-
#define             JSON_VERSION_HEX
-

-Json version, encoded as an hexadecimal number, useful for -integer comparisons. -

+

Json version.


JSON_CHECK_VERSION()

#define             JSON_CHECK_VERSION(major,minor,micro)
-

-Compile-time version checking. Evaluates to TRUE if the version -of Json is greater than the required one. -

-
+

Compile-time version checking. Evaluates to TRUE if the version +of Json is greater than the required one.

+
+

Parameters

+
--+++ - - + + + - - + + + - - + + +

major :

required major version

major

required major version

 

minor :

required minor version

minor

required minor version

 

micro :

required micro version

micro

required micro version

 
+
+
+

JSON_VERSION_MIN_REQUIRED

+
# define JSON_VERSION_MIN_REQUIRED      (JSON_VERSION_CUR_STABLE)
+
+

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

- +
+

JSON_VERSION_MAX_ALLOWED

+
#  define JSON_VERSION_MAX_ALLOWED      (JSON_VERSION_MIN_REQUIRED)
+
+

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

+
+
+
+

Types and Values

+
+

JSON_VERSION_S

+
#define JSON_VERSION_S                  "1.2.0"
+
+

JSON-GLib version, encoded as a string, useful for printing and +concatenation.

+
+
+
+

JSON_VERSION_HEX

+
#define             JSON_VERSION_HEX
+

JSON-GLib version, encoded as an hexadecimal number, useful for +integer comparisons.

+
+
+
+ \ No newline at end of file diff --git a/doc/reference/html/json-glib.devhelp2 b/doc/reference/html/json-glib.devhelp2 index e3ec149..cb2876a 100644 --- a/doc/reference/html/json-glib.devhelp2 +++ b/doc/reference/html/json-glib.devhelp2 @@ -1,5 +1,4 @@ - @@ -20,16 +19,23 @@ + + + + - - + + + + + @@ -39,235 +45,265 @@ + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - @@ -278,6 +314,7 @@ + diff --git a/doc/reference/html/json-glib.html b/doc/reference/html/json-glib.html index ec41e53..6c0dc65 100644 --- a/doc/reference/html/json-glib.html +++ b/doc/reference/html/json-glib.html @@ -2,22 +2,22 @@ -Part I. JSON-GLib Overview +Part I. JSON-GLib Overview: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -32,7 +32,6 @@

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/json-streams.html b/doc/reference/html/json-streams.html index cfa5740..187c2f4 100644 --- a/doc/reference/html/json-streams.html +++ b/doc/reference/html/json-streams.html @@ -2,22 +2,22 @@ -Part III. Reading and writing +Part III. Reading and writing: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -52,12 +52,15 @@ JsonBuilder — Generates JSON trees +
General Purpose API
+
+Utility API — Various utility functions +

+
Generated by GTK-Doc V1.24
\ No newline at end of file diff --git a/doc/reference/html/json-tools.html b/doc/reference/html/json-tools.html index 5199173..43a8a1b 100644 --- a/doc/reference/html/json-tools.html +++ b/doc/reference/html/json-tools.html @@ -2,22 +2,22 @@ -Part V. JSON-GLib Additional Reference +Part V. JSON-GLib Additional Reference: JSON-GLib Reference Manual - - - + + + - - - - - - + + + + + +

@@ -25,15 +25,20 @@

Table of Contents

+
JSON-GLib Tools
+
-Versioning information — JSON-GLib version checking +json-glib-format — JSON-GLib formatting tool
-
Object Hierarchy
+
+json-glib-validate — JSON-GLib validation tool +
+
+
Object Hierarchy

+
Generated by GTK-Doc V1.24
\ 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 index 0000000..82d6979 --- /dev/null +++ b/doc/reference/html/json-validate-tool.html @@ -0,0 +1,71 @@ + + + + +json-glib-validate: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

json-glib-validate

+

json-glib-validate — JSON-GLib validation tool

+
+
+

Synopsis

+

json-glib-validate [-h, --help] URI [ + URI... + ]

+
+
+

Description

+

json-glib-validate 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.

+

+The resources to operate on are specified by the URI +argument. +

+

+If the JSON data is valid, json-glib-validate will terminate +with an exit code of 0; if the data is invalid, an error will be printed on +stderr and json-glib-validate will +terminate with a nonzero exit code.

+
+
+

Commands

+
++++ + + + + +

-h, --help

+Prints help and exits. +

+
+
+ + + \ 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 index 0000000000000000000000000000000000000000..3269393a7f72af744a772c437bd7b3976c23709d GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefH0HbvDJm`3=E7Co-U3d7N^fnTIWJ3j{^~q!iyia4kV=mdU|Jhfgdm;SLIpiYJ7wv^kjFiECCc&8T30!RG0~&BG=X zlu#U4@Z`))V`EG9e^NqDr#{!5k|)wT* zYTNt0`@q%TAD$){%#eQ?;$^ly8}yZCU%T~u0XM^%t?f#e znB*EuLv2rP%K3BMvFO}YmnR}KSgH;`EHL$)^!tH~iBxZ#h^zJi*#P5Xb6B50U@nx2 mU;T=yfcwnSOsS9SKd{M#MlNkCuvG>I8-u5-pUXO@geCx5`k@p6 literal 0 HcmV?d00001 diff --git a/doc/reference/html/left.png b/doc/reference/html/left.png index 2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4..2abde032b0c98b756b12d380da4318205cd78470 100644 GIT binary patch delta 244 zcmX@j+{UEX8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u>#vgk0;rK%vQ=E{-7|aG&v!6Ur2S*R{XrMU0M^KfF-bKt1`W8I8Svl`*^|^=ft6D|ptypqMR)*=`(nGa#nBx{t zWa2O6t!RwmvN>k^z$-HAohFx!!B3Nzy35)DzrN)t-%&awb5-Uf!}JL{f#)ZFDd0NE qc2>qy{P={N;_^$!?7mN}kJgWkm(MhqXnYvxJ_b)$KbLh*2~7a<>RZ47 delta 443 zcmV;s0Yv_W0?Pv-iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u-VMvs)+t00CG@L_t(|oVAr9Ps30cMeo}x5r~P3 zNkk=n2tO=?lRs}yL#a)1{E3-_J lb7xhMOB~=L|93Uw6EjZ$5w{hU-0}bb002ovPDHLkV1idLy?Ouu diff --git a/doc/reference/html/license.html b/doc/reference/html/license.html index dd45df8..afe9fd6 100644 --- a/doc/reference/html/license.html +++ b/doc/reference/html/license.html @@ -2,21 +2,21 @@ -Appendix A. License +Appendix A. License: JSON-GLib Reference Manual - + - - - - - - + + + + + +

@@ -52,7 +52,6 @@

+
Generated by GTK-Doc V1.24
\ 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 index 0000000000000000000000000000000000000000..4c95785b907b978f36674cd98bf5302669c15c1b GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefG`u!(zUX23=E7+o-U3d7N^fn+URvSL8NuRG*{E) z?#-+97X-^pidQ*u@StO1(S@7g8g>nnA24$?ty?)cmuaa|Y>ez2*_Ia?6HP4j{3LIs zTr!s1ao_Sz^~3e4zRJGAjKZGn=XP#)Wmuo-QN>teTzzI!&R*jMI^Oa#7_ukLYdicf zOx;1mb-rt04s-c|uIH8fnX}$)XJa^0_-F3(pA%=sGI<|(n_*&=yYt96+n5InXn_GN+EraJI9q(O+n{6MQKErp&KxRvpfn0xh z`sSMqH(2Z%?kaFBTf06W^y=UDA9gR9YrwNS*1pjB((0K%&+SbAx3`XA&dKZ}j*nX7 QfdRze>FVdQ&MBb@09|aA9{>OV literal 0 HcmV?d00001 diff --git a/doc/reference/html/right.png b/doc/reference/html/right.png index 92832e3a4566e59d6e4092010e08d28f3be3a68d..76260ec8865f4e13cd269ec62eccd78a33adba3c 100644 GIT binary patch delta 243 zcmcb?+{&cb8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u>!sxjXJa5r#>gE{-7|aG&)1kJa{Obz{cPVYdp$){T#MLe>Fm3y zyMz6rXvRCoM@%f9A~}=J@~khK^rTW~`Mlcw&$k!z?T-*Od-06xo1*2S`N}U`nz+P! zid1yhI29dMaldpx$y0@Y%1-N<4?D%5%|H8VdU#{ht0!vH6n7-gV%olu??+c5S4@KR p2g$=%UhHo0mw2-86QgZ?U_NuHd>ZSIPs||qdAjmzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u_gtCBZ!a00Cu5L_t(|oUN20Z^A$rhMz7cDk=~Y z6BA7^BpAd50>LB>zdtd46{2=YWknHnkW6e20m&wo)HE4_ARvxoMxznH zD{$|5-ur0>V@XPq_Xr73B$0~XuI9A-|w54{}|J2NuO;Wnla|$Lo)!L=Y2?; z0*`?IOZWlMIXY+z^ZERI@}`osv^y}yD2k#g`MS|(cLA`j04L^el6wC#w*lR5*S&cO yc$TE)a_Qc@1Uy*7v~g-~9zlBLuiLp?{jD!|Y5)O~pG*G$0000 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 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 index 0000000..9ef3642 --- /dev/null +++ b/doc/reference/html/tools.html @@ -0,0 +1,37 @@ + + + + +JSON-GLib Tools: JSON-GLib Reference Manual + + + + + + + + + + + + + + + + +
+

+JSON-GLib Tools

+
+
+json-glib-format — JSON-GLib formatting tool +
+
+json-glib-validate — JSON-GLib validation tool +
+
+
+ + + \ 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 index 0000000000000000000000000000000000000000..f40498606db349a7321cf6b470523e836ee7ac2e GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefG~@Ex#w@70gTL^E{-7zACwHGSRJaopUzr*FR_KPpkxheNzTDP+%{a~ox zRb6~e-_l%s#;V|Jw-)bO$G_X=4F`Y7SBoCzyjAZQ8BPW>ywAP8?pbBsZ|wt?+h6S6&uqY)kkMnwQQEd@7k`4t@sCCO z@7MoiEI4Q_#IB70vhu7Ab+>SXLxu@LWH Qzz|~aboFyt=akR{08E^fv;Y7A literal 0 HcmV?d00001 diff --git a/doc/reference/html/up.png b/doc/reference/html/up.png index 85b3e2a2755fece72d0d09fbf1cf28d51fa71077..80b4b37e997d69b2e128bc3090bc447ccb74bbe9 100644 GIT binary patch delta 242 zcmbQn+`^>T8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u>cEc}Txn{OPkR*5a* zwDk&N*>b{AhxN3=kKmLRU9sMkwFVo`%)fd5(4liu;t&4h?_}|@%GH%`6r8an@SgvZ z1JSd&Pd<5?{gg){#A8R*Ki_)`d?tvz5Lt6ZXBNBF^;x9{6iW_zH(F0%dB*u6VA)sk pGhYq}7jXNRI4sWD^Z%2+{F$v@5|Tdn{A delta 389 zcmV;00eb#~0+s_IiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u`z2MS$4=00AROL_t(|ob8i6O2j|_M!#=~T?!#9 zq?|H^#THvy%pE*H8ZY4;Jb<00g;?7P+O3c>jWBkxvxtzwh0kg*yKMe;R3_MBWoQZU=5c + + General Purpose API + + + @@ -121,12 +126,17 @@ + JSON-GLib Additional Reference - + + JSON-GLib Tools + + + Object Hierarchy @@ -175,6 +185,21 @@ + + Index of new symbols in 0.16 + + + + + Index of new symbols in 1.0 + + + + + Index of new symbols in 1.2 + + + diff --git a/doc/reference/json-glib-format.1 b/doc/reference/json-glib-format.1 new file mode 100644 index 0000000..4d3bd36 --- /dev/null +++ b/doc/reference/json-glib-format.1 @@ -0,0 +1,60 @@ +'\" t +.\" Title: json-glib-format +.\" Author: Emmanuele Bassi +.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" 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 index 0000000..d4ba59e --- /dev/null +++ b/doc/reference/json-glib-format.xml @@ -0,0 +1,81 @@ + + + + json-glib-format + JSON-GLib + + + Developer + Emmanuele + Bassi + + + + + + json-glib-format + 1 + User Commands + + + + json-glib-format + JSON-GLib formatting tool + + + + + json-glib-format + , + + SPACES + URI + + URI + + + + +Description +json-glib-format 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. + + +The resources to operate on are specified by the URI +argument. + + + + +Commands + + + +, + +Prints help and exits. + + + + +, + +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. + + + + + SPACES + +Changes the number of spaces using to indent the JSON data from the default of 2. +This argument is only considered if is used. + + + + + + + diff --git a/doc/reference/json-glib-sections.txt b/doc/reference/json-glib-sections.txt index 86876cf..4f1e471 100644 --- a/doc/reference/json-glib-sections.txt +++ b/doc/reference/json-glib-sections.txt @@ -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 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 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 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 json_node_set_array @@ -137,6 +154,11 @@ json_node_get_value_type json_node_get_node_type json_node_is_null + +json_string_hash +json_string_equal +json_string_compare + 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 JSON_CHECK_VERSION +JSON_VERSION_MIN_REQUIRED +JSON_VERSION_MAX_ALLOWED + + +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 + + +JSON_ENCODE_VERSION +JSON_DEPRECATED +JSON_DEPRECATED_FOR +JSON_UNAVAILABLE +_JSON_EXTERN
@@ -301,6 +345,7 @@ JSON_CHECK_VERSION JsonBuilder JsonBuilderClass json_builder_new +json_builder_new_immutable json_builder_get_root json_builder_reset @@ -390,3 +435,9 @@ JSON_IS_PATH json_path_get_type json_path_error_quark
+ +
+json-utils +json_from_string +json_to_string +
diff --git a/doc/reference/json-glib-validate.1 b/doc/reference/json-glib-validate.1 new file mode 100644 index 0000000..29dabd8 --- /dev/null +++ b/doc/reference/json-glib-validate.1 @@ -0,0 +1,56 @@ +'\" t +.\" Title: json-glib-validate +.\" Author: Emmanuele Bassi +.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" 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 index 0000000..1cd5c6d --- /dev/null +++ b/doc/reference/json-glib-validate.xml @@ -0,0 +1,67 @@ + + + + json-glib-validate + JSON-GLib + + + Developer + Emmanuele + Bassi + + + + + + json-glib-validate + 1 + User Commands + + + + json-glib-validate + JSON-GLib validation tool + + + + + json-glib-validate + , + URI + + URI + + + + +Description +json-glib-validate 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. + + +The resources to operate on are specified by the URI +argument. + + + +If the JSON data is valid, json-glib-validate will terminate +with an exit code of 0; if the data is invalid, an error will be printed on +stderr and json-glib-validate will +terminate with a nonzero exit code. + + +Commands + + + +, + +Prints help and exits. + + + + + + + diff --git a/doc/reference/json-glib.types b/doc/reference/json-glib.types index d937207..074ebe7 100644 --- a/doc/reference/json-glib.types +++ b/doc/reference/json-glib.types @@ -1,6 +1,8 @@ -#include +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 diff --git a/doc/reference/version.xml b/doc/reference/version.xml index 04a373e..26aaba0 100644 --- a/doc/reference/version.xml +++ b/doc/reference/version.xml @@ -1 +1 @@ -0.16.0 +1.2.0 diff --git a/gtk-doc.make b/gtk-doc.make index d87f66d..9ccd0b0 100644 --- a/gtk-doc.make +++ b/gtk-doc.make @@ -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)/ diff --git a/json-glib/Json-1.0.gir b/json-glib/Json-1.0.gir index adee031..d066388 100644 --- a/json-glib/Json-1.0.gir +++ b/json-glib/Json-1.0.gir @@ -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"> + + + + + + + + + + + + + + + + + + + + + + + + - A JSON array type. The contents of the #JsonArray structure are private + A JSON array type. The contents of the #JsonArray structure are private and should only be accessed by the provided API - Creates a new #JsonArray. + Creates a new #JsonArray. - the newly created #JsonArray + the newly created #JsonArray - Creates a new #JsonArray with @n_elements slots already allocated. + Creates a new #JsonArray with @n_elements slots already allocated. - the newly created #JsonArray + the newly created #JsonArray - number of slots to pre-allocate + number of slots to pre-allocate @@ -45,7 +69,7 @@ and should only be accessed by the provided API - Conveniently adds an array into @array. The @array takes ownership + 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() @@ -54,11 +78,14 @@ See also: json_array_add_element(), json_node_take_array() - a #JsonArray + a #JsonArray - - a #JsonArray + + a #JsonArray @@ -66,7 +93,7 @@ See also: json_array_add_element(), json_node_take_array() - Conveniently adds a boolean @value into @array + Conveniently adds a boolean @value into @array See also: json_array_add_element(), json_node_set_boolean() @@ -74,11 +101,11 @@ See also: json_array_add_element(), json_node_set_boolean() - a #JsonArray + a #JsonArray - a boolean value + a boolean value @@ -86,7 +113,7 @@ See also: json_array_add_element(), json_node_set_boolean() - Conveniently adds a floating point @value into @array + Conveniently adds a floating point @value into @array See also: json_array_add_element(), json_node_set_double() @@ -94,28 +121,28 @@ See also: json_array_add_element(), json_node_set_double() - a #JsonArray + a #JsonArray - a floating point value + a floating point value - Appends @node inside @array. The array will take ownership of the + Appends @node inside @array. The array will take ownership of the #JsonNode. - a #JsonArray + a #JsonArray - a #JsonNode + a #JsonNode @@ -123,7 +150,7 @@ See also: json_array_add_element(), json_node_set_double() - Conveniently adds an integer @value into @array + Conveniently adds an integer @value into @array See also: json_array_add_element(), json_node_set_int() @@ -131,11 +158,11 @@ See also: json_array_add_element(), json_node_set_int() - a #JsonArray + a #JsonArray - an integer value + an integer value @@ -143,7 +170,7 @@ See also: json_array_add_element(), json_node_set_int() - Conveniently adds a null element into @array + Conveniently adds a null element into @array See also: json_array_add_element(), %JSON_NODE_NULL @@ -151,7 +178,7 @@ See also: json_array_add_element(), %JSON_NODE_NULL - a #JsonArray + a #JsonArray @@ -159,7 +186,7 @@ See also: json_array_add_element(), %JSON_NODE_NULL - Conveniently adds an object into @array. The @array takes ownership + 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() @@ -168,11 +195,11 @@ See also: json_array_add_element(), json_node_take_object() - a #JsonArray + a #JsonArray - a #JsonObject + a #JsonObject @@ -180,7 +207,7 @@ See also: json_array_add_element(), json_node_take_object() - Conveniently adds a string @value into @array + Conveniently adds a string @value into @array See also: json_array_add_element(), json_node_set_string() @@ -188,11 +215,11 @@ See also: json_array_add_element(), json_node_set_string() - a #JsonArray + a #JsonArray - a string value + a string value @@ -200,27 +227,47 @@ See also: json_array_add_element(), json_node_set_string() - Retrieves a copy of the #JsonNode containing the value of the + Retrieves a copy of the #JsonNode containing the value of the element at @index_ inside a #JsonArray - a copy of the #JsonNode at the requested index. Use json_node_free() when done. + a copy of the #JsonNode at the requested + index. Use json_node_unref() when done. - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve + + 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. + + %TRUE if @a and @b are equal; %FALSE otherwise + + + + + a JSON array + + + + another JSON array + + + + - Iterates over all elements of @array and calls @func on + 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. - a #JsonArray + a #JsonArray - the function to be called on each element + the function to be called on each element - data to be passed to the function + data to be passed to the function @@ -250,21 +297,21 @@ remove elements from the @array. - Conveniently retrieves the array from the element at @index_ + Conveniently retrieves the array from the element at @index_ inside @array See also: json_array_get_element(), json_node_get_array() - the array + the array - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve @@ -272,21 +319,21 @@ See also: json_array_get_element(), json_node_get_array() - Conveniently retrieves the boolean value of the element at @index_ + Conveniently retrieves the boolean value of the element at @index_ inside @array See also: json_array_get_element(), json_node_get_boolean() - the integer value + the integer value - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve @@ -294,54 +341,57 @@ See also: json_array_get_element(), json_node_get_boolean() - Conveniently retrieves the floating point value of the element at + Conveniently retrieves the floating point value of the element at @index_ inside @array See also: json_array_get_element(), json_node_get_double() - the floating point value + the floating point value - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve - Retrieves the #JsonNode containing the value of the element at @index_ + Retrieves the #JsonNode containing the value of the element at @index_ inside a #JsonArray. - a pointer to the #JsonNode at the requested index + a pointer to the #JsonNode at the requested index - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve - Gets the elements of a #JsonArray as a list of #JsonNode<!-- -->s. + Gets the elements of a #JsonArray as a list of #JsonNode instances. - 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 + 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 - a #JsonArray + a #JsonArray @@ -349,34 +399,34 @@ inside a #JsonArray. - Conveniently retrieves the integer value of the element at @index_ + Conveniently retrieves the integer value of the element at @index_ inside @array See also: json_array_get_element(), json_node_get_int() - the integer value + the integer value - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve - Retrieves the length of a #JsonArray + Retrieves the length of a #JsonArray - the length of the array + the length of the array - a #JsonArray + a #JsonArray @@ -384,20 +434,20 @@ See also: json_array_get_element(), json_node_get_int() - Conveniently retrieves whether the element at @index_ is set to null + Conveniently retrieves whether the element at @index_ is set to null See also: json_array_get_element(), JSON_NODE_TYPE(), %JSON_NODE_NULL - %TRUE if the element is null + %TRUE if the element is null - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve @@ -405,21 +455,21 @@ See also: json_array_get_element(), JSON_NODE_TYPE(), %JSON_NODE_NULL - Conveniently retrieves the object from the element at @index_ + Conveniently retrieves the object from the element at @index_ inside @array See also: json_array_get_element(), json_node_get_object() - the object + the object - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve @@ -427,57 +477,107 @@ See also: json_array_get_element(), json_node_get_object() - Conveniently retrieves the string value of the element at @index_ + Conveniently retrieves the string value of the element at @index_ inside @array See also: json_array_get_element(), json_node_get_string() - the string value; the returned string is owned by the #JsonArray and should not be modified or freed + the string value; the returned string is owned by + the #JsonArray and should not be modified or freed - a #JsonArray + a #JsonArray - the index of the element to retrieve + the index of the element to retrieve + + 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. + + hash value for @key + + + + + a JSON array to hash + + + + + + Check whether the given @array has been marked as immutable by calling +json_array_seal() on it. + + %TRUE if the @array is immutable + + + + + a #JsonArray + + + + - Increase by one the reference count of a #JsonArray. - - the passed #JsonArray, with the reference count increased by one. + Increase by one the reference count of a #JsonArray. + + the passed #JsonArray, with the reference count + increased by one. - a #JsonArray + a #JsonArray - Removes the #JsonNode inside @array at @index_ freeing its allocated + Removes the #JsonNode inside @array at @index_ freeing its allocated resources. - a #JsonArray + a #JsonArray - the position of the element to be removed + the position of the element to be removed + + 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. + + + + + + a #JsonArray + + + + - Decreases by one the reference count of a #JsonArray. If the + 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. @@ -485,14 +585,14 @@ its allocated resources are freed. - a #JsonArray + a #JsonArray - The function to be passed to json_array_foreach_element(). You + 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. @@ -500,19 +600,19 @@ this function. It is safe to change the value of @element_node. - the iterated #JsonArray + the iterated #JsonArray - the index of the element + the index of the element - a #JsonNode containing the value at @index_ + a #JsonNode containing the value at @index_ - data passed to the function + data passed to the function @@ -521,14 +621,14 @@ this function. It is safe to change the value of @element_node. c:type="JsonBoxedDeserializeFunc" version="0.10" introspectable="0"> - Deserializes the contents of the passed #JsonNode into a #GBoxed + Deserializes the contents of the passed #JsonNode into a #GBoxed - the newly created boxed type + the newly created boxed type - a #JsonNode + a #JsonNode @@ -536,14 +636,14 @@ this function. It is safe to change the value of @element_node. - Serializes the passed #GBoxed and stores it inside a #JsonNode + Serializes the passed #GBoxed and stores it inside a #JsonNode - the newly created #JsonNode + the newly created #JsonNode - a #GBoxed + a #GBoxed @@ -556,252 +656,275 @@ this function. It is safe to change the value of @element_node. glib:type-name="JsonBuilder" glib:get-type="json_builder_get_type" glib:type-struct="BuilderClass"> - 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 - Creates a new #JsonBuilder. You can use this object to generate a -JSON tree and obtain the root #JsonNode<!-- -->s. + Creates a new #JsonBuilder. You can use this object to generate a +JSON tree and obtain the root #JsonNode. + + the newly created #JsonBuilder instance + + + + + Creates a new #JsonBuilder instance with its #JsonBuilder:immutable property +set to %TRUE to create immutable output trees. - the newly created #JsonBuilder instance + a new #JsonBuilder - If called after json_builder_set_member_name(), sets @value as member of the + 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() - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - the value of the member or element + the value of the member or element - If called after json_builder_set_member_name(), sets @value as member of the + 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() - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - the value of the member or element + the value of the member or element - If called after json_builder_set_member_name(), sets @value as member of the + 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() - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - the value of the member or element + the value of the member or element - If called after json_builder_set_member_name(), sets null as member of the + 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() - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - If called after json_builder_set_member_name(), sets @value as member of the + 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() - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - the value of the member or element + the value of the member or element - If called after json_builder_set_member_name(), sets @node as member of the + 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. +recent opened array. + +The builder will take ownership of the #JsonNode. - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - - the value of the member or element + + the value of the member or element - Opens a subarray inside the given @builder. When done adding members to + 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. - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - Opens a subobject inside the given @builder. When done adding members to + 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. - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - Closes the subarray inside the given @builder that was opened by the most + 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(). - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - Closes the subobject inside the given @builder that was opened by the most + 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(). - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - Returns the root of the current constructed tree, if the build is complete + Returns the root of the current constructed tree, if the build is complete (ie: all opened objects, object members and arrays are being closed). - the #JsonNode, or %NULL if the build is not complete. Free the returned value with json_node_free(). + the #JsonNode, or %NULL if the build is not complete. + Free the returned value with json_node_unref(). - a #JsonBuilder + a #JsonBuilder - Resets the state of the @builder back to its initial state. + Resets the state of the @builder back to its initial state. - a #JsonBuilder + a #JsonBuilder - Set the name of the next member in an object. The next call must add a value, + 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. - the #JsonBuilder, or %NULL if the call was inconsistent + the #JsonBuilder, or %NULL if the call was inconsistent - a #JsonBuilder + a #JsonBuilder - the name of the member + the name of the member + + 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. + + @@ -813,8 +936,7 @@ Can be called only if the call is associated to an object. c:type="JsonBuilderClass" glib:is-gtype-struct-for="Builder" version="0.12"> - The <structname>JsonBuilder</structname> structure contains only -private data + The `JsonBuilderClass` structure contains only private data @@ -842,28 +964,28 @@ private data glib:type-name="JsonGenerator" glib:get-type="json_generator_get_type" glib:type-struct="GeneratorClass"> - JSON data streams generator. The contents of the #JsonGenerator structure + JSON data streams generator. The contents of the #JsonGenerator structure are private and should only be accessed via the provided API. - Creates a new #JsonGenerator. You can use this object to generate a + 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. - the newly created #JsonGenerator instance + the newly created #JsonGenerator instance - Retrieves the value set using json_generator_set_indent(). + Retrieves the value set using json_generator_set_indent(). - the number of repetitions per indentation level + the number of repetitions per indentation level - a #JsonGenerator + a #JsonGenerator @@ -871,14 +993,14 @@ JSON data stream starting from a data object model composed by - Retrieves the value set using json_generator_set_indent_char(). + Retrieves the value set using json_generator_set_indent_char(). - the character to be used when indenting + the character to be used when indenting - a #JsonGenerator + a #JsonGenerator @@ -886,14 +1008,15 @@ JSON data stream starting from a data object model composed by - Retrieves the value set using json_generator_set_pretty(). + Retrieves the value set using json_generator_set_pretty(). - %TRUE if the generated JSON should be pretty-printed, and %FALSE otherwise + %TRUE if the generated JSON should be pretty-printed, and + %FALSE otherwise - a #JsonGenerator + a #JsonGenerator @@ -901,15 +1024,16 @@ JSON data stream starting from a data object model composed by - Retrieves a pointer to the root #JsonNode set using + Retrieves a pointer to the root #JsonNode set using json_generator_set_root(). - a #JsonNode, or %NULL. The returned node is owned by the #JsonGenerator and it should not be freed + a #JsonNode, or %NULL. The returned node + is owned by the #JsonGenerator and it should not be freed - a #JsonGenerator + a #JsonGenerator @@ -917,17 +1041,18 @@ json_generator_set_root(). - Sets the number of repetitions for each indentation level. + Sets the number of repetitions for each indentation level. - a #JsonGenerator + a #JsonGenerator - the number of repetitions of the indentation character that should be applied when pretty printing + the number of repetitions of the indentation character + that should be applied when pretty printing @@ -935,17 +1060,17 @@ json_generator_set_root(). - Sets the character to be used when indenting + Sets the character to be used when indenting - a #JsonGenerator + a #JsonGenerator - a Unicode character to be used when indenting + a Unicode character to be used when indenting @@ -953,7 +1078,7 @@ json_generator_set_root(). - Sets whether the generated JSON should be pretty printed, using the + 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. @@ -961,70 +1086,72 @@ property and the spacing specified in #JsonGenerator:indent property. - a #JsonGenerator + a #JsonGenerator - whether the generated string should be pretty printed + whether the generated string should be pretty printed - Sets @node as the root of the JSON data stream to be serialized by + 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. - a #JsonGenerator + a #JsonGenerator - a #JsonNode + a #JsonNode - Generates a JSON data stream from @generator and returns it as a + Generates a JSON data stream from @generator and returns it as a buffer. - a newly allocated buffer holding a JSON data stream. Use g_free() to free the allocated resources. + a newly allocated buffer holding a JSON data stream. + Use g_free() to free the allocated resources. - a #JsonGenerator + a #JsonGenerator - return location for the length of the returned buffer, or %NULL + return location for the length of the returned + buffer, or %NULL - Creates a JSON data stream and puts it inside @filename, overwriting the + Creates a JSON data stream and puts it inside @filename, overwriting the current file contents. This operation is atomic. - %TRUE if saving was successful. + %TRUE if saving was successful. - a #JsonGenerator + a #JsonGenerator - path to the target file + path to the target file @@ -1033,41 +1160,43 @@ current file contents. This operation is atomic. c:identifier="json_generator_to_stream" version="0.12" throws="1"> - Outputs JSON data and streams it (synchronously) to @stream. + Outputs JSON data and streams it (synchronously) to @stream. - %TRUE if the write operation was successful, and %FALSE on failure. In case of error, the #GError will be filled accordingly + %TRUE if the write operation was successful, and %FALSE + on failure. In case of error, the #GError will be filled accordingly - a #JsonGenerator + a #JsonGenerator - a #GOutputStream + a #GOutputStream - a #GCancellable, or %NULL + a #GCancellable, or %NULL - Number of spaces to be used to indent when pretty printing. + Number of spaces to be used to indent when pretty printing. - The character that should be used when indenting in pretty print. + The character that should be used when indenting in pretty print. - Whether the output should be "pretty-printed", with indentation and + Whether the output should be "pretty-printed", with indentation and newlines. The indentation level can be controlled by using the JsonGenerator:indent property @@ -1076,7 +1205,7 @@ JsonGenerator:indent property version="0.4" writable="1" transfer-ownership="none"> - The root #JsonNode to be used when constructing a JSON data + The root #JsonNode to be used when constructing a JSON data stream. @@ -1090,7 +1219,7 @@ stream. - #JsonGenerator class + #JsonGenerator class @@ -1127,149 +1256,196 @@ stream. c:type="JsonGeneratorPrivate" disguised="1"> + + Json major version component (e.g. 1 if %JSON_VERSION is 1.2.3) + + + + Json micro version component (e.g. 3 if %JSON_VERSION is 1.2.3) + + + + Json minor version component (e.g. 2 if %JSON_VERSION is 1.2.3) + + - A generic container of JSON data types. The contents of the #JsonNode + 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. + + Allocates a new #JsonNode. Use json_node_init() and its variants +to initialize the returned value. + + the newly allocated #JsonNode. Use + json_node_free() to free the resources allocated by this function + + + - Creates a new #JsonNode of @type. + 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); +|[<!-- language="C" --> + json_node_init (json_node_alloc (), type); ]| - the newly created #JsonNode + the newly created #JsonNode - a #JsonNodeType + a #JsonNodeType - 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. - the copied #JsonNode + the copied #JsonNode - a #JsonNode + a #JsonNode - Retrieves the #JsonArray stored inside a #JsonNode and returns it + Retrieves the #JsonArray stored inside a #JsonNode and returns it with its reference count increased by one. - the #JsonArray with its reference count increased. + the #JsonArray with its reference + count increased. - a #JsonNode + a #JsonNode - Retrieves the #JsonObject inside @node. The reference count of + Retrieves the #JsonObject inside @node. The reference count of the returned object is increased. - the #JsonObject + the #JsonObject - a #JsonNode + a #JsonNode - Gets a copy of the string value stored inside a #JsonNode + Gets a copy of the string value stored inside a #JsonNode - a newly allocated string containing a copy of the #JsonNode contents. Use g_free() to free the allocated resources + a newly allocated string containing a copy + of the #JsonNode contents. Use g_free() to free the allocated resources - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE + + 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. + + %TRUE if @a and @b are equal; %FALSE otherwise + + + + + a JSON node + + + + another JSON node + + + + - Frees the resources allocated by @node. + Frees the resources allocated by @node. - a #JsonNode + a #JsonNode - Retrieves the #JsonArray stored inside a #JsonNode + Retrieves the #JsonArray stored inside a #JsonNode - the #JsonArray + the #JsonArray - a #JsonNode + a #JsonNode - Gets the boolean value stored inside a #JsonNode + Gets the boolean value stored inside a #JsonNode - a boolean value. + a boolean value. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - Gets the double value stored inside a #JsonNode + Gets the double value stored inside a #JsonNode - a double value. + a double value. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - Gets the integer value stored inside a #JsonNode + Gets the integer value stored inside a #JsonNode - an integer value. + an integer value. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE @@ -1277,73 +1453,74 @@ the returned object is increased. - Retrieves the #JsonNodeType of @node + Retrieves the #JsonNodeType of @node - the type of the node + the type of the node - a #JsonNode + a #JsonNode - Retrieves the #JsonObject stored inside a #JsonNode + Retrieves the #JsonObject stored inside a #JsonNode - the #JsonObject + the #JsonObject - a #JsonNode + a #JsonNode - Retrieves the parent #JsonNode of @node. + Retrieves the parent #JsonNode of @node. - the parent node, or %NULL if @node is the root node + the parent node, or %NULL if @node is + the root node - a #JsonNode + a #JsonNode - Gets the string value stored inside a #JsonNode + Gets the string value stored inside a #JsonNode - a string value. + a string value. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - Retrieves a value from a #JsonNode and copies into @value. When done + Retrieves a value from a #JsonNode and copies into @value. When done using it, call g_value_unset() on the #GValue. - a #JsonNode + a #JsonNode - return location for an uninitialized value + return location for an uninitialized value @@ -1351,34 +1528,52 @@ using it, call g_value_unset() on the #GValue. - Returns the #GType of the payload of the node. + Returns the #GType of the payload of the node. - a #GType for the payload. + a #GType for the payload. - a #JsonNode + a #JsonNode + + 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). + + hash value for @key + + + + + a JSON node to hash + + + + - Initializes a @node to a specific @type. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - the type of JSON node to initialize @node to + the type of JSON node to initialize @node to @@ -1386,23 +1581,26 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_ARRAY and sets @array into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - - the #JsonArray to initialize @node with, or %NULL + + the #JsonArray to initialize @node with, or %NULL @@ -1410,21 +1608,21 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_VALUE and sets @value into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - a boolean value + a boolean value @@ -1432,41 +1630,41 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_VALUE and sets @value into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - a floating point value + a floating point value - Initializes @node to %JSON_NODE_VALUE and sets @value into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - an integer + an integer @@ -1474,17 +1672,17 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_NULL. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize @@ -1492,23 +1690,26 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_OBJECT and sets @object into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - - the #JsonObject to initialize @node with, or %NULL + + the #JsonObject to initialize @node with, or %NULL @@ -1516,119 +1717,184 @@ the given type, and any data contained will be cleared. - Initializes @node to %JSON_NODE_VALUE and sets @value into it. + 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. - the initialized #JsonNode + the initialized #JsonNode - the #JsonNode to initialize + the #JsonNode to initialize - - a string value + + a string value + + Check whether the given @node has been marked as immutable by calling +json_node_seal() on it. + + %TRUE if the @node is immutable + + + + + 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. - %TRUE if the node is null + %TRUE if the node is null - a #JsonNode + a #JsonNode + + + + + + Increment the reference count of @node. + + a pointer to @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. + + + + + + a #JsonNode - 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. - a #JsonNode initialized to %JSON_NODE_ARRAY + a #JsonNode initialized to %JSON_NODE_ARRAY - a #JsonArray + a #JsonArray - Sets @value as the boolean content of the @node, replacing any existing -content. + Sets @value as the boolean content of the @node, replacing any existing +content. + +It is an error to call this on an immutable node. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - a boolean value + a boolean value - Sets @value as the double content of the @node, replacing any existing -content. + Sets @value as the double content of the @node, replacing any existing +content. + +It is an error to call this on an immutable node. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - a double value + a double value - Sets @value as the integer content of the @node, replacing any existing -content. + Sets @value as the integer content of the @node, replacing any existing +content. + +It is an error to call this on an immutable node. - a #JsonNode of type %JSON_NODE_VALUE + a #JsonNode of type %JSON_NODE_VALUE - an integer value + an integer value - Sets @objects inside @node. The reference count of @object is increased. + 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. - a #JsonNode initialized to %JSON_NODE_OBJECT + a #JsonNode initialized to %JSON_NODE_OBJECT - - a #JsonObject + + a #JsonObject @@ -1636,121 +1902,153 @@ content. - 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. - a #JsonNode + a #JsonNode - the parent #JsonNode of @node + the parent #JsonNode of @node - Sets @value as the string content of the @node, replacing any existing -content. + Sets @value as the string content of the @node, replacing any existing +content. + +It is an error to call this on an immutable node. - a #JsonNode initialized to %JSON_NODE_VALUE + a #JsonNode initialized to %JSON_NODE_VALUE - a string value + a string value - 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. - a #JsonNode initialized to %JSON_NODE_VALUE + a #JsonNode initialized to %JSON_NODE_VALUE - the #GValue to set + the #GValue to set - Sets @array into @node without increasing the #JsonArray reference count. + Sets @array into @node without increasing the #JsonArray reference count. + +It is an error to call this on an immutable node. - a #JsonNode initialized to %JSON_NODE_ARRAY + a #JsonNode initialized to %JSON_NODE_ARRAY - a #JsonArray + a #JsonArray - Sets @object inside @node. The reference count of @object is not increased. + Sets @object inside @node. The reference count of @object is not increased. + +It is an error to call this on an immutable node. - a #JsonNode initialized to %JSON_NODE_OBJECT + a #JsonNode initialized to %JSON_NODE_OBJECT - a #JsonObject + a #JsonObject - Retrieves the user readable name of the data type contained by @node. + Retrieves the user readable name of the data type contained by @node. - a string containing the name of the type. The returned string is owned by the node and should never be modified or freed + a string containing the name of the type. The returned string + is owned by the node and should never be modified or freed - a #JsonNode + a #JsonNode - - Allocates a new #JsonNode. Use json_node_init() and its variants -to initialize the returned value. - - the newly allocated #JsonNode. Use json_node_free() to free the resources allocated by this function - + + Decrement the reference count of @node. If it reaches zero, the node is +freed. + + - + + + a #JsonNode + + + + - - Indicates the content of a #JsonNode. - - The node contains a #JsonObject + + Indicates the content of a #JsonNode. + + The node contains a #JsonObject - - The node contains a #JsonArray + + The node contains a #JsonArray - - The node contains a fundamental type + + The node contains a fundamental type - - Special type, for nodes containing null + + Special type, for nodes containing null glib:type-name="JsonObject" glib:get-type="json_object_get_type" c:symbol-prefix="object"> - A JSON object type. The contents of the #JsonObject structure are private + A JSON object type. The contents of the #JsonObject structure are private and should only be accessed by the provided API - Creates a new #JsonObject, an JSON object type representation. + Creates a new #JsonObject, an JSON object type representation. - the newly created #JsonObject + the newly created #JsonObject - Adds a member named @member_name and containing @node into a #JsonObject. + 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. + Use json_object_set_member() instead - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -1797,27 +2096,46 @@ This function will return if the @object already contains a member - Retrieves a copy of the #JsonNode containing the value of @member_name + Retrieves a copy of the #JsonNode containing the value of @member_name inside a #JsonObject - a copy of the node for the requested object member or %NULL. Use json_node_free() when done. + a copy of the node for the requested + object member or %NULL. Use json_node_unref() when done. - a #JsonObject + a #JsonObject - the name of the JSON object member to access + the name of the JSON object member to access + + Check whether @a and @b are equal #JsonObjects, meaning they have the same +set of members, and the values of corresponding members are equal. + + %TRUE if @a and @b are equal; %FALSE otherwise + + + + + a JSON object + + + + another JSON object + + + + - Iterates over all members of @object and calls @func on + 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. - a #JsonObject + a #JsonObject - the function to be called on each member + the function to be called on each member - data to be passed to the function + data to be passed to the function @@ -1847,21 +2165,21 @@ remove members from the @object. - Convenience function that retrieves the array + Convenience function that retrieves the array stored in @member_name of @object See also: json_object_get_member() - the array inside the object's member + the array inside the object's member - a #JsonObject + a #JsonObject - the name of the member + the name of the member @@ -1869,21 +2187,21 @@ See also: json_object_get_member() - Convenience function that retrieves the boolean value + Convenience function that retrieves the boolean value stored in @member_name of @object See also: json_object_get_member() - the boolean value of the object's member + the boolean value of the object's member - a #JsonObject + a #JsonObject - the name of the member + the name of the member @@ -1891,21 +2209,21 @@ See also: json_object_get_member() - Convenience function that retrieves the floating point value + Convenience function that retrieves the floating point value stored in @member_name of @object See also: json_object_get_member() - the floating point value of the object's member + the floating point value of the object's member - a #JsonObject + a #JsonObject - the name of the member + the name of the member @@ -1913,55 +2231,60 @@ See also: json_object_get_member() - Convenience function that retrieves the integer value + Convenience function that retrieves the integer value stored in @member_name of @object See also: json_object_get_member() - the integer value of the object's member + the integer value of the object's member - a #JsonObject + a #JsonObject - the name of the member + the name of the member - Retrieves the #JsonNode containing the value of @member_name inside + Retrieves the #JsonNode containing the value of @member_name inside a #JsonObject. - a pointer to the node for the requested object member, or %NULL + a pointer to the node for the requested object + member, or %NULL - a #JsonObject + a #JsonObject - the name of the JSON object member to access + the name of the JSON object member to access - Retrieves all the names of the members of a #JsonObject. You can + Retrieves all the names of the members of a #JsonObject. You can obtain the value for each member using json_object_get_member(). - 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. + 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. - a #JsonObject + a #JsonObject @@ -1969,21 +2292,21 @@ obtain the value for each member using json_object_get_member(). - Convenience function that checks whether the value + Convenience function that checks whether the value stored in @member_name of @object is null See also: json_object_get_member() - %TRUE if the value is null + %TRUE if the value is null - a #JsonObject + a #JsonObject - the name of the member + the name of the member @@ -1991,34 +2314,36 @@ See also: json_object_get_member() - Convenience function that retrieves the object -stored in @member_name of @object + 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() - - the object inside the object's member + + the object inside the object’s + member, or %NULL if the value for the member is `null` - a #JsonObject + a #JsonObject - the name of the member + the name of the member - Retrieves the number of members of a #JsonObject. + Retrieves the number of members of a #JsonObject. - the number of members + the number of members - a #JsonObject + a #JsonObject @@ -2026,90 +2351,142 @@ See also: json_object_get_member() - Convenience function that retrieves the string value + Convenience function that retrieves the string value stored in @member_name of @object See also: json_object_get_member() - the string value of the object's member + the string value of the object's member - a #JsonObject + a #JsonObject - the name of the member + the name of the member - Retrieves all the values of the members of a #JsonObject. + Retrieves all the values of the members of a #JsonObject. - a #GList of #JsonNode<!-- -->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. + 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. - a #JsonObject + a #JsonObject - Checks whether @object has a member named @member_name. + Checks whether @object has a member named @member_name. - %TRUE if the JSON object has the requested member + %TRUE if the JSON object has the requested member - a #JsonObject + a #JsonObject - the name of a JSON object member + the name of a JSON object member + + 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. + + hash value for @key + + + + + a JSON object to hash + + + + + + Check whether the given @object has been marked as immutable by calling +json_object_seal() on it. + + %TRUE if the @object is immutable + + + + + a #JsonObject + + + + - Increase by one the reference count of a #JsonObject. - - the passed #JsonObject, with the reference count increased by one. + Increase by one the reference count of a #JsonObject. + + the passed #JsonObject, with the reference count + increased by one. - a #JsonObject + a #JsonObject - Removes @member_name from @object, freeing its allocated resources. + Removes @member_name from @object, freeing its allocated resources. - a #JsonObject + a #JsonObject - the name of the member to remove + the name of the member to remove + + 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. + + + + + + a #JsonObject + + + + - Convenience function for setting an array @value of + 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() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2136,7 +2513,7 @@ See also: json_object_set_member() - Convenience function for setting a boolean @value of + Convenience function for setting a boolean @value of @member_name inside @object. See also: json_object_set_member() @@ -2145,15 +2522,15 @@ See also: json_object_set_member() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2161,7 +2538,7 @@ See also: json_object_set_member() - Convenience function for setting a floating point @value + Convenience function for setting a floating point @value of @member_name inside @object. See also: json_object_set_member() @@ -2170,15 +2547,15 @@ See also: json_object_set_member() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2186,7 +2563,7 @@ See also: json_object_set_member() - Convenience function for setting an integer @value of + Convenience function for setting an integer @value of @member_name inside @object. See also: json_object_set_member() @@ -2195,15 +2572,15 @@ See also: json_object_set_member() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2211,7 +2588,7 @@ See also: json_object_set_member() - Sets @node as the value of @member_name inside @object. + 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. - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2237,7 +2614,7 @@ member is added to @object. - Convenience function for setting a null @value of + Convenience function for setting a null @value of @member_name inside @object. See also: json_object_set_member() @@ -2246,11 +2623,11 @@ See also: json_object_set_member() - a #JsonObject + a #JsonObject - the name of the member + the name of the member @@ -2258,7 +2635,7 @@ See also: json_object_set_member() - Convenience function for setting an object @value of + 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() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member @@ -2285,7 +2662,7 @@ See also: json_object_set_member() - Convenience function for setting a string @value of + Convenience function for setting a string @value of @member_name inside @object. See also: json_object_set_member() @@ -2294,21 +2671,21 @@ See also: json_object_set_member() - a #JsonObject + a #JsonObject - the name of the member + the name of the member - the value of the member + the value of the member - Decreases by one the reference count of a #JsonObject. If the + 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. @@ -2316,14 +2693,14 @@ its allocated resources are freed. - a #JsonObject + a #JsonObject - The function to be passed to json_object_foreach_member(). You + 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. @@ -2331,23 +2708,114 @@ this function. It is safe to change the value of @member_node. - the iterated #JsonObject + the iterated #JsonObject - the name of the member + the name of the member - a #JsonNode containing the @member_name value + a #JsonNode containing the @member_name value - data passed to the function + data passed to the function + + 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. + + + + + + + + + + + + + + + + + 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. + } +]| + + + + + + an uninitialised #JsonObjectIter + + + + the #JsonObject to iterate over + + + + + + 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. + + %TRUE if @member_name and @member_node are valid; %FALSE if the end + of the object has been reached + + + + + a #JsonObjectIter + + + + return + location for the member name, or %NULL to ignore + + + + return + location for the member value, or %NULL to ignore + + + + + glib:type-name="JsonParser" glib:get-type="json_parser_get_type" glib:type-struct="ParserClass"> - JSON data streams parser. The contents of the #JsonParser structure are + JSON data streams parser. The contents of the #JsonParser structure are private and should only be accessed via the provided API. - Creates a new #JsonParser instance. You can use the #JsonParser to + 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. - the newly created #JsonParser. Use g_object_unref() to release all the memory it allocates. + the newly created #JsonParser. Use g_object_unref() + to release all the memory it allocates. - - - + + Creates a new #JsonParser instance with its #JsonParser:immutable property +set to %TRUE to create immutable output trees. + + a new #JsonParser + - + @@ -2484,50 +2958,52 @@ hierarchy using the data types API. - Retrieves the line currently parsed, starting from 1. + 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. - the currently parsed line, or 0. + the currently parsed line, or 0. - a #JsonParser + a #JsonParser - Retrieves the current position inside the current line, starting + 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. - the position in the current line, or 0. + the position in the current line, or 0. - a #JsonParser + a #JsonParser - Retrieves the top level node from the parsed JSON stream. + Retrieves the top level node from the parsed JSON stream. - the root #JsonNode . The returned node is owned by the #JsonParser and should never be modified or freed. + the root #JsonNode . The returned + node is owned by the #JsonParser and should never be modified + or freed. - a #JsonParser + a #JsonParser @@ -2535,7 +3011,7 @@ yield 0. - A JSON data stream might sometimes contain an assignment, like: + 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. - %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. + %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. - a #JsonParser + a #JsonParser - Return location for the variable name, or %NULL + Return location for the variable + name, or %NULL @@ -2569,24 +3050,25 @@ used. - Loads a JSON stream from a buffer and parses it. You can call this function + 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. - %TRUE if the buffer was succesfully parser. In case of error, @error is set accordingly and %FALSE is returned + %TRUE if the buffer was succesfully parser. In case + of error, @error is set accordingly and %FALSE is returned - a #JsonParser + a #JsonParser - the buffer to parse + the buffer to parse - the length of the buffer, or -1 + the length of the buffer, or -1 @@ -2594,19 +3076,20 @@ parser will be destroyed each time. - Loads a JSON stream from the content of @filename and parses it. See + Loads a JSON stream from the content of @filename and parses it. See json_parser_load_from_data(). - %TRUE if the file was successfully loaded and parsed. In case of error, @error is set accordingly and %FALSE is returned + %TRUE if the file was successfully loaded and parsed. + In case of error, @error is set accordingly and %FALSE is returned - a #JsonParser + a #JsonParser - the path for the file to parse + the path for the file to parse @@ -2615,29 +3098,31 @@ json_parser_load_from_data(). c:identifier="json_parser_load_from_stream" version="0.12" throws="1"> - Loads the contents of an input stream and parses them. + 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. - %TRUE if the data stream was successfully read and parsed, and %FALSE otherwise + %TRUE if the data stream was successfully read and + parsed, and %FALSE otherwise - a #JsonParser + a #JsonParser - an open #GInputStream + an open #GInputStream - a #GCancellable, or %NULL + a #GCancellable, or %NULL @@ -2645,7 +3130,7 @@ on the passed @error. - Asynchronously reads the contents of @stream. + 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. - a #JsonParser + a #JsonParser - a #GInputStream + a #GInputStream - a #GCancellable, or %NULL + a #GCancellable, or %NULL - a #GAsyncReadyCallback to call when the request is satisfied + a #GAsyncReadyCallback to call when the request is satisfied - the data to pass to @callback + the data to pass to @callback @@ -2689,23 +3176,35 @@ of the operation. c:identifier="json_parser_load_from_stream_finish" version="0.12" throws="1"> - Finishes an asynchronous stream loading started with + Finishes an asynchronous stream loading started with json_parser_load_from_stream_async(). - %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. + %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. - a #JsonParser + a #JsonParser - a #GAsyncResult + a #GAsyncResult + + 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. + + @@ -2713,7 +3212,7 @@ json_parser_load_from_stream_async(). - The ::array-element signal is emitted each time the #JsonParser + 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. @@ -2721,63 +3220,63 @@ array and element index are passed to the signal handlers. - a #JsonArray + a #JsonArray - the index of the newly parsed element + the index of the newly parsed element - The ::array-end signal is emitted each time the #JsonParser + The ::array-end signal is emitted each time the #JsonParser has successfully parsed an entire #JsonArray - the parsed #JsonArray + the parsed #JsonArray - The ::array-start signal is emitted each time the #JsonParser + The ::array-start signal is emitted each time the #JsonParser starts parsing a #JsonArray - The ::error signal is emitted each time a #JsonParser encounters + The ::error signal is emitted each time a #JsonParser encounters an error in a JSON stream. - a pointer to the #GError + a pointer to the #GError - The ::object-end signal is emitted each time the #JsonParser + The ::object-end signal is emitted each time the #JsonParser has successfully parsed an entire #JsonObject. - the parsed #JsonObject + the parsed #JsonObject - The ::object-member signal is emitted each time the #JsonParser + 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. @@ -2785,31 +3284,31 @@ object and member are passed to the signal handlers. - a #JsonObject + a #JsonObject - the name of the newly parsed member + the name of the newly parsed member - The ::object-start signal is emitted each time the #JsonParser + The ::object-start signal is emitted each time the #JsonParser starts parsing a #JsonObject. - The ::parse-end signal is emitted when the parser successfully + The ::parse-end signal is emitted when the parser successfully finished parsing a JSON data stream - The ::parse-start signal is emitted when the parser began parsing + The ::parse-start signal is emitted when the parser began parsing a JSON data stream. @@ -2819,7 +3318,7 @@ a JSON data stream. - #JsonParser class. + #JsonParser class. @@ -3009,43 +3508,67 @@ a JSON data stream. - - Error enumeration for #JsonParser + + Error enumeration for #JsonParser This enumeration can be extended at later date - - parse error + + parse error - unexpected trailing comma + c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA" + glib:nick="trailing-comma"> + unexpected trailing comma - expected comma + c:identifier="JSON_PARSER_ERROR_MISSING_COMMA" + glib:nick="missing-comma"> + expected comma - expected colon + c:identifier="JSON_PARSER_ERROR_MISSING_COLON" + glib:nick="missing-colon"> + expected colon - invalid bareword + c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD" + glib:nick="invalid-bareword"> + invalid bareword - empty member name (Since: 0.16) + c:identifier="JSON_PARSER_ERROR_EMPTY_MEMBER_NAME" + glib:nick="empty-member-name"> + empty member name (Since: 0.16) - - unknown error + c:identifier="JSON_PARSER_ERROR_INVALID_DATA" + glib:nick="invalid-data"> + invalid data (Since: 0.18) + + + unknown error + + + + + @@ -3057,45 +3580,42 @@ This enumeration can be extended at later date glib:type-name="JsonPath" glib:get-type="json_path_get_type" glib:type-struct="PathClass"> - 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. - Creates a new #JsonPath instance. + Creates a new #JsonPath instance. Once created, the #JsonPath object should be used with json_path_compile() and json_path_match(). - the newly created #JsonPath instance. Use g_object_unref() to free the allocated resources when done + the newly created #JsonPath instance. Use + g_object_unref() to free the allocated resources when done - - - - - - Queries a JSON tree using a JSONPath expression. + 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. - a newly-created #JsonNode of type %JSON_NODE_ARRAY containing an array of matching #JsonNode<!-- -->s. Use json_node_free() when done + a newly-created #JsonNode of type + %JSON_NODE_ARRAY containing an array of matching #JsonNodes. + Use json_node_unref() when done - a JSONPath expression + a JSONPath expression - the root of a JSON tree + the root of a JSON tree @@ -3104,41 +3624,45 @@ matches it against the JSON tree pointed by @root. c:identifier="json_path_compile" version="0.14" throws="1"> - Validates and decomposes @expression. + Validates and decomposes @expression. A JSONPath expression must be compiled before calling json_path_match(). - %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 + %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 - a #JsonPath + a #JsonPath - a JSONPath expression + a JSONPath expression - Matches the JSON tree pointed by @root using the expression compiled + 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. - a newly-created #JsonNode of type %JSON_NODE_ARRAY containing an array of matching #JsonNode<!-- -->s. Use json_node_free() when done + a newly-created #JsonNode of type + %JSON_NODE_ARRAY containing an array of matching #JsonNodes. + Use json_node_unref() when done - a compiled #JsonPath + a compiled #JsonPath - a #JsonNode + a #JsonNode @@ -3149,16 +3673,27 @@ returned wrapped in a #JsonNode. disguised="1" glib:is-gtype-struct-for="Path" version="0.14"> - 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. - - Error code enumeration for the %JSON_PATH_ERROR domain. - + Error code enumeration for the %JSON_PATH_ERROR domain. + - Invalid query + c:identifier="JSON_PATH_ERROR_INVALID_QUERY" + glib:nick="query"> + Invalid query + + + + + glib:type-name="JsonReader" glib:get-type="json_reader_get_type" glib:type-struct="ReaderClass"> - 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 - Creates a new #JsonReader. You can use this object to read the contents of + Creates a new #JsonReader. You can use this object to read the contents of the JSON tree starting from @node - the newly created #JsonReader. Use g_object_unref() to release the allocated resources when done + the newly created #JsonReader. Use g_object_unref() to + release the allocated resources when done - - a #JsonNode, or %NULL + + a #JsonNode, or %NULL - - - - - - Counts the elements of the current position, if @reader is + Counts the elements of the current position, if @reader is positioned on an array - the number of elements, or -1. In case of failure the #JsonReader is set in an error state + the number of elements, or -1. In case of failure + the #JsonReader is set in an error state - a #JsonReader + a #JsonReader @@ -3208,15 +3743,16 @@ positioned on an array - Counts the members of the current position, if @reader is + Counts the members of the current position, if @reader is positioned on an object - the number of members, or -1. In case of failure the #JsonReader is set in an error state + the number of members, or -1. In case of failure + the #JsonReader is set in an error state - a #JsonReader + a #JsonReader @@ -3224,7 +3760,7 @@ positioned on an object - Moves the cursor back to the previous node after being positioned + 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 @@ -3233,7 +3769,7 @@ This function resets the error state of @reader, if any was set - a #JsonReader + a #JsonReader @@ -3241,7 +3777,7 @@ This function resets the error state of @reader, if any was set - Moves the cursor back to the previous node after being positioned + 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 @@ -3250,7 +3786,7 @@ This function resets the error state of @reader, if any was set - a #JsonReader + a #JsonReader @@ -3258,14 +3794,14 @@ This function resets the error state of @reader, if any was set - Retrieves the boolean value of the current position of @reader + Retrieves the boolean value of the current position of @reader - the boolean value + the boolean value - a #JsonReader + a #JsonReader @@ -3273,14 +3809,14 @@ This function resets the error state of @reader, if any was set - Retrieves the floating point value of the current position of @reader + Retrieves the floating point value of the current position of @reader - the floating point value + the floating point value - a #JsonReader + a #JsonReader @@ -3288,15 +3824,15 @@ This function resets the error state of @reader, if any was set - Retrieves the #GError currently set on @reader, if the #JsonReader + Retrieves the #GError currently set on @reader, if the #JsonReader is in error state - the pointer to the error, or %NULL + the pointer to the error, or %NULL - a #JsonReader + a #JsonReader @@ -3304,14 +3840,14 @@ is in error state - Retrieves the integer value of the current position of @reader + Retrieves the integer value of the current position of @reader - the integer value + the integer value - a #JsonReader + a #JsonReader @@ -3319,14 +3855,14 @@ is in error state - Retrieves the name of the current member. + Retrieves the name of the current member. - the name of the member, or %NULL + the name of the member, or %NULL - a #JsonReader + a #JsonReader @@ -3334,14 +3870,14 @@ is in error state - Checks whether the value of the current position of @reader is 'null' + Checks whether the value of the current position of @reader is 'null' - %TRUE if 'null' is set, and %FALSE otherwise + %TRUE if 'null' is set, and %FALSE otherwise - a #JsonReader + a #JsonReader @@ -3349,14 +3885,14 @@ is in error state - Retrieves the string value of the current position of @reader + Retrieves the string value of the current position of @reader - the string value + the string value - a #JsonReader + a #JsonReader @@ -3364,14 +3900,16 @@ is in error state - Retrieves the #JsonNode of the current position of @reader + Retrieves the #JsonNode of the current position of @reader - a #JsonNode, or %NULL. The returned node is owned by the #JsonReader and it should not be modified or freed directly + a #JsonNode, or %NULL. The returned node + is owned by the #JsonReader and it should not be modified or freed + directly - a #JsonReader + a #JsonReader @@ -3379,14 +3917,15 @@ is in error state - Checks whether the @reader is currently on an array + Checks whether the @reader is currently on an array - %TRUE if the #JsonReader is on an array, and %FALSE otherwise + %TRUE if the #JsonReader is on an array, and %FALSE + otherwise - a #JsonReader + a #JsonReader @@ -3394,14 +3933,15 @@ is in error state - Checks whether the @reader is currently on an object + Checks whether the @reader is currently on an object - %TRUE if the #JsonReader is on an object, and %FALSE otherwise + %TRUE if the #JsonReader is on an object, and %FALSE + otherwise - a #JsonReader + a #JsonReader @@ -3409,14 +3949,15 @@ is in error state - Checks whether the @reader is currently on a value + Checks whether the @reader is currently on a value - %TRUE if the #JsonReader is on a value, and %FALSE otherwise + %TRUE if the #JsonReader is on a value, and %FALSE + otherwise - a #JsonReader + a #JsonReader @@ -3424,17 +3965,19 @@ is in error state - Retrieves a list of member names from the current position, if @reader + Retrieves a list of member names from the current position, if @reader is positioned on an object. - a newly allocated, %NULL-terminated array of strings holding the members name. Use g_strfreev() when done. + a newly allocated, %NULL-terminated + array of strings holding the members name. Use g_strfreev() when + done. - a #JsonReader + a #JsonReader @@ -3442,7 +3985,7 @@ is positioned on an object. - Advances the cursor of @reader to the element @index_ of the array + 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. +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); +]| - %TRUE on success, and %FALSE otherwise + %TRUE on success, and %FALSE otherwise - a #JsonReader + a #JsonReader - the index of the element + the index of the element @@ -3487,7 +4044,7 @@ put in an error state until json_reader_end_element() is called. - Advances the cursor of @reader to the @member_name of the object at the + 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. +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); +]| - %TRUE on success, and %FALSE otherwise + %TRUE on success, and %FALSE otherwise - a #JsonReader + a #JsonReader - the name of the member to read + the name of the member to read @@ -3532,7 +4102,7 @@ json_reader_end_member() is called. - Sets the root #JsonNode to be read by @reader. The @reader will take + 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. @@ -3541,11 +4111,14 @@ If another #JsonNode is currently set as root, it will be replaced. - a #JsonReader + a #JsonReader - - a #JsonNode + + a #JsonNode @@ -3555,7 +4128,7 @@ If another #JsonNode is currently set as root, it will be replaced. writable="1" construct="1" transfer-ownership="none"> - The root of the JSON tree that the #JsonReader should read. + The root of the JSON tree that the #JsonReader should read. @@ -3569,8 +4142,7 @@ If another #JsonNode is currently set as root, it will be replaced. c:type="JsonReaderClass" glib:is-gtype-struct-for="Reader" version="0.12"> - The <structname>JsonReaderClass</structname> structure contains only -private data + The `JsonReaderClass` structure contains only private data @@ -3610,43 +4182,62 @@ private data - - Error codes enumeration for #JsonReader errors + + Error codes enumeration for #JsonReader errors - No array found at the current position + c:identifier="JSON_READER_ERROR_NO_ARRAY" + glib:nick="no-array"> + No array found at the current position - Index out of bounds + c:identifier="JSON_READER_ERROR_INVALID_INDEX" + glib:nick="invalid-index"> + Index out of bounds - No object found at the current position + c:identifier="JSON_READER_ERROR_NO_OBJECT" + glib:nick="no-object"> + No object found at the current position - Member not found + c:identifier="JSON_READER_ERROR_INVALID_MEMBER" + glib:nick="invalid-member"> + Member not found - No valid node found at the current position + c:identifier="JSON_READER_ERROR_INVALID_NODE" + glib:nick="invalid-node"> + No valid node found at the current position - The node at the current position does not hold a value + c:identifier="JSON_READER_ERROR_NO_VALUE" + glib:nick="no-value"> + The node at the current position does not + hold a value - The node at the current position does not hold a value of the desired type + c:identifier="JSON_READER_ERROR_INVALID_TYPE" + glib:nick="invalid-type"> + The node at the current position does not + hold a value of the desired type + + + + + @@ -3658,33 +4249,34 @@ private data glib:type-struct="SerializableIface"> - Asks a #JsonSerializable implementation to deserialize the + Asks a #JsonSerializable implementation to deserialize the property contained inside @property_node into @value. - %TRUE if the property was successfully deserialized. + %TRUE if the property was successfully deserialized. + a #JsonSerializable - the name of the property + the name of the property - a pointer to an uninitialized #GValue + a pointer to an uninitialized #GValue - a #GParamSpec + a #GParamSpec - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property @@ -3692,33 +4284,46 @@ property contained inside @property_node into @value. - FIXME + Calls the #JsonSerializableIface.find_property() implementation on +the @serializable instance. * - the #GParamSpec for the property or %NULL if no property was found + the #GParamSpec for the property + or %NULL if no property was found + a #JsonSerializable - the name of the property + the name of the property - + + Calls the #JsonSerializableIface.get_property() implementation +on the @serializable instance. + a #JsonSerializable + a #GParamSpec - + + return location for the property value @@ -3737,42 +4342,50 @@ property contained inside @property_node into @value. - Asks a #JsonSerializable implementation to serialize a #GObject + Asks a #JsonSerializable implementation to serialize a #GObject property into a #JsonNode object. - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property + a #JsonSerializable object - the name of the property + the name of the property - the value of the property + the value of the property - a #GParamSpec + a #GParamSpec - + + Calls the #JsonSerializableIface.set_property() implementation +on the @serializable instance. + a #JsonSerializable + a #GParamSpec + the property value to set @@ -3780,13 +4393,13 @@ property into a #JsonNode object. - Calls the default implementation of the #JsonSerializable + 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: -|[ +|[<!-- language="C" --> JsonSerializable *iface; gboolean res; @@ -3797,28 +4410,28 @@ of the deserialize_property() virtual function in lieu of: property_node); ]| - %TRUE if the property was successfully deserialized. + %TRUE if the property was successfully deserialized. - a #JsonSerializable + a #JsonSerializable - the name of the property + the name of the property - a pointer to an uninitialized #GValue + a pointer to an uninitialized #GValue - a #GParamSpec + a #GParamSpec - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property @@ -3826,13 +4439,15 @@ of the deserialize_property() virtual function in lieu of: - Calls the default implementation of the #JsonSerializable -serialize_property() virtual function + 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(): -|[ +|[<!-- language="C" --> JsonSerializable *iface; JsonNode *node; @@ -3842,58 +4457,59 @@ of the serialize_property() virtual function in lieu of: pspec); ]| - a #JsonNode containing the serialized property + a #JsonNode containing the serialized + property - a #JsonSerializable object + a #JsonSerializable object - the name of the property + the name of the property - the value of the property + the value of the property - a #GParamSpec + a #GParamSpec - Asks a #JsonSerializable implementation to deserialize the + Asks a #JsonSerializable implementation to deserialize the property contained inside @property_node into @value. - %TRUE if the property was successfully deserialized. + %TRUE if the property was successfully deserialized. - a #JsonSerializable + a #JsonSerializable - the name of the property + the name of the property - a pointer to an uninitialized #GValue + a pointer to an uninitialized #GValue - a #GParamSpec + a #GParamSpec - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property @@ -3901,35 +4517,46 @@ property contained inside @property_node into @value. - FIXME + Calls the #JsonSerializableIface.find_property() implementation on +the @serializable instance. * - the #GParamSpec for the property or %NULL if no property was found + the #GParamSpec for the property + or %NULL if no property was found - a #JsonSerializable + a #JsonSerializable - the name of the property + the name of the property + c:identifier="json_serializable_get_property" + version="0.14"> + Calls the #JsonSerializableIface.get_property() implementation +on the @serializable instance. + a #JsonSerializable + a #GParamSpec - + + return location for the property value @@ -3937,67 +4564,76 @@ property contained inside @property_node into @value. - FIXME + Calls the #JsonSerializableIface.list_properties() implementation on +the @serializable instance. - an array of #GParamSpec. Use g_free() to free the array when done. + an array + of #GParamSpec. Use g_free() to free the array when done. - a #JsonSerializable + a #JsonSerializable - return location for the length of the array of #GParamSpec returned by the function + return location for the length of the array + of #GParamSpec returned by the function - Asks a #JsonSerializable implementation to serialize a #GObject + Asks a #JsonSerializable implementation to serialize a #GObject property into a #JsonNode object. - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property - a #JsonSerializable object + a #JsonSerializable object - the name of the property + the name of the property - the value of the property + the value of the property - a #GParamSpec + a #GParamSpec + c:identifier="json_serializable_set_property" + version="0.14"> + Calls the #JsonSerializableIface.set_property() implementation +on the @serializable instance. + a #JsonSerializable + a #GParamSpec + the property value to set @@ -4006,7 +4642,7 @@ property into a #JsonNode object. - 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 @@ -4017,23 +4653,24 @@ sequence. - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property + a #JsonSerializable object - the name of the property + the name of the property - the value of the property + the value of the property - a #GParamSpec + a #GParamSpec @@ -4042,30 +4679,31 @@ sequence. - %TRUE if the property was successfully deserialized. + %TRUE if the property was successfully deserialized. + a #JsonSerializable - the name of the property + the name of the property - a pointer to an uninitialized #GValue + a pointer to an uninitialized #GValue - a #GParamSpec + a #GParamSpec - a #JsonNode containing the serialized property + a #JsonNode containing the serialized property @@ -4074,15 +4712,17 @@ sequence. - the #GParamSpec for the property or %NULL if no property was found + the #GParamSpec for the property + or %NULL if no property was found + a #JsonSerializable - the name of the property + the name of the property @@ -4110,12 +4750,15 @@ sequence. + a #JsonSerializable + a #GParamSpec + the property value to set @@ -4128,34 +4771,45 @@ sequence. + a #JsonSerializable + a #GParamSpec - + + return location for the property value + + JSON-GLib version, encoded as a string, useful for printing and +concatenation. + + - Checks whether it is possible to deserialize a #GBoxed of + Checks whether it is possible to deserialize a #GBoxed of type @gboxed_type from a #JsonNode of type @node_type - %TRUE if the type can be deserialized, %FALSE otherwise + %TRUE if the type can be deserialized, %FALSE otherwise - a boxed type + a boxed type - a #JsonNode type + a #JsonNode type @@ -4163,24 +4817,26 @@ type @gboxed_type from a #JsonNode of type @node_type - Checks whether it is possible to serialize a #GBoxed of + 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. - %TRUE if the type can be serialized, and %FALSE otherwise. + %TRUE if the type can be serialized, + and %FALSE otherwise. - a boxed type + a boxed type - the #JsonNode type to which the boxed type can be serialized into + the #JsonNode type to which the boxed type can be + serialized into @@ -4188,18 +4844,20 @@ returns %TRUE and it's undefined otherwise. - Deserializes @node into a #GBoxed of @gboxed_type + Deserializes @node into a #GBoxed of @gboxed_type - the newly allocated #GBoxed. Use g_boxed_free() to release the resources allocated by this function + the newly allocated #GBoxed. Use + g_boxed_free() to release the resources allocated by this + function - a boxed type + a boxed type - a #JsonNode + a #JsonNode @@ -4208,22 +4866,23 @@ returns %TRUE and it's undefined otherwise. c:identifier="json_boxed_register_deserialize_func" version="0.10" introspectable="0"> - Registers a deserialization function for a #GBoxed of type @gboxed_type + Registers a deserialization function for a #GBoxed of type @gboxed_type from a #JsonNode of type @node_type - a boxed type + a boxed type - a node type + a node type - deserialization function for @boxed_type from a #JsonNode of type @node_type + deserialization function for @boxed_type from + a #JsonNode of type @node_type @@ -4232,22 +4891,23 @@ from a #JsonNode of type @node_type c:identifier="json_boxed_register_serialize_func" version="0.10" introspectable="0"> - Registers a serialization function for a #GBoxed of type @gboxed_type + Registers a serialization function for a #GBoxed of type @gboxed_type to a #JsonNode of type @node_type - a boxed type + a boxed type - a node type + a node type - serialization function for @boxed_type into a #JsonNode of type @node_type + serialization function for @boxed_type into + a #JsonNode of type @node_type @@ -4255,19 +4915,20 @@ to a #JsonNode of type @node_type - Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type, + Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type, into a #JsonNode - a #JsonNode with the serialization of the boxed type, or %NULL if serialization either failed or was not possible + a #JsonNode with the serialization of the + boxed type, or %NULL if serialization either failed or was not possible - a boxed type + a boxed type - a pointer to a #GBoxed of type @gboxed_type + a pointer to a #GBoxed of type @gboxed_type @@ -4275,51 +4936,75 @@ into a #JsonNode - Deserializes a JSON data stream and creates the corresponding + 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. + Use json_gobject_from_data() instead - a #GObject or %NULL + a #GObject or %NULL - the #GType of object to construct + the #GType of object to construct - a JSON data stream + a JSON data stream - length of the data stream + length of the data stream + + 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. + + a #JsonNode, or %NULL + + + + + a valid UTF-8 string containing JSON data + + + + - Creates a new #GObject of type @gtype, and constructs it + Creates a new #GObject of type @gtype, and constructs it using the members of the passed #JsonObject - The newly created #GObject instance. Use g_object_unref() to free the resources allocated by this function + The newly created #GObject + instance. Use g_object_unref() to free the resources + allocated by this function - the type of the #GObject to create + the type of the #GObject to create - a #JsonNode of type %JSON_NODE_OBJECT describing the instance of type @gtype + a #JsonNode of type %JSON_NODE_OBJECT describing the + instance of type @gtype @@ -4328,7 +5013,7 @@ using the members of the passed #JsonObject c:identifier="json_gobject_from_data" version="0.10" throws="1"> - Deserializes a JSON data stream and creates the corresponding + 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. - a #GObject or %NULL + a #GObject or %NULL - the #GType of object to construct + the #GType of object to construct - a JSON data stream + a JSON data stream - length of the data stream, or -1 if it is NUL-terminated + length of the data stream, or -1 if it is NUL-terminated @@ -4357,16 +5042,18 @@ Note: the JSON data stream must be an object declaration. - Creates a #JsonNode representing the passed #GObject + Creates a #JsonNode representing the passed #GObject instance. Each member of the returned JSON object will map to a property of the #GObject - the newly created #JsonNode of type %JSON_NODE_OBJECT. Use json_node_free() to free the resources allocated by this function + the newly created #JsonNode + of type %JSON_NODE_OBJECT. Use json_node_unref() to free + the resources allocated by this function - a #GObject + a #GObject @@ -4374,7 +5061,7 @@ map to a property of the #GObject - Serializes a #GObject into a JSON data stream, iterating recursively + 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. - a JSON data stream representing the passed #GObject + a JSON data stream representing the passed #GObject - a #GObject + a #GObject - return value for the length of the buffer, or %NULL + return value for the length of the buffer, or %NULL @@ -4403,7 +5090,7 @@ JSON native types. c:identifier="json_gvariant_deserialize" version="0.14" throws="1"> - Converts a JSON data structure to a GVariant value using @signature to + 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. - A newly created, floating #GVariant compliant with @signature, or %NULL on error + A newly created, floating #GVariant + compliant with @signature, or %NULL on error - A #JsonNode to convert + A #JsonNode to convert - - A valid #GVariant type string, or %NULL + + A valid #GVariant type string, or %NULL @@ -4435,7 +5126,7 @@ by the caller code. c:identifier="json_gvariant_deserialize_data" version="0.14" throws="1"> - Converts a JSON string to a #GVariant value. This method works exactly + 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. - A newly created, floating #GVariant compliant with @signature, or %NULL on error + A newly created, floating #GVariant compliant + with @signature, or %NULL on error - A JSON data string + A JSON data string - The length of @json, or -1 if %NULL-terminated + The length of @json, or -1 if %NULL-terminated - - A valid #GVariant type string, or %NULL + + A valid #GVariant type string, or %NULL @@ -4464,14 +5159,15 @@ by the caller code. - Converts @variant to a JSON tree. + Converts @variant to a JSON tree. - A #JsonNode representing the root of the JSON data structure obtained from @variant + A #JsonNode representing the root of the + JSON data structure obtained from @variant - A #GVariant to convert + A #GVariant to convert @@ -4479,64 +5175,153 @@ by the caller code. - Converts @variant to its JSON encoded string representation. This method + 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. - The JSON encoded string corresponding to @variant + The JSON encoded string corresponding to + @variant - A #GVariant to convert + A #GVariant to convert - Return location for the length of the returned string, or %NULL + Return location for the length of the returned + string, or %NULL - - Allocates a new #JsonNode. Use json_node_init() and its variants -to initialize the returned value. - - the newly allocated #JsonNode. Use json_node_free() to free the resources allocated by this function - + + + + + + + + + + + + + - Serializes a #GObject into a JSON data stream. If @gobject implements + 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. + Use json_gobject_to_data() instead - a JSON data stream representing the passed #GObject + a JSON data stream representing the passed #GObject - a #GObject + a #GObject - return value for the length of the buffer, or %NULL + return value for the length of the buffer, or %NULL + + Check whether @a and @b are equal UTF-8 JSON strings and return an ordering +over them in strcmp() style. + + an integer less than zero if @a < @b, equal to zero if @a == @b, and + greater than zero if @a > @b + + + + + a JSON string + + + + another JSON string + + + + + + Check whether @a and @b are equal UTF-8 JSON strings. + + %TRUE if @a and @b are equal; %FALSE otherwise + + + + + a JSON string + + + + another JSON string + + + + + + 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. + + hash value for @key + + + + + a JSON string to hash + + + + + + Generates a stringified JSON representation of the contents of +the passed @node. + + the string representation of the #JsonNode + + + + + a #JsonNode + + + + whether the output should be prettyfied for printing + + + + diff --git a/json-glib/Makefile.am b/json-glib/Makefile.am index b65fdd9..1755879 100644 --- a/json-glib/Makefile.am +++ b/json-glib/Makefile.am @@ -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 diff --git a/json-glib/Makefile.in b/json-glib/Makefile.in index 0219774..3889796 100644 --- a/json-glib/Makefile.in +++ b/json-glib/Makefile.in @@ -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 # @@ -52,24 +50,63 @@ # Author: Emmanuele Bassi + 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=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - 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 ; \ - echo '' >> $@.xml ; \ - echo '' >> $@.xml ; \ - echo ' $(PACKAGE)' >> $@.xml ; \ - echo ' $(JSON_VERSION)' >> $@.xml ; \ - echo " $$REVISION" >> $@.xml ; \ - echo " $$TIMESTAMP" >> $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.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 index 0cba7f9..0000000 --- a/json-glib/abicheck.sh +++ /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 diff --git a/json-glib/json-array.c b/json-glib/json-array.c index 0d65e42..4834cdc 100644 --- a/json-glib/json-array.c +++ b/json-glib/json-array.c @@ -21,9 +21,7 @@ * Emmanuele Bassi */ -#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 - * #JsonNodes, 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 @@ -47,18 +45,18 @@ 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 #JsonNodes. + * 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; +} diff --git a/json-glib/json-builder.c b/json-glib/json-builder.c index d2f5391..34c29c6 100644 --- a/json-glib/json-builder.c +++ b/json-glib/json-builder.c @@ -2,6 +2,7 @@ * * This file is part of JSON-GLib * Copyright (C) 2010 Luca Bruno + * 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 + * Philip Withnall */ /** @@ -37,9 +39,7 @@ * most of functions, making it easy to chain function calls. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -48,15 +48,21 @@ #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 #JsonNodes. + * 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: diff --git a/json-glib/json-builder.h b/json-glib/json-builder.h index e034193..b35230e 100644 --- a/json-glib/json-builder.h +++ b/json-glib/json-builder.h @@ -20,13 +20,13 @@ * Luca Bruno */ +#ifndef __JSON_BUILDER_H__ +#define __JSON_BUILDER_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_BUILDER_H__ -#define __JSON_BUILDER_H__ - #include G_BEGIN_DECLS @@ -45,8 +45,8 @@ typedef struct _JsonBuilderClass JsonBuilderClass; /** * JsonBuilder: * - * The JsonBuilder 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 JsonBuilder 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__ */ diff --git a/json-glib/json-debug.c b/json-glib/json-debug.c index c0dc2e9..b9c3b8f 100644 --- a/json-glib/json-debug.c +++ b/json-glib/json-debug.c @@ -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"); diff --git a/json-glib/json-debug.h b/json-glib/json-debug.h index 695917f..1b3da52 100644 --- a/json-glib/json-debug.h +++ b/json-glib/json-debug.h @@ -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 diff --git a/json-glib/json-enum-types.c b/json-glib/json-enum-types.c index 081b883..5aab19b 100644 --- a/json-glib/json-enum-types.c +++ b/json-glib/json-enum-types.c @@ -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); diff --git a/json-glib/json-enum-types.c.in b/json-glib/json-enum-types.c.in index 8b82049..a2a13b4 100644 --- a/json-glib/json-enum-types.c.in +++ b/json-glib/json-enum-types.c.in @@ -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); diff --git a/json-glib/json-enum-types.h b/json-glib/json-enum-types.h index 93dc672..035165d 100644 --- a/json-glib/json-enum-types.h +++ b/json-glib/json-enum-types.h @@ -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 can be included directly." #endif -#ifndef __JSON_ENUM_TYPES_H__ -#define __JSON_ENUM_TYPES_H__ - #include +#include 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()) diff --git a/json-glib/json-enum-types.h.in b/json-glib/json-enum-types.h.in index 96f565e..4ce965d 100644 --- a/json-glib/json-enum-types.h.in +++ b/json-glib/json-enum-types.h.in @@ -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 can be included directly." #endif -#ifndef __JSON_ENUM_TYPES_H__ -#define __JSON_ENUM_TYPES_H__ - #include +#include 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()) diff --git a/json-glib/json-gboxed.c b/json-glib/json-gboxed.c index 8f21f75..ef53af1 100644 --- a/json-glib/json-gboxed.c +++ b/json-glib/json-gboxed.c @@ -32,7 +32,7 @@ * When registering a #GBoxed type you should also register the * corresponding transformation functions, e.g.: * - * |[ + * |[ * GType * my_struct_get_type (void) * { @@ -66,9 +66,7 @@ * and to which specific #JsonNodeType. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include diff --git a/json-glib/json-generator.c b/json-glib/json-generator.c index 097f2a9..c47e7fe 100644 --- a/json-glib/json-generator.c +++ b/json-glib/json-generator.c @@ -29,9 +29,7 @@ * put it into a buffer or a file. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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 - * #JsonNodes. + * #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. * - * The node is copied by the generator object, so it can be safely - * freed after calling this function. + * 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; } diff --git a/json-glib/json-generator.h b/json-glib/json-generator.h index eb7cdba..194495a 100644 --- a/json-glib/json-generator.h +++ b/json-glib/json-generator.h @@ -21,13 +21,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_GENERATOR_H__ +#define __JSON_GENERATOR_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_GENERATOR_H__ -#define __JSON_GENERATOR_H__ - #include #include @@ -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 index 0000000..177e8b3 --- /dev/null +++ b/json-glib/json-glib-format.c @@ -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 . + * + * Author: + * Emmanuele Bassi + */ + +#include "config.h" + +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include + +#if defined (G_OS_WIN32) && !defined (HAVE_UNISTD_H) +#include + +#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 index 0000000..2eb013a --- /dev/null +++ b/json-glib/json-glib-validate.c @@ -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 . + * + * Author: + * Emmanuele Bassi + */ + +#include "config.h" + +#ifdef HAVE_UNISTD_H +#include +#endif +#include +#include +#include +#include + +#include +#include +#include + +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; +} diff --git a/json-glib/json-glib.h b/json-glib/json-glib.h index 257bcdf..939ce0e 100644 --- a/json-glib/json-glib.h +++ b/json-glib/json-glib.h @@ -33,7 +33,9 @@ #include #include #include +#include #include +#include #include diff --git a/json-glib.pc.in b/json-glib/json-glib.pc.in 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 index 382fbbd..0000000 --- a/json-glib/json-glib.symbols +++ /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 diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c index b2c86d6..34a43c8 100644 --- a/json-glib/json-gobject.c +++ b/json-glib/json-gobject.c @@ -21,8 +21,8 @@ * SECTION:json-gobject * @short_description: Serialize and deserialize GObjects * - * JSON-GLib provides API for serializing and deserializing #GObjects - * 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 #include @@ -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; } diff --git a/json-glib/json-gobject.h b/json-glib/json-gobject.h index c19c457..17aa2db 100644 --- a/json-glib/json-gobject.h +++ b/json-glib/json-gobject.h @@ -25,7 +25,6 @@ #define __JSON_GOBJECT_H__ #include -#include 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 #GObjects + * 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; diff --git a/json-glib/json-gvariant.c b/json-glib/json-gvariant.c index 932914a..6d55fb8 100644 --- a/json-glib/json-gvariant.c +++ b/json-glib/json-gvariant.c @@ -17,9 +17,7 @@ * Eduardo Lima Mitev */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -27,8 +25,13 @@ #include +#include + #include "json-gvariant.h" +#include "json-generator.h" +#include "json-parser.h" + /** * SECTION:json-gvariant * @short_description: Serialize and deserialize GVariant types @@ -46,49 +49,29 @@ * 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)`. * - * Default JSON to GVariant conversion (without signature constrains) - * - * - * - * JSON - * GVariant - * - * - * - * - * string - * string (s) - * - * - * int64 - * int64 (x) - * - * - * boolean - * boolean (b) - * - * - * double - * double (d) - * - * - * array - * array of variants (av) - * - * - * object - * dictionary of string-variant (a{sv}) - * - * - * null - * maybe variant (mv) - * - * - * - *
+ * ## 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; diff --git a/json-glib/json-gvariant.h b/json-glib/json-gvariant.h index 6644b21..38cfc94 100644 --- a/json-glib/json-gvariant.h +++ b/json-glib/json-gvariant.h @@ -24,18 +24,25 @@ #ifndef __JSON_GVARIANT_H__ #define __JSON_GVARIANT_H__ -#include -#include +#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) +#error "Only can be included directly." +#endif + +#include 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, diff --git a/json-glib/json-marshal.c b/json-glib/json-marshal.c index 36a73c8..7555384 100644 --- a/json-glib/json-marshal.c +++ b/json-glib/json-marshal.c @@ -56,20 +56,20 @@ /* 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); diff --git a/json-glib/json-marshal.h b/json-glib/json-marshal.h index f4f7658..6d9c224 100644 --- a/json-glib/json-marshal.h +++ b/json-glib/json-marshal.h @@ -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 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__ */ diff --git a/json-glib/json-node.c b/json-glib/json-node.c index 88a814e..1b7f0c0 100644 --- a/json-glib/json-node.c +++ b/json-glib/json-node.c @@ -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 @@ -19,15 +20,16 @@ * * Author: * Emmanuele Bassi + * Philip Withnall */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include +#include "json-types.h" #include "json-types-private.h" +#include "json-debug.h" /** * SECTION:json-node @@ -46,9 +48,27 @@ * #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); + * |[ + 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. * - * A null node is not the same as a %NULL #JsonNode + * 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 (); + } +} diff --git a/json-glib/json-object.c b/json-glib/json-object.c index e7a7e29..4d89cd6 100644 --- a/json-glib/json-object.c +++ b/json-glib/json-object.c @@ -21,12 +21,9 @@ * Emmanuele Bassi */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include - #include #include "json-types-private.h" @@ -35,9 +32,10 @@ * SECTION:json-object * @short_description: a JSON object representation * - * #JsonObject is the representation of the object type inside JSON. It contains - * #JsonNodes, 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(). @@ -52,23 +50,23 @@ 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 - * #JsonNodes. 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. + * + * |[ + * 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); +} diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c index f9722bd..10ce3d8 100644 --- a/json-glib/json-parser.c +++ b/json-glib/json-parser.c @@ -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 + * Philip Withnall */ /** @@ -30,9 +32,7 @@ * inside a file or inside a static buffer. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include @@ -45,14 +45,6 @@ #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); } diff --git a/json-glib/json-parser.h b/json-glib/json-parser.h index fc58b0a..c7223d2 100644 --- a/json-glib/json-parser.h +++ b/json-glib/json-parser.h @@ -21,14 +21,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_PARSER_H__ +#define __JSON_PARSER_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_PARSER_H__ -#define __JSON_PARSER_H__ - -#include #include #include @@ -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__ */ diff --git a/json-glib/json-path.c b/json-glib/json-path.c index 4fb61bc..4604cd9 100644 --- a/json-glib/json-path.c +++ b/json-glib/json-path.c @@ -40,169 +40,119 @@ * The simple convenience function json_path_query() can be used for one-off * matching. * - * - * Syntax of the JSONPath expressions - * 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: - * - * Operators - * - * - * - * - * - * - * - * Operator - * Description - * Example - * Results - * - * - * - * - * $ - * The root node - * $ - * The whole document - * - * - * . or [] - * The child member or element - * $.store.book - * The contents of the book member of the store object - * - * - * .. - * Recursive descent - * $..author - * The content of the author member in every object - * - * - * * - * Wildcard - * $.store.book[*].author - * The content of the author member of any object of the - * array contained in the book member of the store object - * - * - * [] - * Subscript - * $.store.book[0] - * The first element of the array contained in the book - * member of the store object - * - * - * [,] - * Set - * $.store.book[0,1] - * The first two elements of the array contained in the - * book member of the store object - * - * - * [start:end:step] - * Slice - * $.store.book[:2] - * 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 - * - * - * - *
- * More information about JSONPath is available on Stefan Gössner's - * website. - *
+ * ## Syntax of the JSONPath expressions ## * - * - * Example of JsonPath usage - * The following example shows some of the results of using #JsonPath - * on a JSON tree. We use the following JSON description of a - * bookstore: - * - * We can parse the JSON using #JsonParser: - * - * JsonParser *parser = json_parser_new (); - * json_parser_load_from_data (parser, json_data, -1, NULL); - * - * If we run the following code: - * - * 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: - * - * 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); - * - * The output will be: - * - * + * 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: + * + * |[ + * JsonParser *parser = json_parser_new (); + * json_parser_load_from_data (parser, json_data, -1, NULL); + * ]| + * + * If we run the following code: + * + * |[ + * 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: + * + * |[ + * 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 @@ -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, "data.member_name); + break; + + case JSON_PATH_NODE_CHILD_ELEMENT: + g_string_append_printf (buf, "data.element_index); + break; + + case JSON_PATH_NODE_RECURSIVE_DESCENT: + g_string_append (buf, "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, "data.slice.start, + cur_node->data.slice.end, + cur_node->data.slice.step); + break; + + default: + 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, "data.member_name); - break; - - case JSON_PATH_NODE_CHILD_ELEMENT: - g_string_append_printf (buf, "data.element_index); - break; - - case JSON_PATH_NODE_RECURSIVE_DESCENT: - g_string_append (buf, "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, "data.slice.start, - cur_node->data.slice.end, - cur_node->data.slice.step); - break; - - default: - g_string_append (buf, "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 #JsonNodes 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 #JsonNodes. - * 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 #JsonNodes. - * Use json_node_free() when done + * %JSON_NODE_ARRAY containing an array of matching #JsonNodes. + * Use json_node_unref() when done * * Since: 0.14 */ diff --git a/json-glib/json-path.h b/json-glib/json-path.h index 2bae608..3c3ddf0 100644 --- a/json-glib/json-path.h +++ b/json-glib/json-path.h @@ -20,13 +20,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_PATH_H__ +#define __JSON_PATH_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_PATH_H__ -#define __JSON_PATH_H__ - #include G_BEGIN_DECLS @@ -59,9 +59,8 @@ typedef enum { /** * JsonPath: * - * The JsonPath 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 JsonPathClass 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__ */ diff --git a/json-glib/json-reader.c b/json-glib/json-reader.c index 721f069..afc2414 100644 --- a/json-glib/json-reader.c +++ b/json-glib/json-reader.c @@ -33,27 +33,24 @@ * called, e.g.: * * |[ - * /* ask for the 7th element; if the element does not exist, the - * * reader will be put in an error state - * */ + * // 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); * - * /* in case of error, this will return NULL, otherwise it will - * * return the value of the element - * */ + * // in case of error, this will return NULL, otherwise it will + * // return the value of the element * str = json_reader_get_string_value (value); * - * /* this function resets the error state if any was set */ + * // 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(): * - * |[ - * /* like the example above, but in this case we print out the - * * error immediately - * */ + * |[ + * // 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); @@ -64,18 +61,14 @@ * #JsonReader is available since JSON-GLib 0.12. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include #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); } diff --git a/json-glib/json-reader.h b/json-glib/json-reader.h index 6ee0b54..786ed7b 100644 --- a/json-glib/json-reader.h +++ b/json-glib/json-reader.h @@ -20,13 +20,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_READER_H__ +#define __JSON_READER_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_READER_H__ -#define __JSON_READER_H__ - #include G_BEGIN_DECLS @@ -80,8 +80,8 @@ typedef enum { /** * JsonReader: * - * The JsonReader 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 JsonReaderClass 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__ */ diff --git a/json-glib/json-scanner.c b/json-glib/json-scanner.c index dacb418..daf9ead 100644 --- a/json-glib/json-scanner.c +++ b/json-glib/json-scanner.c @@ -17,14 +17,10 @@ * 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 . */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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; diff --git a/json-glib/json-scanner.h b/json-glib/json-scanner.h index 25b076a..4d1f982 100644 --- a/json-glib/json-scanner.h +++ b/json-glib/json-scanner.h @@ -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 . */ /* diff --git a/json-glib/json-serializable.c b/json-glib/json-serializable.c index e49ccb1..471225e 100644 --- a/json-glib/json-serializable.c +++ b/json-glib/json-serializable.c @@ -27,9 +27,7 @@ * json_serialize_gobject() respectively. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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(): * - * |[ + * |[ * 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: * - * |[ + * |[ * 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, diff --git a/json-glib/json-types-private.h b/json-glib/json-types-private.h index efce6a9..db5dea6 100644 --- a/json-glib/json-types-private.h +++ b/json-glib/json-types-private.h @@ -28,6 +28,12 @@ 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__ */ diff --git a/json-glib/json-types.h b/json-glib/json-types.h index 3f7ff52..22e1147 100644 --- a/json-glib/json-types.h +++ b/json-glib/json-types.h @@ -21,25 +21,18 @@ * Emmanuele Bassi */ +#ifndef __JSON_TYPES_H__ +#define __JSON_TYPES_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_TYPES_H__ -#define __JSON_TYPES_H__ - #include +#include 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 index 0000000..78583cd --- /dev/null +++ b/json-glib/json-utils.c @@ -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 . + */ + +/** + * 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 index 0000000..e709ecd --- /dev/null +++ b/json-glib/json-utils.h @@ -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 . + */ + +#ifndef __JSON_UTILS_H__ +#define __JSON_UTILS_H__ + +#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +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__ */ diff --git a/json-glib/json-value.c b/json-glib/json-value.c index 7e9babd..1b6f971 100644 --- a/json-glib/json-value.c +++ b/json-glib/json-value.c @@ -2,6 +2,7 @@ * * This file is part of JSON-GLib * Copyright (C) 2012 Emmanuele Bassi + * 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,11 +19,10 @@ * * Author: * Emmanuele Bassi + * Philip Withnall */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include @@ -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 index 0000000..efba7f4 --- /dev/null +++ b/json-glib/json-version-macros.h @@ -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 . + */ + +#ifndef __JSON_VERSION_MACROS_H__ +#define __JSON_VERSION_MACROS_H__ + +#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) +#error "Only 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__ */ diff --git a/json-glib/json-version.h b/json-glib/json-version.h index 80610af..e14b567 100644 --- a/json-glib/json-version.h +++ b/json-glib/json-version.h @@ -21,13 +21,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_VERSION_H__ +#define __JSON_VERSION_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_VERSION_H__ -#define __JSON_VERSION_H__ - /** * SECTION:json-version * @short_description: JSON-GLib version checking @@ -41,14 +41,14 @@ * * 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: @@ -62,25 +62,27 @@ * * 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: diff --git a/json-glib/json-version.h.in b/json-glib/json-version.h.in index bc05f1b..d18caa2 100644 --- a/json-glib/json-version.h.in +++ b/json-glib/json-version.h.in @@ -21,13 +21,13 @@ * Emmanuele Bassi */ +#ifndef __JSON_VERSION_H__ +#define __JSON_VERSION_H__ + #if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) #error "Only can be included directly." #endif -#ifndef __JSON_VERSION_H__ -#define __JSON_VERSION_H__ - /** * SECTION:json-version * @short_description: JSON-GLib version checking @@ -67,20 +67,22 @@ /** * 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: diff --git a/json-glib/tests/Makefile.am b/json-glib/tests/Makefile.am index 9815b95..8f379ca 100644 --- a/json-glib/tests/Makefile.am +++ b/json-glib/tests/Makefile.am @@ -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 diff --git a/json-glib/tests/Makefile.in b/json-glib/tests/Makefile.in index 5c39fa7..30c6d8a 100644 --- a/json-glib/tests/Makefile.in +++ b/json-glib/tests/Makefile.in @@ -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,28 +14,72 @@ @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=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + 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 ; \ - echo '' >> $@.xml ; \ - echo '' >> $@.xml ; \ - echo ' $(PACKAGE)' >> $@.xml ; \ - echo ' $(JSON_VERSION)' >> $@.xml ; \ - echo " $$REVISION" >> $@.xml ; \ - echo " $$TIMESTAMP" >> $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.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. diff --git a/json-glib/tests/array.c b/json-glib/tests/array.c index 115e84a..98afeab 100644 --- a/json-glib/tests/array.c +++ b/json-glib/tests/array.c @@ -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); diff --git a/json-glib/tests/boxed.c b/json-glib/tests/boxed.c index 5e0fb01..6e52e2a 100644 --- a/json-glib/tests/boxed.c +++ b/json-glib/tests/boxed.c @@ -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); diff --git a/json-glib/tests/builder.c b/json-glib/tests/builder.c index 06a4c42..eaabb0d 100644 --- a/json-glib/tests/builder.c +++ b/json-glib/tests/builder.c @@ -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 (); diff --git a/json-glib/tests/generator.c b/json-glib/tests/generator.c index 40ceb55..f156fde 100644 --- a/json-glib/tests/generator.c +++ b/json-glib/tests/generator.c @@ -1,6 +1,4 @@ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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 (); } diff --git a/json-glib/tests/gvariant.c b/json-glib/tests/gvariant.c index c8eb143..701997d 100644 --- a/json-glib/tests/gvariant.c +++ b/json-glib/tests/gvariant.c @@ -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); } diff --git a/json-glib/tests/invalid.c b/json-glib/tests/invalid.c index ad8e613..c5fad16 100644 --- a/json-glib/tests/invalid.c +++ b/json-glib/tests/invalid.c @@ -1,6 +1,4 @@ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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++) diff --git a/json-glib/tests/node.c b/json-glib/tests/node.c index 1782c8e..23bda63 100644 --- a/json-glib/tests/node.c +++ b/json-glib/tests/node.c @@ -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 (); } diff --git a/json-glib/tests/object.c b/json-glib/tests/object.c index 750ab88..54b5934 100644 --- a/json-glib/tests/object.c +++ b/json-glib/tests/object.c @@ -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 (); diff --git a/json-glib/tests/parser.c b/json-glib/tests/parser.c index dc64f75..bdfbf13 100644 --- a/json-glib/tests/parser.c +++ b/json-glib/tests/parser.c @@ -1,6 +1,4 @@ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include @@ -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); diff --git a/json-glib/tests/path.c b/json-glib/tests/path.c index 2b7c1f2..0dce631 100644 --- a/json-glib/tests/path.c +++ b/json-glib/tests/path.c @@ -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 (); } diff --git a/json-glib/tests/reader.c b/json-glib/tests/reader.c index 2ed90d6..79f50e2 100644 --- a/json-glib/tests/reader.c +++ b/json-glib/tests/reader.c @@ -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 (); } diff --git a/json-glib/tests/serialize-complex.c b/json-glib/tests/serialize-complex.c index 7b26da5..9da8dd1 100644 --- a/json-glib/tests/serialize-complex.c +++ b/json-glib/tests/serialize-complex.c @@ -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); diff --git a/json-glib/tests/serialize-full.c b/json-glib/tests/serialize-full.c index 88388ef..dd5da7a 100644 --- a/json-glib/tests/serialize-full.c +++ b/json-glib/tests/serialize-full.c @@ -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); diff --git a/json-glib/tests/serialize-simple.c b/json-glib/tests/serialize-simple.c index 89611f7..e2e7be2 100644 --- a/json-glib/tests/serialize-simple.c +++ b/json-glib/tests/serialize-simple.c @@ -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); diff --git a/po/POTFILES.in b/po/POTFILES.in index 6d67667..8868a19 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -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 diff --git a/po/as.gmo b/po/as.gmo index 96dde4fe680e6ea1c64e611be84a41b7101105bb..0f5ce4c1b2c764f5cf34f54b67eb0fa5bdd3a78c 100644 GIT binary patch delta 2804 zcma)+S!@+m7{?D?Y`H82DuRG^Kx;v~wVS1s8j(P?EVUxIBp96DJ8dtyTV|%v66F>} zK@E^NshWxsLOYiL0R+SHf=i4hniw}8Fp-Q8zBML>2ZQ?H@0__CD8!R{?r+Zao$vd9 z-^^PJziCNbnNcz{DV!z=J^#(%-ZaL#SMp>`-8 zdk$)F5IzJ)U=#cn*2B^=Ar`?Uuo>#Gg8Rk0JUqa}5hy*s1f>F1rJ0 zU?aQ=*TI^JLUh7@xC(v_t6?C(8mxmvDxQV6!|iY(+z(s0U!3RRGP3^;+Zca6S%^nq z`4k~G!pGq<_yKHzKf$H2a;gyL;5xVimR1PS3wJ?Gh;b+bxdxZRCDZ)z0IX$v7N(@3 zUwM#{R*^^<;Tk9<+yM>v5tI?kA#p2U8(a-jun&F(--nHrLJYz0;0tg);aczvd=S>m z6k-c}1|EZ-%|!n$_o+@y`&U1=pxryI)yjK!B>ryvR0*zKBjK2-H>T$ehYLp`KJFBU-K@ zK(1BsB-L6#FUri4F>x1NqZ5-Va9ImM84c;lH3Afu^309v zN!^rZZ@RwCjM#GBPH2`LPW0Q#ek@|;PFZrMIxK(A_M%PI%B8H?P$Cx79cx#K_JkSJZEf{aPjo6LtXij{xO!UHh}*i{uUSbwWLQppaYtoO z#I$TJ)Tf(z$Tm!^raI&#i(jfzhr_z9Yq5SdbQ{{n4eh}e&4`B*VI%B}7w@fKmvK2} z#JV{e*JF5OYTF{wa7Z`9n%*NV*5<7{10~%RU8Z5%k)A<~$dmo{nad@iB5i{?s4b|r zv|zB$h$a_kJ=lpQOhb#rd5q~!b6HpFX+0XjC8IDhvBgTngT2v6cTjD#jkR5dPmAx{pIat>iY-rHx zn_KIf7T47|^UG&XZVJ}51RLtK`o`9JXH|Ju`Ju_qgXC@zQ%e zH_c$!OP})6Z+h;im)`B9CeB)vuOiPq=D8O=cem%BX6xH(-|6diKXTLE-14#Ko>dod z1{>!*_waw+n9AGm%aBc+*rOng_!mnDnF4#2&pSQ$Aa|&m_1yEhpp?r;Jokc^9%7Os z`6$%B6JGjdmUE@;7!$|C!=8I0b5crkNV-n!Qk)@7_|dQl$5=jEXehV*e}bJ5a5@8# z)rC$8RpNy+h1N-t3IR{>Q0jP)u}T~NW24U5z{+LJ9#)PWQak+g9xPP-yjmX1ii2Dk z8Js@?gL98&M0MG40`spa(NC$DaPy?AD>5FAdTfyKpUk|3p1WV_?he;T$)t0KIDG-V zz-e{aJE{(jJ5NqNS(F}fil!V$sl15V{5{Cb08vTyd!(4bt@6p5D|h&wCG!MB zL7A+JnwS1i-H%Ux&PXZwBc)~JRHoQTOmA>5O&P0|;l8e_2_0lvVJWSO1R;mKG-Zap ztmbD1rv6s4Ufq>e9?SgXmGNVdE=Wfx*}|`h=Z<8OB0ad?uG3w4Ds{_J;2uI(FMxYe zU4Ue=!1L8m@Nvm}g-DVA1fc31QpZLM%w|7T9N16KRSpJ; bIPc9xzFAQ=jAn1oOT_F=;s~f0PTlwq=~4q( delta 783 zcmX}qNoW&s6vy#j<4jVMn5OAsZABt9RH@OKq)jy_2rkfCtM%l9)RbD6Q#BwBh&d=d z*h0m>B8WXHv7i*8hkC209z1wcp@@ixAn2ij3*y1=Op1?r^O?zH{>yvwYUk}O<@X8e zu857R`4>~_RM zD`rVu{IDOlVhMBj5VzqndJ~6iX%7yfgVX5Z3(Vkm%wj6YBJczb;A1?1Kd}RMhpG!7 z!8bK!X@ZMgJUG2pTEKgF4v&PTy|{qe@i%(^>xfh*EFe439XyLK(W{6PmHO})p2r!S z!QeXS3_ijl+A--O^Q*+g6a0iX@m8HQjBRmg9IvhV3vX~gR$m?92YT;cpsrW(3l8CE zgLDX&(CcCw=|wHc(4r9Hk=VEYK1eKH%r*qy_-Z6su-{WqlXoKMirAQ1$n_-c z6b15wPWZtmBG&vrD6Ic2DOJp;M!X|w#;sH4kCiw5cDuQ5A2grsqA3NZOi!pVKN}hj z7$@9kR>G6$vaM`{ROEi;qopdIbbi4Ce^DJ`IE)<7)2TW~r$u!4S w%tYO&>51<%&*N9j$@-6`oR|w#7R`=^2X, 2012. +# Nilamdyuti Goswami , 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 \n" -"Language-Team: as_IN \n" +"Language-Team: Assamese \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 "এটা টিউপুলৰ সৈতে সংগত হবলে JSON এৰেত কিছুমান উপাদান সন্ধানহিন" +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 টিউপুল ধৰণত বন্ধৰ চিহ্ন ')' সন্ধানহিন" +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 "বৰ্তমান অৱস্থানত এটা স্ট্ৰিং ধৰণ নাই" diff --git a/po/bg.gmo b/po/bg.gmo index 4eaf1696013d53c072a40900337d3186c21ef996..2cdeec5c79629cb588f1250ab5a9ef64a3092425 100644 GIT binary patch delta 29 kcmZ3kyj*#MAcugNu7RNBMUFO30B-{Z;Q#;t delta 29 kcmZ3kyj*#MAcuglu7QcJp_zh_ft7)Qwt?YhMUFO30B)ZK*#H0l diff --git a/po/bg.po b/po/bg.po index c4cd920..82f1c1a 100644 --- 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 \n" "Language-Team: Bulgarian \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 "На тази позиция няма низ" diff --git a/po/bn_IN.gmo b/po/bn_IN.gmo index 4f909d312fbd97e518a526f2006ecea69f59d65d..817de2158181a5557ac9a3bf12308d2db26012f5 100644 GIT binary patch delta 29 kcmZqIY}efIoL#_7*T7iU$VkD^%*xP2+rVJ+clHT90D!CrWB>pF delta 29 kcmZqIY}efIoL#_J*T6*A&`iO|z{\n" "Language-Team: Bengali (India) \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 index 0000000000000000000000000000000000000000..d9cd61813fc714150948813f2ea837c86eff8f6a GIT binary patch literal 5145 zcmb7HON<;x87`8T!16F8JVU@0!)D{eJ^S$bHP~P~URz7{rOmEoBoNe0*Ur{VPgPS@ zJjSGSc0tvpqs;6gW*|p==_I}gT zfBp48zW=X(-g@G(?=xHp?x%5o^Bs&`1pe(2{KNI9M;Utx_-EiT;D1Vd`my+Y0r)|D z|0UqZff~37d=2<4@VCG^@LxduvH2s6Jpnuqd#`Si?JEtmw~kY+rT;CuYjk3{{Sunr{2xj3a|h!0C$0tz=;XG1I_@+&zryx0sFw` zfZqY01O5!ShnW8z_-Q=<^u5u)H-XRN`SJHLb{sed`~+|lNdA5ecpZ2LNdEpFcpiB4 z{fxmhwg{wnt^;X(7f5mcE|Bu{29WIgW%>M9Ajk86fn*0qaLB%^zz+kz4ty5)Js=1E z0(chqCh!vQ$q&T1Yyc^4uK_9VKL_HE{S*JlpCcg472phz;^=^+=SRS4;2(h}fJb30 z<@r32@*#njfNuav?_YqFw_{I6`6VFP-2;9M_&Si{{1e~>;2(epGy4c`iVN977q$x* z$heXmR|HD2*8mC1wN=fcv`L*L)B%F}yqxbvwge9+%ju3F{jo5_^^_!_jyXcTS6 zF7xX*gjGU&o~ou-Mhm;crS|mym0UKxp1UH?jrB5Ri#ml%g3RD97ftE#RZnCp z9lGySOAB9ES-le0iXE=7_7$GWEu|4?D43dj9>xsTZz=0MZ*B{Vh)5fDuULSrYTz% z*%m@5Qy%w6lC1<+D#w;f=9HA>Zl~KY8J{{ag;0bH4YudL$TJxd#0INmCc6l=BiUeG z3?j%07ieSRsfa79MUg>Vi!R7w!LTfC3Y&7VMG>tHqsvxIq=x7Tm5By+2N#Gn&B9vj z%X8EjWr?lolAdFH5?N+$!FN~}>9-~Vn+GvqYgT%%w!rMd=cuLiij7;QT-zW{MDpxQ z`^JbN`x!h121k+$>>Zc|SMhmJRstCewIS0Qd)t~GxOxx}o*L;wS!|mOp+&O@{G#$2 z+pbzba#Z|eISft1Vi5`XFe^%TA8twXE3AnHI5nAqfR4AU6vPU@jo4A6b2+NfM;oYAnd7KxMW2DLqeaIA&4ozY1vQ;mdb6dp%#Q3wsf6c$~x z#)g8S0!Yu`Ln$2EQ5mzA>PgKv*B5IjEJMdfvX~|}Bu+G=>%3Anu`a1oC(Ev-(&S3f za><6N^KI|*`t)?8X!TW=iCRmWuB;i`nntNh`xU&XHCyWQxix9g^cRQv)>b!?7l|p@ zC%FnM>wIoz_DnK!Dw&((vuEnF^DoTcnpj&+)@4tTJwv(E$;@0bGtXyF*Jsa1xh3Iz zvSEdGnefKe`OBiKEMHd*wfic+u&F!R+|r+$SQ5Hbh?Yz?r0CZ972`AxSAL=4E@g^L zABxm@!%ZwNE-wrNGFzLOc+tQ&jm=P)b?%Yv={yrke>Sv1oG2GVLm$eKQCrd`3)JCp zWYqb&hVm0PlO<8;=5{X91cxq#w+cjb@HC$}Q=dN*9lV)bms;BBT(y!v*C^19`Rv(K zr)EzKM;BD#-rbJixmCO`d=ICeZWrU@%czVQh;Y!uc-h%E>Ws=Xu}>QF1RalGKREq8Bg)!}CMw(JzpRSiKM zu-oAb6A&=GEmN(!eD`)HKuk1AVDEc z%hc}OLm1d{TOv;AIbl$Op^~kckQLZe#U?i%As@WaqMTlWU$nFX?OOF|3!0HuWKZnf zle@1f5TysEXwiuSQmK1fgXlu1e~S;WJl#EXAobX4Xo{IXarc z=u{O54965TG=$PvaGju`bR?oxa&^$#6-0xn2x-APqGMoC=*-wXQ`5V*!5|PMDk#{> zLR26l86D&mCMpu?i*CuEkb@e{Nf{-1MRoE)i7qGtp-+?WZ*|ftPtjydhyW zqA3IZW2aC8ajGh-BvfiBq7W5@%)oUze^IeG{qL(H)_GVBpwhbq|p7Fr^9$M_h!P5dQVL;vD?V literal 0 HcmV?d00001 diff --git a/po/bs.po b/po/bs.po new file mode 100644 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ć \n" +"Language-Team: Bosnian \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" diff --git a/po/ca.gmo b/po/ca.gmo index 1ba7ebb64f74aae9a317947a5ee1a352d420aa7f..98532ef0f94fcf6fa8716fb3b11fe753775d6837 100644 GIT binary patch delta 2350 zcmb7@Uu;uV9LLYr;kGi^93Y639VT_aXlctFSWv;ZhAtZ{V;D>@@$}x)?k@LFJ@<5D zi)1kvV@$-v8xuo(*o(%0xQD$+h>5H`nrI9@@F3AAW5R=Gz8Ep_`@3z&MzTatdipu{ z{Qdp;{=VDwX5ZYM&ZhSnS{%I#{f!33o&oPR;t%cT2xB|JU%+ngUX5K%)$e2A!E4txuI68r(ofPaDbvHlH=b%IZWyBV8f!?g()q=#My_kbUQWYCQo?|{4T{WsVL z?tG|vQ5Gb_UIIBd13m>_0sF!4!4$ZmnX!G~VQ>HxU_0JtA7F3*6Q6)&`Hvt)pu2^! zB=|B&7hDF@;5XnQa2Xr{ds`Vh1(v}<@Fo}oqfxAZNf4g0bKq8R7TgQI3m(Dy>?;hu zM%e!VDGdv4RSSOtDRf&mG4?!o8r%-P2hxR~fhWOl!69(lX2xCsUjgAX`v}|yegTpr zOJE1M43c3@?T9~ldH@5mXcDB20eBF+31-1R!AHQOI8EzgAcgo6NQPYlp9SxMC%~f+ z1V!v3cpO{+Dd)d~N5Kd_&VbK#BL2rQ2rxkg+yc|!KOp5Uxur@84&(bujlY8AX+Ppg zsha`m+{a)Nyba>VqHupd*bUOdLm&bjIzw99Px+??!@@>JP}_*U4;@lqh*l^#$|*fY zp(Q25*_8%+R~m_t($j<9Ser$L*yHFNol-~wCj;a3KBBwQc3=eO!qR~pRvJXlTF|Ki zs6iTGdjkKDp;JDo{HRgYK!XgG8a6l$Mfw>|T`J`%ZrGl0xy1~hi}}$9*1VE*vBnFQ zE$PgI>m{M+?7HjI%F?v1J??AME9>xn$MRQB`7{$V=@-m4o{xnl)vq-?#}Te+Tdw3@ zNn4&9S{@BEv2LnxDr0^OLne|vDDDc?S-q}EnphQsqxSufshG8*}~n&CY$pU2}9(k}Jz0`74< zCAsBd=!jsTd35eYVOuasuJ(*g`kosv+EzXuZq#%X-uu-}O8Q<|!P&&BjZ^h|>Vw+m z&|L&hPe@+0rliZyj^z?;RC$xq(DC4M^QDe~c=Av@o#v^5Osc;xnGANf?AX*FPo`-y zoyzndUd*;MG|WL48SeK^2wqa2S*|Q-UUqBZ!o^y+2+>;gtiRjKD@$={Bb)ky{4dAm zu-)atg{OK}{J*o|QRy4XDkA}c+k*R^(g;15zOKx>CX!p#tZ-i~;~i=HHPh2g0S-FaN zzoh6f+OXP?#M1Skp-p#YL(Q%Z^`dT@ZtNR{;iy15S}O#@sw|SErevAJk$T18p5HbX vUaMBf+Tbw6V4WfnTuGy>e6Q+qV(r#?b@1wdQ?gdYhw{~n0^z2IXeZdehL9vr delta 766 zcmXZaOKTHR6u|M5bf(dyNv5%CeGnpasFDWnOk#xbfoKd`T0vYDS1q9nH$H-57ZO3~ zCWS5zegO;BjgOLr8wJr1;7WudF5RdLMO=sr|93KnocYb%naMr(o>{GaDEGdUoJT?& zO!6Q4Xm{vw;wPNrdaN*X0d2vXXrKRvw!m^x#CGuj zX=4Y;kgyT5i)7vGe-acYychS<_Q|efoSYz;FYYPGZhIi;icqgil6y(oDQrL-bRrHu z5%H393mX}KOX7DUzhi$Dz3W`nzfPoc?vy@o+xpe*>dNSv9?vWeo@SQPYO=HXGu!v- zHPfgC%}Qt@W2z?5wcKQ$!Jrlf6=R~XIoQgjQu-`^O_vJi^j#rPr?{*$MNc=1FZH4K RO7D$#2P36BY2BRY{0Cv1T5A9R diff --git a/po/ca.po b/po/ca.po index 63128da..f8caee6 100644 --- 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 , 2012, 2013. +# Gil Forcada , 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 \n" "Language-Team: Catalan \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" diff --git a/po/ca@valencia.gmo b/po/ca@valencia.gmo index bd7f0095e333f428d3051e40159be894d851fd91..a1d2881a84b7592838d3012eff39c9e2452b726d 100644 GIT binary patch delta 29 kcmca1cSCN2AcugNu7RNBMGkXz0C)`s=l}o! delta 29 kcmca1cSCN2Acuglu7QcJp_zh_ft7)Qwt?YhMGkXz0C%Yd-~a#s diff --git a/po/ca@valencia.po b/po/ca@valencia.po index 8c99edf..c6195a4 100644 --- a/po/ca@valencia.po +++ b/po/ca@valencia.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-21 00:26+0100\n" "Last-Translator: Gil Forcada \n" "Language-Team: Catalan \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" diff --git a/po/cs.gmo b/po/cs.gmo index 4db72310d4414b12627cf93052bc655de9c97a30..503d75e137e6efcb99d3a552d2ab78c5cd51d7d1 100644 GIT binary patch delta 2330 zcmaKsTWl0n7{?E7k+KEKor+)&)wLqdx?4(V8;n+DNfBtnMG-OP?93@0c6ZJ=GrPE( z=tA^?kQ5#!7(qg^ZxFK4q=_*x^^z%x4?Y;955A!CpvLf`ga@NW|KH5+QVDvpr@uM3 z?|hg4=?Ck-+gQ22yzLxA)6mzUzcr7sC&8O7_=EO+D`RWHAHZ(#&pOw&MdNMYGRz+V z?*}b#6g&k!0)7P!gTI6LvHtmtEeD6d4UART?)roU(nTl1hrx>=IrLeb*TDxd{sY_u zuDvfZlm^MM7eNk|z%Aefupj&qOo8(kFt!og3J!n*?8N=-9eg~FiOV2){tZYO=x%2$ z3BC-Hfiqwq_$jy{`OuQ{Z6`L9+`Wm81$%fFFT$ z{%4Rf`xjUtPu6xusof5e=NYgEJOxtiu7X|Qk03?#H%O)ET^g;Y!34%9!6EQ{kR1M{ zzTORitit#(xD~WP%Jk)B$Umj}H%w4UlTbzyG(ZhJ2R;D?;CAp9mp&Djxbjo1;5iwMVtw-nRYtTvH@P%n~KeE|ulx74GJ{`!R+2-R5dJEG| zlaNT*NG}hdQ`A&zYE)Zjkm03PC}rfg|pjZc_4 zNoVd}w}nGz|8xDgV|ujiDeiiPDtMv&yy-Sixik|u=;xPPj>JQk8fJBs&kM`QnU>_r z_Dp4kp2z&JTehu9kM7>V(#pvTkMG()wl{RbP57Oy@uh~eJVE=pYYSbveyVkJ#f0g& z9@i&@BXmzXyf?1S&>CM7>=7Nx}x?i)?8aYr4Kx~KVP7QDH1Kud1c`ucckU^vykDVg*)w0AA; z*ODnMHOTw=hWocnr`uP}s~pmHN=rJzQ_e8o={dr3b2Q+6iJ??t;ErbW$x=pe``USv zmqjtCIYHG5YX8>NoIT2u%}pG!Wt3C6$7UH>6qd*ZGiCWdJL^{mRoiq6+#pRtT__*C zm{hzN%(z~`E`%C&^~s=G4r+CCCI6*`*2wlb0oYKHDuxk|U1ORU@@%MwDd9mSR5in4@{ z{+8I-iW$rmG2mrOWciH~m!RTHu{HkL*y-M9NyMR?p=4~y1T!Ab2Gd69sNls&*?w2Y z>7o6N04>BRi+pw}CoRD(nNi#@iz*w;L|51?!(RfQgG=zzo-W0S>&SvqnP$^Zo_Hj`2LcbeN;KqrI{wqsfsEie7--R|jZbLqn z!c&aWf|OEBb7eh8|43os7%V$DfHD}_dKT~X2vm4OxV>=&9zv8cYqfwX4PgaWxG?aT J@Na;g#6M2LIcfj^ delta 766 zcmXZa&ui0Q7{KwTwLe^I)2ws4`HLtEbIfRx&UOUFfpg$CCn6qnyG-U)szq?1^e`Cc zh7%t556pw&L6CwMFJ3%&6^3kx-aH5%6!ahpe&3`IdGbl#mgITfCtrqMA8dWDWY&c^ z(8<5(lAltXh(=nZA8+A#T)_x8@i5vuMD}5b19$<=vu@)dT*F~}i51*N2fyPFQJcX7~oqB@h4W%%~1qi#Tk5t=kPZU;;DR6_yTUG zS|ZC_IQ%fzB{GHg@eIC4Q$SZC>8OTBxxb7q-oqoffo4bEVIN8{>AWA!`Y0a9CYnY! zI_n>?&ikdZE9r0&O@~j=bn*dBr@4}dhjl!GH}EX3;{~(#&ZO*-h>yd44=okX~~ln2Jze-0@yyoWcgg!6f3~6A`;} zZD2#=Z%N!{QeCf+(oAUln^(`l57GuUTXI#`5%^HKUKqMZHsgsDt(c Q{bo1XjqZzS{nc~jKUd~jIRF3v diff --git a/po/cs.po b/po/cs.po index f10fbc4..4ba87d2 100644 --- 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ý , 2011, 2012. +# Marek Černocký , 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ý \n" "Language-Team: Czech \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)" diff --git a/po/da.gmo b/po/da.gmo index 4819935b10864c8ea8027f587819fd3bf2ec7c04..5e83b29e66f31cc5b83c7d6dfe30eef3091e1426 100644 GIT binary patch delta 2197 zcmaKrOKclO7{{k^LK25IX;SEerkSRgwrSR~^J=itTkGOBY17g`k%Gj=J9akShc&x) za3y4wmk<)=utGwpQV*yRNT5nYf=C=FGUqDdao`e_OHaL2zyW~}|8Kl;lRz1H{F~XG z`R1Gd_ur-7)g#rl?&c2|nufj~{mpHRodEAQ;ScR@gt2|#FJK?|SIGU%_4x$26VGSC zy`TeTz<0oB!0*8n_y>p|8);#z8+;Z#$XJz4h7TN&4!R0H4PFN+p>IR3fd?@E6Fdg) zd#oNP4N_t+fgG%Wqu@v22)GI+!IoCWj)KR*F;E9PaX$MHgF!s_1f4JV5oQhI3RSnW%N3A4P{17(`HpqXQ@y{G^>AmlA&o|tXuj1RL*VyIJlbAuj;7ZeMOr^9QHtX89?iiNo2<{er({)tl z(cs6XiQVbU4w!8N%^(TFd96=vHgsR-b_omS1fRK-*2cMTvaTVF;C|%2dYtt^xL92m z!uj)p=gqQk_{_yjoJ~u2L1cX`xYqhc*O--fh@DxEseLen{&!gdXCEVh()-T?^-Ghg#Dj|UO}4W zLn@$eTAM7UJ9$euhET4MLAu>ctY^3-e4%bK7cN^62m__+*$1Dur}n~Sp~-5WN+q;L zAA^hs_u2<`WgJ6RRHB|OEKAt3WCxwmOgCy%TY=pK_eI`8y|cmj=v(#uN_(%ML$BHr z>aN_T72q{L_#ygka;lNLEeyo;9KGyt3ctZ{qHZ{i!UwY*uXLZrdAwwhBsrfKYfH}Z z*Bu`>4NuG3O8H-gL+Nw1o4jHOX_WU^FSqDy delta 762 zcmXZa&r1|x7{Kvow^=uL+i}wTQI@XclA($|_(ROn-m*6H z%U2%e@B~XZbtya=*+Lum4M#DOsGE>`2jBu+CgD$QP?$l1@bDQ_u7)HKvnpzplC^{pG&a)uwfw@E%t`d+(#V H)>8TpMeAAP diff --git a/po/da.po b/po/da.po index 25b9598..af825ac 100644 --- 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 \n" "Language-Team: Danish \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" diff --git a/po/de.gmo b/po/de.gmo index 4c038b421ded7745e6c864575e5679a764b67b4d..499261ef2a32a686ae855597db468a6dfb238fb5 100644 GIT binary patch delta 2309 zcmai!Uu+ab9LI-ivGf32KrEJjL-qK-=Ux9%Yc)b>$r&h>78C{J-tOGp(7oNu%p8B3 z=xH>@7wW@CV+_&wW};CeFDCXuIbKajBZ(P=BCpZ1<&i>{% zzdzsUZ(DBeuH9JM`X0luFgIbowT!W+z*`CY!T6!-j+ zKp)J3?||FEd2krK4dTc8mov5&d;;9YSdATSEchTD^al7CcnPF{zHjgbxCQV3f_uR3 z2VzHKAO&_3aPvI?m_-NDj_}e*U%Ki@4cHtq>5j)%qQsmour9Mcf8OJPjTNbKoqvAN&bC0Cum7OMDtUiucdK!{8l| z4$2|A$HCXY?cf(6Rq{GWt-TFWAluiYO5nqoq_y4De;NoV8k8N4m6%kSHcV705*$^A zoIy{Kl960F;aV|LW#yII>a_(a!hIo2^=voi_S+in_~l>kW`cf9C_E)#(b~*ksRj#dd@avn{!G1*x>* zPRUlbV}#;6QchTDd39^F*|m+$%T*ZU1wTGDW({%SJAo_Q@K(#k?2$&uWl_#!t8bSP zk>cm1=Q_4>xm_TS>AT*;^R4-g2_=k?g$o>+SE}an&#g{^PpJ#MC#AV%m4sL6;RX09 z2TE}1JEH^NDta<+MTUm9B6}ShDWQX^LbB;ahG!T2EIc%f zqjXU?Qxd!=&kCO(KbA|g2^E|XjGze z`+0U?c%XMrCVM%zBC)JC5eQcro=p#?_ubXVm?(LuN?yn^pL9x|6!njVzf?zyZR+nA z3O+({vFRX^m-jb4A(XA)*hJ>f|F1ocS3>4tZC4B2m4Z(iC=0E#tGa0CMI_897~d7~ z>B0|RZm$k5j&SL*iXRXKMw2@#q-=5oiaR1b3j*-5sD4#~dq)@_7huz6c z*QoSWea@M#`bF&tq2S3W;ow~I*m{i%s*TY6#dwil`4)SSgOhZOpIaHtXj4V#0tGt4$6i}o^QeL9@D8*?1F`;AKFEL(_d+aFw2NCrk WR+sG;MX^&r4+wg{i>sqWn*9es_76z_ delta 789 zcmXZaPe>F|9KiA4Zo5wH>NvY zgbPbNIt3AQsFRl!I@Vd}6hTOT4*j`xs6&Sc>icH*$Nc6q^O%|Ue(yJ5hraYxKBZ%i zggDU5zvz%3BAkdDQIY+46VKuX2KWvSqP0t;2Yu|v1=QavVIS5ogPWMf9klTWj)_#n zjERgga0&-;9rO4MkKhjKiH*3(G#1ds8hZE|ef)(Z=(Mm1yoBfQInLm39Kb1~vG8Sl zAE}7kZw_4E!^e5xF3#dx%wcb$QPCU@a(@*ae24@15~)N!V<&bcMGoN*9>oPbjt@{5 zx{bP!e>l$kGTkb29@kJ$yp6{&-PWkQfG4dI_WWD!?z9$(=wwzi8L#wpZY z>?L*VCK(boLOMw5X8)VPVubg@Ug|#WB~zrXi21^vf^_Kq%v!0vv^R_z?c#|2|uWu!zk&fBbQt^8ET5)xyWc#^E sFE^G@)wVS?VV+S>%whG-EU1g^HDy^()nd9w8L6fE?bMs7y3={#KQnz{R{#J2 diff --git a/po/de.po b/po/de.po index 5f4c9ea..0e87fc5 100644 --- 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 , 2011. -# Wolfgang Stöggl , 2012. +# Wolfgang Stöggl , 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 \n" "Language-Team: Deutsch \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" diff --git a/po/el.gmo b/po/el.gmo index 4ee41523643990ee2ef4944e944ada8893057f99..efba6d8cdbce3eb93b48846c33e21388f638412b 100644 GIT binary patch delta 2669 zcma)+TWnNS6o$8Lk#-6#)=L$NY=OZG&ZMQaLcv5IXsikp1-u~Ybmp`jGM9ShlnQEw z(jpSDiU*<~@$w`_X;Vvsw3Ja}j4z&JjK=7LL7&lRd@u$R{nnmoEh34VZoYl?W$m^8 zwf3A3{?w5DzN+MqqJ`)+^#03~x&xjo;y>EiVx{K7AK(J`XMr^(`R`Tm3g#b$*TEEQ zfzQJw@JrYP|A73dh8ap#!4>cZrLyY2!bA$nMZIt_JPO63j|%)AUeEV=xD?L4Ja4EO zienE$4Y$MF;1SpWzkqdc#!RJdhPT5;7=e}CuU=(vD-*|{c>XmM1s0SlRSUO3F)#p^ z!4F|Q{0**wHfdFf;780p?2wnwuz?uOQcZdm`DgL z&&f;j2owhn6uv)(>t!Ph!+S~e<8TMO8-52n;35**2KT|I;Lq>@*m0#&op2m3f{O`X z_T3F%g7031{?9O2b#*?1Q}98)tFBRMGu#R-_$k~6Z>?7975D*6!PaY)+5~fO4ZMa5 zlz?JTq<<5Na-YF1u#y5pXoWdbYqv=Lr4fi}k{4;^^qc9FfpqMAmt9 ziIyNulUG9xDqgB-h)P9fnzVGww$rwbCeoRBs-sC~gPFj;*3w;8iZ$IHPgrv1-|Jlw zTh3l`y~mC_vhJjH#)+l79b-Qk&rF@l$V@OMf9{T=M}x+tNwd*(G8sw567iI!(_KzH zoid&W+^>pORX4ZXw^}u)?PSE!_dKv}t#Kj~b}Ng6b7EG?iO7DP>54?Hj9XXSa%Fqm z&Nw>S8L=Z#$FlW}!Km9+{OkgAI2LgtI@!&JHcM~Z&>UK>tyDA}vtsVK;uq@H6kJYP z$u^FrB1t^5bx%AIi$?62j+dndgK?f3h;{hi(^ydTuwaqkQs zo$zv|noT@Itl|k#kKc<|fN(R$|_m80YMWKVYnSC%GkmCDENWm*T~QsN#*w zCKH=GKhU%EfcKX7ws*)o?7gA9qukajUQWBu--}Ht=CJ#6;7)xIcZW>`g9YUzLUhmh zd&IK)Mc~OL+TV$tfqWJ;k|L}(?2R!oXoT2ho=K#9fxE8!bN8q6xtryLcbrhjq9!*+ zw;>tG_ZVKBFhb=-5=JMv{kYlZ?B{#dV{61UEtTq|SVN`1BJrg+L=M_Fp;7pQ7t|Xlo#i_%2mnJ-S`Rpg$ zErI#&`0S?OJ4TID+$ymQVGM&(Cug{p0`PY$?|}PQV4hoDvA&1^&R5KL_f*&nN6uID z6mK}lu`xtAUGQl1f~QZp5j{D;yH-#-bRiKn0LLW$hADLEEenbj^nVN)> z!9xUl3OeLTFbPotJ#?O-Ll+HiMTd-vkg%ZsvnySDm}h=7!_50W@B7SF;#XvJv&j2I zh^pQEjS=#F7ANACN2CJ#u?eR!iSO_LhOfbPI^(WeV-WR_;?+ho7+-EAvIJU=Mbp zjcsTJMQ-3E_A#n>X z-9lHe{yGuq(qSe)~B zdejUw>$kvkI36_EH7%XVD-Xt^mK8NE!?KczxGvk~i)f&ZKkCe&vigQ_h$@&nFZ1l71>~G*bV2sjH;TW3Osc>3+Qw%GJ%1 PK5iGAO7CQAS;fP@%|oy{ diff --git a/po/el.po b/po/el.po index 4ab0866..708a1b9 100644 --- a/po/el.po +++ b/po/el.po @@ -2,113 +2,190 @@ # Copyright (C) 2012 json-glib's COPYRIGHT HOLDER # This file is distributed under the same license as the json-glib package. # Dimitris Spingos , 2012. -# Dimitris Spingos (Δημήτρης Σπίγγος) , 2012. +# Dimitris Spingos (Δημήτρης Σπίγγος) , 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 \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 "Μόνο ένας κόμβος υπερχρήστη επιτρέπεται σε μια έκφραση JSONPath" +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'" +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'" +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 "Η τρέχουσα θέση δεν περιέχει τύπο συμβολοσειράς" diff --git a/po/en_GB.gmo b/po/en_GB.gmo index 34be2ee3d0d1582b00def54295b73380c1d9d375..94fdeb64f9a3224902ce77bf901f7418239a4aee 100644 GIT binary patch delta 29 kcmeB`>6O{=oL#_7*T7iU$VkD^%*xP2+rVJ+cXly00DeRV)&Kwi delta 29 kcmeB`>6O{=oL#_J*T6*A&`iO|z{\n" "Language-Team: British English \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" diff --git a/po/eo.gmo b/po/eo.gmo index b6be188492a44ddc2a899d1da34a32ea5f73cf20..d43d66e47a9c99d3b76029df7b986f34fbee61cf 100644 GIT binary patch delta 29 kcmdlayGeEf7l(kEu7RNBDUKOz0B?i_>;M1& delta 29 kcmdlayGeEf7l(kcu7QcJp_zh_ft7)Qwt?YhDUKOz0B;}$\n" "Language-Team: Esperanto \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" diff --git a/po/es.gmo b/po/es.gmo index 3d38a8935a4fe6ae6731c39a823fe8aafa120494..d6e351f34114b81251d0a843c76c87f7b94880b3 100644 GIT binary patch delta 2261 zcmaKsUu+ab9LLAD*!BvvKovwN)9P9NxW`>fE3G9FNgHYkZOR`tftb17xpv9!&M~vs zT97nEAAAuLHYP@Spotg^(Zuux(--ae;)8!;^nn+miHXs`gOX?rKKT9ZZBJ;dlbij_ z&Y$1>{(SeYw*9_i_U8J!w-}m*z6JfY2N>H2-m1X^?T1>%HiJKc+rYmQZmFxh4}j}1 ze*%0248URVb?^!BTd*Je3&fA@S;g3Tun%l!Y?h5A69GsUod+KWFM;IHX9;hDZFs*6 z?gBSISTQsNl4CD|9Gn4rz<0ns;5T3nTvgB54)7_k7ZhMK?q_df@FXU#g5>%4AZ1`% z17lh6BuEA>fL-9HU^jRNJOp+&GIkg&frH@ZU>Z!Num)y9M9N+OTfsBncJNJbFYag8 zG58s2{|%&wZ>+AQ?hlY6-nypZ$N;zj?>@>IuoB_$9 ziy%309i)4{1ZOFdUoq$a+nO2M3GN3opa)XK?}873UxB;9pFmn~Z9yHu1K`u(Igm2< z2}mXQGg-GF5W08*q>{V>Ql>v%hy2rlyO(kl|X+2cjgpMkOv3=h))l-IM(hmKiGc_mDu}e#4ZRPtSa6C7VToprC z1+nL;=)0PMjYGpDgKS7?UxfU*Bcq37Crl=4u1&W%G6)6j=cXuZX`)>1@P>k`O~~y@ zp@khv%{$X}RIEL>Ek5jsP;kG54SC6r9UZdvav9jlkxq20_Kn=3#ARRlc^nOd505mT zc0I=y+To%=7Bl}^k6y0JH;-uRNJkO9sch2HsFFsonR_-)E!kNbB%9-K zk+^VD@(FiJ2K?CgaE6U(bxPWy6o^4is0Vxa9wcS^0aEkFQg zRX~Obc;0PVdtsuNm1WOm0=xn1I7>spBek2#*xPiuOXhs_D zNW62e{9zyky+DZ2p-R+uyYX4RfBe9~;p3x;0Hx4X`*AfgQ6|;dI!NksRcz0QU_uK= zMMqQP9b?+{p%+M}JQr(m@mktmT;PG?Q{_37UPV_@@9iF;qawt!qEVSgoCprLL7HyC zwPDau@Udc}gH7-68=`0_v4QgQP?dwB??Sd(aYgfpMLCEJE2dZ~e?Z=OeDPXlaUm1k zZaUpM2#I^1MENKQm6Xn(TpiSOkLeOzz}~8S;WIu~!Bsw#0S@@(IkO~W+bz!r(HCo9 nny#pMd5Z3l>3w=e%C)ph+9YxRkDfXHyYA1BM?%JwqcZFtqO1Z3 delta 791 zcmXZa%WD%+6u{xrIB7JG$+SkTR>Bk#wbs~q)T&bpiVv*TM+Fz+10r=7ZEak%Pzk@ZX+3|a1n7Zi8%N~#A&S! zTxk3)Nx2@C$IZ{xY3r)~wIUr&mh@rrlzvavb*6n@52mUsOR1X)_0nhbXL`;FE8alG zA9MpR^1MFJ*ZE9WE~xlkB{<~zVHEnhoVk`Aa*tQ*_ioi{)jJcK%Pv}O&#, YEAR. -# Daniel Mustieles , 2011, 2012. +# Daniel Mustieles , 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 \n" -"Language-Team: Español; Castellano \n" +"Language-Team: Español \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" diff --git a/po/et.gmo b/po/et.gmo index d92ff3e449358c14adf9cc45255b0b0ad82932fa..6de3bc5f4da268d8a5024dd5f25a3248f8b75082 100644 GIT binary patch delta 29 kcmca5b4zA}AcugNu7RNBMGi|g0C*Gz=>Px# delta 29 kcmca5b4zA}Acuglu7QcJp_zh_ft7)Qwt?YhMGi|g0C%tk;Q#;t diff --git a/po/et.po b/po/et.po index 40bfd22..97776ea 100644 --- 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 \n" "Language-Team: Estonian \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" diff --git a/po/eu.gmo b/po/eu.gmo index 49d024ee253e841b7f0f136c8af3ff763669e3e6..e0f3e99ae8bd536113781b3ccc486229bb7fa3b8 100644 GIT binary patch delta 2366 zcma)+U1(fI6vwC8)Fj*5e5tK%YR077wTXA#e3+!03JsdXwQX8VS|hCwvwLSZ)4O|T znR{=WE`&u;?28|8X_3+wQLGQ54}I}bK?FfW{6GXP_Q?keB0l-?;Q!qHXl*Gt?A+hn zxo6It^Pe+&W%p++gL}cR!3_8(h##BW%vc||AAFdx8av#Wa6#JWMQ{&z8Ki(dY495O5Z?a= zN5P%<)EzB=6xj112hV|zgO|Wb@GEc(+}y#~K5!bG0tMKO{n?usJc^0;K#Kf3kQ5l~ zWGoH70Fr~(z;W>o8c7iwG3_n~*7L!8JtNl3?m zdWtF;$+a5dYBefGQf~;oafujCD3Y9m+tEpF#KJ7vpQLHF9T*^q=<3iJHrr+lP;b!< zpgELA)Q0h-nj!V*`cb3IQG*OOHEQ?MGvQ@8b!m(?JYUkDa*G*WOL+0yzUhi|@r@T$ zNz$6zzgL8zwRin~)+nF8`ctph*uUshggl}9rPn|@)n?NlNPsp&Sa%Vpu(CFM%4 zE56ch6nQ-Sw(Y?7h3w&ZwxCT}`23mWqf1c`UMlR4C3`hx7aR}p#Xg=4X7e?b|~ z=lL~ZMBbN%ClmRw65AMz7TdxXyd1zFC;9P}1#5;&H?M7Jhc{xcjvZ-)T$be=mb#*h zhzvigN_Jitn~MT@Ox^SzuD9p9j~VIvs&I}Y^Ge`f{h>YI##hWaK9umdWv$6lWr!Ex zr>u?S%EhoO!l{m9wG*PG5R$w#Gj`h3u2n3loD~`Rv=rHUbt5A^9T+5=y2bEJ(@%5I zFpkoNaQ>R)MRi8H{P?rk6gy`0X_@z}fvjzvkT_fIW_W8`UKSqG3@>#Qd#0@Pgf%|S z$EGr4lcVW$*xR|IXVOaJH^IlIGZQnT>G5!X=gEG=Yh+cFky=%A-l3V zw=%z&onwvKZDfa)^-~Q*D(s0T`wnT(i5yk~qXJh7C!C5e56=Y%)Rm5=GEQ=s2nT0_ zP;$sv7e!8nuf#8oG>bbxDD|>-P}Gh@u3Q#zL2?oog4=-~?%HzU;2~wpXg5`rE;O;> zKXt2nN=+kEu&6ntHU7HB>C|Nr;fGs-?kHqGXexVkc9==uTHIbm2l=_`j1J=9%B*PMCY=+<7;$nQVUT4ZRTR zNGJc$C9MD_YAGmk5bxtfe1>KGgoEhp5jli8Oye|~XFb59xQ-cojlH;wDg22iMVexV zL<$T{;0Uf@5jXHS?xLC43X7bW>-=OV!27*=nOUUs;%2Z0NDrlYpmN lu`$)|x}LJn>xMm~E&G~Y?|H5XNA-tO-, 2013. +# Iñaki Larrañaga Murgoitio , 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 \n" -"Language-Team: Basque \n" +"Language-Team: Basque \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" diff --git a/po/fr.gmo b/po/fr.gmo index dcfdfbf095c31d806d6706c16c83650cef4978ca..9d868730c676543b7a9bc330efe56f6e15f6ff17 100644 GIT binary patch literal 5572 zcmb`KOKcri8OIOMP%wo;d6z;CDefgn?~U!aA>5`f61z3B<1}$1kf`8z=G=QH%$>QJ zhZARqRHPy#kU*3Qv53Sb1_`zxHjoPo#Da%Zv8&1&goN0DV8QP@XJ)Q#*-0aHk6nxCFigJ_7z3?1KLR`BC!+lzIUCEci)qxq41OIp=HOr@$YAqR+1@d=2~r&;JFF zf)Bpk%UJ|PuP=fc+yoy3e*n&de*|a21NSO*82k))0yNmRe z@UVP`6r$G>DDnO}D1Lthya4_IJOe(=$EUynxC-8^@ZaDH&(FQz+xas10?&T~<^2-Q zJPv*zlyiO$N*wRSNYQs5oCBW+MgEH*ZdM=S7M_VuL7xeqS5epvbk+pTDqrR;TNidDK^NQ9o1M6#3s*mYdUBlpwM|a8l_obL$#EIm}Eo^osUdlb6#zjI0`4`=TSc~MVZ;= zlgTo(sU!AY)1mD}364fUYx)Sv)cbo;mKQo0m<*5D%$?qR%q?!+Z)YAyfxXS=A`>s6 zWodPgCL1=Z<6Il8TwFp^81a=Ij*87~uZAUxty_I@ZLxilkOufPR4XR#;X)f~e?CFZ zEL>>}Td9~+QC8=h!}T=Qt-~!`;UZKYuZwaNTNfZz@3OHS;_6)1I_EaO}~BF`jBYBj0o zxr0w8j?=5yj&`1Y=Zs@>?E`f#vqcg0V0KxI$fffQ8+&QBcU?H)$+Ii$Yugmr&EOUc z_9Qo)?U;qB{9UJ&A%ZS9Y}iq6SkfJL*ACHPYIBzsgEYpq6br{MNv|EpH5+7|B)@2m zqM_StJR$F9M`iBaZSi)wJw5?j(;)=Rbw9I4SWyh{okTv5uEQGY1b=(K?n4Rh)w_^Z z`S!NrD(X5Pp`DZ+m++orqSGCvP-zcM=epe<*m!hElO%eWW|TjdFRo~H)WxJG2P`Qv zqxVj@UKH5uR`;w)jrAb#e!t~JO1a<1Xm4e+~$@@{*{#@D5 z+iPi84~k;cJ$7up>|c-K*mU|yI<%cM>mMWIZT4k8bb@~L)F?~CGAN#C#7>=CU2C5f z!f;&s49a%(+|2BW_RR72+?<|0(Vd+?I>W`n_IbMziCU9&^RjMsR?p3K=Z_zqnPuHF zdbZaxljN}}(yXgb$EKuJ(N@#z`VEzx;mOQ)5?egUmZV>rzHP5rGwkYT&#ta4 z=tYWEFwpW!pK|u}vZo0v`io(cU0vPFrdF0#7A9Vs?aWM_PO&^e6|%Rh3n+1H6q_h{ z+|^3j&J(WcPu7XbJ)5-`qz%wly87gLRLCrH>xK*h@|#h`mKprjtQ=bDh5qB-%UWqE zJ&9F1EE!LNL1eSrZZL_7HyJ*ZvC%P;g*&ktiW;x3GEqsr@H38Ymj%b*pP`|e(B6{Yezy!YvxN*&mWE!hzV(w^ zHzaJge#u;P`njcr^U_YmK$pAjyv9i)x})G~&WgrVCn69L)U8C1vTDC{wLX^lNlAw- zshQRIq%PEB(nOAIc16IdGvlphPICMFh@%VX)uyZ)r`7K4BVK=c?hu!2dOkDM_$J}l zrP`j-ZIUy2;-jh??-aU26S{=$%Ut3|z&$sd9+>e@t2i}^$QA8Vf!Cae=wyq}wOOQl>STlIy9AfbUR#=m$6< z@pdO(aATTJU7@LbJM3axXNV4|0m3Oiwl$iMzY&kO{Loe}#guw&6*xyu=Ym>e*PW~$ z-;j)OBAL#H!cXam7?qaWBYHXgDj}{9&}Nj4Z|1UfSJXR>($ACupFH`)C?BOsB$4K@ zfceZeW1cidpN=~c#gr81C?9WmJ4(r&iATj2nft2$C8*6rSr|UvQfIg4TV6&R5&Yk& zWy6RGNeOVJYyeBd{d=dXPiw^0`GAjjk`VzaY!xOd7-(Gu=uBji6s3*tByt}irty{b za&RN=ka`vg0Y}W8;vbTJ5BjU+z4kYo(S5vCv1gCUq_IkhgUBa~sL5}ZyxM_pnmp${ zwJfDhN|p<4=+Z|bIf_e}JY@*J!hd5_0YVkyNh)<6O1R1UW_qrjO&sr9C?~XhI7OW+ zB|P3=dXsNXXID|RPFhZFVoPC>id-dhC3atF3wdrf?R9T|J(D^&xZHPskh<>2L#8E0 z!fo|K{^PFbAYE0eXGQ0|D~gi&r8>-=(yVU^kk4yL*?My2RN>mL=GF{-^#scRv%MMS fS_-NkW8GA{|12xLb9XTpkF^+NrBb+v*pB)?Y8T>; delta 846 zcmXxiJ!n%=6u|M5m^9j$uiD!B)jpv?N=$r7n@H38g-N9~TBLO-;t-ptDQOe)GPEFM z5JhOA!=>V&gCC%iAf4QbxOH%HDdJ}7;-G_|2>QRt^N{m?@7+t@J@=mXA@a1Z@ukDH zCd6So|6rK>?BGIFogxSD4vyn8rtuRV#o#WHgP6d6yoCB)HSEPzjNlvWz%4ZJ8zw~> z;&+J*F_6IlT*4H-z~i`udSQ=SCzX1t_XEX57|x9PT>HWK_{BQ zCn7=nUc*5)za2N{+47KRGrhdE9D(CK3_uOM@+ij_(wiR{KlV5-Bx#3i1`-J-5 zz8oBknnTfe%1D@L(~OvLwc_pZF_?%ZOg$J+sJGtk*hIy$isjORF+HBkotuefCUer|VarGMe~cgFw# diff --git a/po/fr.po b/po/fr.po index a1e4676..c951eed 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,110 +1,188 @@ # 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 , 2012. +# Josselin TILLAY-DOLEDEC , 2012 +# Claude Paroz , 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 \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 \n" "Language-Team: GNOME French Team \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 index 0000000000000000000000000000000000000000..87699d45e51e561a8e478f552cd77a459db4131d GIT binary patch literal 3675 zcmb7GNpBoQ6fPhT7$AhOFG59NG$e74J3qnXpAo0Db?wQ!Kv$Uq?o1T94>Mh@UuYTXL z<#UGX_y->@O9uUkaQW~E5Iwj zJ;3Y09l)DF4*UbSAGmD`WBY&;z+J#q-~r&*z!Bh0Anm*LLB@^%-vy2VuK-)X?}6jM zKY@FJ^@m^s@O|JM@EULu_&2ZtJiIm7odCarkDmg`&Nm(j^3%X$c>V&o6Zi}8dEh@l z@?%FWtUn5T4bK;VwErhSiqm&MTK5z1Fz~MuTaPlf8_yY#{QeRc0e=Ke0sjLY0!};@ z)9gKaN=6Civ(KCEur z^@KirUKlI6G)9{?uUmG4PoEb?iOlgt#ZKu=m{l$_N8gun89U1bf9LG!Ij%d)c;pwA zTf!?5yL6T7O!A)Wb);dFURq_{welmpQ#kIHBsW?+p6Nt#Ww~DDZZ((uLftmlz=Svz z*78O@Za~m+TjaSmP9|(7TM?;BhQ?ae&4eqA9J~_7h*hq#L|)>FTvVANZ=h^9cBs}{ z2|qV|nW|Xc=Cw2A9SkWXk9D>pjiW!D9+<^^pc3H(`6zq2TV=B%UDT#06K=hJMAb-Z zhqlcsJV8&KYL9lc*U>3&>}tRpAGtw%T#={J2aZ*%WGZ_|mnB)hdx!&!f{C;-*(bPP z$>wxOfLIYK6&>gjAvbYh47BhZCQ#Ve>8#A|nyiU5)feFj_6nq!7oH52N9@cX$BVj@ z?NCxe_TnXBz#D0NirE54QEj}Q7Y*5i+b0PsXh z>q)qz(*)kykbNTUn(YP)NRDcSEQg_qUn~M$?qx;k?!7Gue)%<_0vh!M^s&5aq@aMi zCB%-Z(5lPQS08?dxNbs$5Y>CoR>tO!vwF@kke{h&+%>#HQ$VN?-(fD~u{qi~xui z=6I^ek)cqV=36iN25J*Zec1qIFutB z7o~|Nvsfo+cx`^Lqg?I1Xj*2{1mowmOqAoT=Kkis+AU*Cn*I%g35CMK9I(pIE~J>R z^lw=DKT($vDNM3KFGeXQ2tt;K70C-Uj_xv=zi*K-9?`Pm{&h=lh?GXLvx?hXNw-dV z1XSQEMJ4H+V+I*oB~sr1h9>~0a?N+v?M`-*hL;@fUyd=FVudhHfO1m`gJ39;X=)D& zFDCpnd}kRt~+T-P!c5%&@Xs^shsK;4$2C zu&fGen0hlMXW+P3jtL08C8LN)o^Y_kld&XkIROVeZnE`if(v(0Gy=LD6x?!4iiC=jOCs+SOy}4Pj@fxJ-T~wZ#g^FC`-eSH*f$&n5P9r(w|^)dQ&(J zdD2pGmIH2sOy8@f&^hm5?6Hq literal 0 HcmV?d00001 diff --git a/po/fur.po b/po/fur.po new file mode 100644 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 , 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 \n" +"Language-Team: Friulian \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" diff --git a/po/gl.gmo b/po/gl.gmo index 8393a36a38a0c64fc91dc184caf331685e6c5041..d5a9aef80c697385fb2055d316e4616842c9d41f 100644 GIT binary patch delta 2261 zcmaKrUu+ab9LIILupu$Vg!D-g(+ATR6JE5ZF}@k24}Br{;& z<~P6JZ@%-}{_lIrw|3TDV`v7xc6^t%F!lm?rv`s$w`&>O3;qIjfd5q4UKfu?!5x@C z3qA>YU>j(~rG__4uy#&&|k-~q|}Mq1L>gmz%KApkOKO;%3I)582=6S zfqNf|9pyj@>`jn^bKtY!C*UCX1DFBp8yM>Wp96fOo+$u)C45Q(y_qg5Q8iFpLgH(yjART-IJPNLYFM`9{8AEJr9wdJkK?>+P z*am(J?gv-EGL>i*9V+>umbkR9f`>7_08++_ART-gG{99b1tweL5>JA|7+$?q_tkUe`+{CYGh2U2_KanQeY@f6daY1bOJp^ zN=9<)4RNhE5+mJrC%)<!%L0Y6ZD_-M>u^_Yo)pADBt#`M|e5uCpN9AqV%xFr))>k zp3Un;p=s~`uAkR-K9Z1>vW{mfB>iCA~n9J@<>klzy10&9_b2+7Gxn zBeXCBsd;zO42!iFI-<>%2n2UaFepfVW-@0S;nFjeC9UvI?T4AMYRIm13)t!j7ZGWG z-gYcgXp4&}@|e2sJ$$FG&@!QA5ZF_59GMqO!O}{dS;Hsw9Pdo}+%RUOQ|#nZ@Z%~i zx$U9rig2i5qWrpWY=k5?X2#C>$}^@NyI@3y0c}P0er%+ruSy!prZyPPuK8K(RE?u_ zQMh16@@ackdi>1ke2PtIbxxXr5ngGy*g9mS2aNuHo*5d+4ECkd;eoAtwhb7Wej_u? z)0vUXz*25&-({IFJNO%$}Pxxz)6Gt$=TVJjV(c?f!5Jlc{BrEh8! z13o>$eNkDo1m=Ruf@cXGDQ)c}pDPziw3HvZjp{hkv`VI3@+B{M(KC49TmkcWR7n*m4cN=@Va{1#gXY;4Wt5TGa<^6L>T&b`<(cPAX6z5gs z(HGvd7M2Q+B__KjwCz$gID`}nbNTb6xqOp*kne0|0YXsWwZvz}IQEJF9%8}D0&a~| zCpdI!<46(39IH2czUlgKPB>7tf+xt;Qk>L_gH#DSTxC@jJ?^M!MN1nFPc7dJSDM_G zG3hu;;~wJDE@hj?YkDT}vg8B$#bd?GsVvz3nu4P+!mHcgdN-D_Ucd1;_7p=ZTAC&8 h$MvWt#5W845lZH?b3-*s-i#m()0^<5iN}*-{{c5d0WSam delta 772 zcmXZaOKTHR6u|M5G-+&NW~Qmt`lzPRsgyDHP7*5)6?{f4+EQE<7j31xim2TfL9!6s zG*aRC*s0*6T?vveAO!_KfD1!$sjDvR!i6aKzmptt<~K8$P*vZhSAKUI=ld zn}5+Kw-X$QyGfCQcn`1Q8bpmXEbqw%57O;&)+`&^K4RKN; zRc>6uajfGczQYsPM!Rq(Epis;(BL|T_z}yvixu>HDFWwl1~>3B{>I}tmFX0|j6V|% zktdwkO7HY_e()5}alMT`4rfWch_=urv>m;~3EaZC0Nl^DpA$KWQ)r)G!87=_d)-Fc zpu3lXSzl_LOyfhe9e%<9d-9zHCeU`gfVSgjSi>#6f_;w21)M|s{c{|{&uFK3n6$Bn zbV)Ws21xp5|GPm^!t?Pg?VM~U{p3E9b>f+V4B7+1RD?QZh&(_tPGJM$U=nfgiip=e zx3Hn{yCnW<Yr4k*V3ch8e&fA}(7ZU6uP diff --git a/po/gl.po b/po/gl.po index 2602a49..b338a3f 100644 --- 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 , 2012. +# Fran Dieguez , 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 \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 index 0000000000000000000000000000000000000000..91bf7811f96e4e5ae56c47c05de6b59db47e9516 GIT binary patch literal 5069 zcmeH~Uu+ab9LGlil@k>~6cOb|^*9Rb_3kL89MnHxOG@Y;Yui8~(Yf8Z>%!j7W_GS{ zeKX;~Cyj|FYA`WA5o1hzGbSdQ_~wJggw!V@FFyHVOpFE}{Qh?LuCxJ>SJO%7KD+bx z_xsLoW~Wy-t$kM@Imp|QFWx1@5cuoe_(A%4jS$?~L2mrte3+zFn{-b0Y*c^!NPyacj6-(04TwS!1us?;AN2Qz5=rUJMI&r1fBu8|C?Y1 z{2JU3{tk|Th4n&=gDr3v{1(iExg6@i63Bj@0v`bvz}?_m;2`(~_#HI=4P^hn+K~G5 zQ^r3tZhautc@SisPk?N%2krtt16k)QAnUyG!Bn3uAkV)$dp`m4JZC`G`2xr~f0*%0 zkab=JS?51MUauaA#X27V37i30=XsEI{uE@Lu7SPa=8dV&Lm-NT1zG2dAlv;p$U0vK zOW+{{5%)g}vd))4*7v#=)0B*7+llb^Zlpoi}Vw{p<%>=UI?-J_oYS?|_h5 zJc`Wz??L8-;giH|Io*%U_9F}gTu(IMdDwP@QmQT3NtnKySRdB92RYk50?Q$uL?-0N zkXduK&p~EgI%z8&U}CbC2!(E1hbM$uvL;-Ja7fbA_U)9PL=^>Sj}hUf`pFj(FTekDM4z24#bn4ZDwOElYMzkxs69n~ zOuA0C9VvP(9~Z>P=*eL*qD@oU)FPHFE{d)PZXn~B3VFAH0W8I>DAL9%PmG2hT#{@C z#gTMXjG}oN_}-HHvEK-#Z5h?AlE%n3`RIFrJXQBY2#o;>`8_bE)4%SU*pfRZ4HQu( znY~*XE694Qo^jy2>R+m@VU=KIOOdO?d1X55+;LbW>*7f(Su53yZ2N|yW($VZ6wOSJ zID=SH7n*uvOa^sGs60yN$08erSm`=8mPJk$vJ|(QH62i)w*V=U73xe+wiN{`Ss>Br zr2^H2)G@bBtV=~iaKZ(inB!EYJ-eOK2%=Cn5iAA~7I>~S9?3c@T3k|BjO#QsXmzNlb)UcrJ@483g(~e1~;u_)W?rnmZbZNu#Xw>xk@@jj)%d zy3ttIS>GDRL>fFRmVNpLLsmv`0TG-Axy0N_WWiNDcea(p3MP9)c}4M`N4jnAjv(Y| z6(`$bP6v<{heZ-!yuFr9*X_XVc=NO6Fw{#r%QPVGq(|oNopnk5O8TT5u#ooAXWbqAwTv3#&t&P^#ku${5E;d{=}RwH(%b(Q9;@gXt7vEp}gpMp#!cUbO8yy>7(x+T3 z<&J6i7-CZF(<)gkeqR(wKRleAiuk|`CFlE6J2tMaj5Ev!KE5DT8m##?HyN~y44e@x zFTTWKl)T16mBW-i4($$U=Ma^959dxf$5p6I>fmt%TjniQiigU@ft44S)w|8=-Dc&j kX!UN>xe%@1ZSXI{>fL7P0@b, 2014. +# Yosef Or Boczko , 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 \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" diff --git a/po/hi.gmo b/po/hi.gmo index c2f591fb940decdd4e16f87789a5383701229670..d32fd6cb6a8d9fbe8a50584214f8d52ea9ea7c9e 100644 GIT binary patch delta 29 lcmZ3YxkPirb9MnUT?1oXBO?VvGb=+AZ3BbN-`Usl004(R2)h6P delta 29 lcmZ3YxkPirb9Mn^T>}$cLo)><11kdqZ3Dy2-`Usl004&C2(thH diff --git a/po/hi.po b/po/hi.po index b33a8d3..39ba4fd 100644 --- 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 \n" "Language-Team: Hindi \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 "वर्तमान स्थिति के लिए स्ट्रिंग प्रकार नहीं है" diff --git a/po/hu.gmo b/po/hu.gmo index 28dbfc2937931511701ee5a8acbf410d62fd4141..412914e1e5a431659fd72e90a2f2701687d283fe 100644 GIT binary patch delta 2448 zcmai!U2IfE6vxN52wke>yNE~!bor{g?zXj*O+`T{{Q|2L0|rfI@6PVt-n(};_s$k~ z6SEL}&<9X*V5%67*9Qv}(IdBuc{{Xwd z4foaz4T9v@agc*$@Nw`RuowIaOoB_6GPVQU1@?ggY{&iV0tSy_;vh%;2hWuegXD?zkr9pZLN$Q220=p@G2MuBN42D2@sL8W8fOF0&WN20Q+%2`vikq zko{+n((rv-ZA0Wf#&+Vn2aJO+fos9DAO|mk2f?c#In;JPWBb6TK#0W7fRvKg!NifC2a{*a1Dq zKoi^w&Vq692k=3#4Ywx1?cgYQ9E8xJ3RG)5DgV^qP}nFh)Rv>~Ku0Mss1z0)<&^3K z^%Pbzf^0PS*=U^@k-Vf(Q+*a0Vh^En^bT|?aQMh#bU##WwDlMvxG)-&L!(hXQE%Z3 zph=WS*dE3&MM{N6xu!<11~tg=Qo}~lv#6Ki)TQexmm9Y7OedG()u=ofwSubLki=BQyT(=CjE|b(agWkj7C* z6yTA|Pnved5N?KxELn`-vF^Xzl5QV&rPgM)%n^C9q-VZsF`D>AwmxiB&|=_x0cv(0oY+^Fd&qW5Z>T`x_jcO{aEL}W~OIyT`7$Fqf2Zi*iiX~Z-tZCQZf0joC1aom@46qL&-&GV%_ zIO*g{A}3=LQWR2rsO02?YYLp9!t)ILhKH2O*)r#7$Yv;KwE5WoIOnbs2w-%OfeRnpPp0s&E=A5#r|9@jv+8Jf%6wHP;NB-5Q zR}tx{VA?4wk6R`rkQ&(yE|Vv4BzyvSlQvX>86LWzEZ=UO>=~-XfbtiP;d#n6xh0B* zr|e+H;)`z&FZZvv?(ZB7PLGVS+9RNd6gHzYg6YuFxW7J>q6gsVE(ni9Tb;9y=!`4F^6jb-R!*3 RNd1P;U`8=E&z;T( zLi9HCABM?KE&LF-9U?tAhvT@68T^2UFtAJH0LHNo&!c`<1w*)s5qyQ6xQPb-z!M@% z;&+N985qGMSi=<7F^Ze0Cw99;PU0k*xQZ6O#W?=L1cqB#1YW@lxQ?Uv2L~|g-dT7a zw_27&?$I##qqIk44DaI*e#GP0cQ`_S8~0(#D{>eoFpXu@C$^4y zqhD|sgKZ*%%r8?k^orL|Py7u}Vbr(dEN1Dyz(M?q7jeKZatRl465nG#hT27r;V9}V z9wc?_CK(bALiUpEoAYl5ixQrzaH1g$n<660-etLUDg|4r}f{M1ibi_UCiSMR5 h?H^Wkzp1|aud2EBx;h(psDd4}jb|MVhkDa>`9J4|c^Loz diff --git a/po/hu.po b/po/hu.po index 4ce61b1..a7a56ca 100644 --- a/po/hu.po +++ b/po/hu.po @@ -2,115 +2,193 @@ # Copyright (C) 2012. Free Software Foundation, Inc. # This file is distributed under the same license as the json-glib package. # -# Gabor Kelemen , 2012. +# Gabor Kelemen , 2012, 2014. # Balázs Úr , 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 \n" -"Language-Team: Hungarian \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 \n" +"Language-Team: Hungarian \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ó" diff --git a/po/id.gmo b/po/id.gmo index 091c1d9dd7b087970cc3eee0172c627aaaf55057..21e030b35264703c934d0eefb02aedd7c4ec3cc8 100644 GIT binary patch delta 2269 zcmaKrOKclO7{{k}LSv^PebQG-rYY`&c8#5cv?OU!fw)SOl&B8`qDYLr6MMT)?d-O7 zC9q04aDZ}HRYE9mKp;49D@YtTfCNa~Pz8qyR8ej~4?GW0g!q5E8#k$dk;lK;otbaG z??3;&+V|eh*0t3gml&Fc-iQADGRF3UH!}D``!>tiCh$7g5B`<1uOoRL2Up?!NpK_R zfRo@0;CAo|I12s&;>U(N8CwlL0B&Wh#ir924oC-`2k!yrK}zW3l-Iz!@q8294Q{$4 z2~+_ou_r(dHo^PBSHWTM3$P4!E@x~PxECA&1=x%8*((_A!Hai5%KR&k6zK0_tOPy< zQhPz_^VtU&d=J@w z2C0&-S0vKi1S!BkPol_Skfe4&Qsz834ZaRi0Y8FN@rFAYL(yyoybC-Ia?k{O!52X~ zXC7=(rXQv+z5^+62CGQwevm3X0Imdmkb@UMs_0E{FZdZ)0sjWa!3iuL0G|WLz_&oU z^Xp&{{0%$+Zd(QY$sARbMR)odSOPy!`De=A*!>{hpG-Lq(m~&VWpLw~Vj=mn93{GCq=zOTwZj?2Wj6WUNq1`$$g5Tn6p_eP@4{aOzW_0oi zeSXyF3gJP9FEwuK=)a&wId$p#uFq?hs|=?;%3B4MzirO-q=Pv=XIPT<+&=FKpZ5Oe z{2AW}Xg+Yc3UoIN;`p|q+Pf6JDd_Zz&Sg#(;*=J`)?C{bj&2!_v{U#qMD6VM@X?X*D4smSPm)vkLv_&+s ze75zNuneRm7gxqkDc8~JmQmH>g#m3v^(tB9OXY?>iY+c$czPku!XRB7mkZ&7hU9hQ zv~>81qmxB8>$|69EzqKi%P*`P(Mm(w;2iRI8GfI82`U8InOc_H|1h?n%D}R ze`wtljA@dM5HJw7AcO9Rw&vGHPv+0^N64VDRc)yPgJYp49TN^s>>6FkzcD_QA=B`L}KfQWZ`ZeL;5u#Wj);O21bZ^hx_pn=q z2#qDi4V@q~xh1Pc14=keVJ=u$MZfpxsfU$e3MW-F5nz!$Q+e=Jr6U!_-?1M z)IgGd=#ft;PSmxu$X>jTr*IJ?{D?#7bcys~h{JdW&9`pgK3v8MzQP{dLKnZ`m`Gdf zj7W_KC-4w1U>#rJ2yUSnIF}VUg6A;6Wvt>m4Dkn!qSwtN@B*I26+DT*@c@qJIuoD4 z52?1uLoUpWC$|&4f@VT*(8aGfhy|E_7OZ94p-4MYGb?#LYyjC~}PF&BQx6&iz|7o%n-3R&0?J_7hXv zNQux0=_Rb2{wKv8g!kjUH2buh>>xV{--}lavdf$(c14(vl*t~#b_xrPi=BvzUnK5G zaw{}4{+Gm?i@X_gxOzJ?rGGP#PG*PoLAIq|vU9r7y`+uY^xA6fQd$G+w0^f1ol!ri z`PI4`22l`Hf~qd%%f-;I27cIZgGLnA^>u!w>*oArohmeApBDPlHB0XmXSHmP>8w4Z d&+L{CmMkrlZt2U?bG`3eT>I&GX`Seu{tqSWUvdBd diff --git a/po/id.po b/po/id.po index 7b3c89b..38c9e59 100644 --- a/po/id.po +++ b/po/id.po @@ -1,157 +1,235 @@ # 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 , 2012. +# Andika Triwidada , 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 \n" "Language-Team: Indonesian \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" diff --git a/po/it.gmo b/po/it.gmo index 43343f2d8ca1fd974217eea88a6468b6d98bed15..1500d8f163425e80c84dfd675b711e2df695911f 100644 GIT binary patch delta 2287 zcma)*TWDNG7{|w4nq;F%+N#yHZKlyRrp;M*(`{}ZyL=ZIv;NzeM zXTbNtr@`ysIQSQcAIr5ewgVgk_c2yuhgT;wNEf{WJ_UXXl0#pw@+P^GI$8Q2arz6q3G80WQAkl3*uTrX+1PN2t88?>qjK~4-gvVoLcvQF7!)Kwer(Da>x=DqyP?C3s}{Ipuq< zupSphIx)R*dh}LHp*wG77^>njN95&7c=g8?w}~IK%e*fYaK~Acez}hqaZbrt$(6>i zB%dU%UqB-heMl2pZ$_FjsL4g7vlwu&<1-%nX< zcJmqmR;%KF7(;@tMW`?hDx2gev@5jXo>cL5QLZB#og^Wy-Li3sPeQChSc(g7)q>!j z;*cp+YT^eHUGA7jHb@hys-GGcDINXXk?NT*i>jiHRzauMMB5TC_vWoC84fXt5K@wm zh}*|C6dYI1M6-z%XNIG0s$OnSE*Us2gMh4|R8>?itt!-#^c($>xHvUSu~8nifnq%* zpA>8jH@u=7ZVSrNRRYm@rfkT*!I5-dbiVV=o+Gh_xhNE*@2k*Uz0+A~8q7oXC9$xe zjHRn%MaKCV4Q^N1;z&T$8b+|yA6kKqzI{9 TqKpXN?}xnUx#(7So@W06F--n~ delta 784 zcmXZaKTH#G6u|LEZ8<1%Euf;PcxW$%;KjRZ3-Q$GP$d|xNaA30fxv)+3T;#tJ7_dU z6NVQPog6d~7`hO5Cr1Yo7GhkC#>GJs9E^kC-(6q&?sNb0yZ3&tZ->_oHoo+xUkGua zmH*HsKeurp?xaNa;Q~(JGmLN(hcLfGWB@}f;3YI`E#e?9;|Mmf7q`&CpI8=Yh@BQG zaifC6xP+tl29Mzunh#qUk<)kueO$%>KVXQzv50OvMc_58;yXNtfAA=tvXa7QvDwxT zdCbWn9+W#prtm774p;C9enqnbRyHYU2+jQ}y10mRA}?_de!|1}4acyfD=GXe9_RW2 zp1>vsd|!TWGL8c~sSan*bo3g{PHdq0KxcQd;2AWX-NQ-zh!yO&lLBv`!}U`%Q`}FQ z=pb_>8zFrpeY5|qpa$Xnc$Q{Prjs6W7s>kZOhI;=1Hn{;x@0fePclxS;W(H?9Q;Kj z-#Rz2k?~H7TZ`OT^KrEw3_NpNn`H@Lu4BB_|A{Vp-R^wsoPqu7mbT gt=k1%wa2xT%d3-nqMNx_`aXYi-S4TVbfd5OA2Tjr)Bpeg diff --git a/po/it.po b/po/it.po index 44651d0..aafb355 100644 --- 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 \n" "Language-Team: Italian \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" diff --git a/po/ja.gmo b/po/ja.gmo index 297541aae4be55488c40162e5d974a013a7edaca..d90f8508ddf2beb31bacc6497002530fc120ef54 100644 GIT binary patch delta 835 zcmXxiO=uHA6u|M9ekE3IYyGHS)U7u75mz>w8k)7WD)FGT+GhwDC8lFy28Ccp1;)dpwDMa4(KT8--8f z+ek&^DFcHa_N)-og(}25}Nn~ci=qk#_y;LUPj%C!L^N@kKqx%U&G`0 z1`ps8j$?Ek^RvEOVBld5uVU-^#tv1}m#7!`h9~eZUcu2WksJ6LbGU-KV^iHC!}u5@ zsEgGRBe^9sLN=1@oBlV0qJ-ze9q4n~LT(^8k*pVkrwhJkOsH}& z^HAMa#>ma$>iAf`|XvtR17AL`YQ MjKfO*#mXK30Tak~YybcN delta 730 zcmX}q%}Z2K7{~En=F6y=I=wh**tHj|#%pIrXBcluPADYfjG$ACNbr&an&HIEv@j6~ zgut!jzBVq}2u7`3L>m`w`U7$m?t>sgkiO>%KJc8+aJh5N^E~H%z52Ur^&njRUPLE( zh5SR_B=^s-5HnTM82aepC+x;U?7+}j=>}d$`~OGSg$0b_8isKj9sG_7{DlM3syeEr z+dP=SBrahuZlgW;Ck|mxjbyNZG2FyB?qNS3VHWS!N;zD?QQXHK4A-3$?%@ZTdxp!L zuj7#Pgcsh_OAqh|-on-f$wd$Cbms6HuAwb-3+)6B(02R}?_s1-N@E`H;3j798`}Mw z&Pheg;xy-LmmjvX&ZZN`(H^jZ5AicT#lQF*C(pAvenC5_#%3vnDWtKWCRnAsziS5ESkj3b&zPu*ZFGks*|=*`u1PwvK`)Vvnn7b4#{F`|&6oVe@=L!`EO}1e yU+|Y+FU&ic$5ZLtgmXVVn#jAEsobz%_UGo^#X_a8Sn7N6YU6F_, 2012. -# Jiro Matsuzawa , 2012. +# Jiro Matsuzawa , 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 \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 \n" "Language-Team: Japanese \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 "現在位置が文字列型ではありません" diff --git a/po/json-glib-1.0.pot b/po/json-glib-1.0.pot index 300c53c..51d0141 100644 --- a/po/json-glib-1.0.pot +++ b/po/json-glib-1.0.pot @@ -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 , 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 \n" "Language-Team: LANGUAGE \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 "" diff --git a/po/ko.gmo b/po/ko.gmo index abb4b2f7f214a07e0c6834eaf990077b1630ee2e..e9f26ad1da66141923827041f916899ed716e46e 100644 GIT binary patch delta 2540 zcma)*Yiv|S6vv0QSh^Gzs7M8Dhe|CKchi=#U?~PA)YR}O3cdm#Zg+2CaUb>GTV9E2 zkwt5_Eyddx*u_N_uu{!Zwx%SQsPT(2CWdGXF@k(Cq%(~%ep3A4|J=PT1%)`-xxd+& zIcLr}^PevZTb4Ipo0rwY&|K(?(Ie9sTMNnze9(T$WNaaL11tppwz)Vf{l6NVi}@Yk z!(a%k1zW+#z$;)C_$P=TtDMf*Jn%_y31iJ{qdgG<>7Ya4Qg8sIfWEMK4J^R_Ti|kV z;R9($H6R7{3dq3&;7afWSP6aymV?u?87l=>fgVr+oj9NMWAFqfJ_IT9A3&-=;S9#g zz?~pD=maak&%qVoAK)giB!{uhU=z3j{0b}v9S*F4Wgs$TFM|()2f=0FQE)ZRXQLSW zh_e3VQj=R>vjcN#Myulw( z$>#3$Mnxmrd#>-({06NXVXhm#aFb#A5Bl{v4F`it$QSU3 zR32_L{Na!lxx@TEqk2J2?ZyqPCaeV&gFpAemd#cWy4!SS7SHjiAw!}4TyIpos&1BN z*5)<%HQnIe-HN7o4OQbM#a^>9^Nm8w*ryl@4>n;#y~?+5t8uO7YRDV*sXkL?c9d_j zLk_CJdYFckAR^NEK7YXHRWu)08pxyjws&)XR=u-MQw_u4aDXH8#wO$9)hurY-=-bl zMa4RIxpu38#vzZFw0)B*~PR)$%(ZeCvu7JPZWo&;umz9}IX5>36X|jAJFRQq?en!ExW{9GSi|BdL*3D(&7?=GCai;%Ht&F#~ z%h+Wu`-c9)3!yv~c<9fQX;r(rqU1^l1q!eV~k`xVRLTr`l!Ph={g| zXu{l?bErgobVS52$wUOfj>seZ{J)Phf6iIA=H!vIA*)XNe2Q6WnK+=I%g?%nIUvp; zy?Bp^4~_Q>rY+p2$KlBnW&&wTGdVVzeyDdqBHtG#QfNG4%!ncjcn zSTZJuQ!wZ9ejDd6h@tecQPFWhwk2?^uY~FuYcYFg?{^?f@*?}X%(>1y)9ozSBs#je zIM<0CT)df*CkAOWeRs}to^#GSRQIlWaIMrh zE@(S*v4L*llYtBEW}Xlg*o7xBiedbKyU~^}#10Ig3s0iTbqlL-4C`(3ajI=0cqP~f;UHKy`=4tRCCHOmnL4L!gq?5_%$qq=5M}B@<5UFoigIE* z!Ep*UAk#RBOyd&~w%omf4b6N@!rdKqcdDNz?-(!0pT@9kHM!(n(^0u@>Xv;4qcUW^ zy7=6DEl>I^E%KWsY6~{_8XNpgTEG|f`RaUrIa*Y1;bpKP;M4q}#rdKtgB&OxkTurk zig-lRXNS_!;nd<|O`jgtN0xXm%Y7Y zQySS`8mQGHQ(Ag%S)Y#S6G<(Vc<|3qrq=ZF5oxzq?(w+0J#_G@`s8qGIU#$Tp?vm2zI0X< KPT$L>6~6&dE*_Tv diff --git a/po/ko.po b/po/ko.po index 66256d5..421035c 100644 --- 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 , 2012, 2013. +# Seong-ho Cho , 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 \n" "Language-Team: Korean \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 객체를 예상했지만 최상위 노드는 `%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' 형식입니다" +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 "현재 노드는 '%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' 구성원을 객체에 정의하지 않았습니다." +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 "현재 위치에 문자열 값이 없습니다" diff --git a/po/ky.gmo b/po/ky.gmo index 2cfb7a609182beb71d79ac2c1066eb96738f5265..dea1c40e7349c0f8b16951f9135558851d36a0d5 100644 GIT binary patch delta 29 kcmX@7bWUl*b9MnUT?1oXBO?VvGb=+AZ3BbN-`T@C0ggoor~m)} delta 29 kcmX@7bWUl*b9Mn^T>}$cLo)><11kdqZ3Dy2-`T@C0gd4Zpa1{> diff --git a/po/ky.po b/po/ky.po index a68b472..75f4a91 100644 --- 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 \n" "Language-Team: Kirghiz \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 "Учурдагы позициянын тиби, саптык тип эмес" diff --git a/po/lt.gmo b/po/lt.gmo index 09c9fa1261a296c469a0b68908f185cff9e477c3..9dfcd49b7399247c431c65b5dd18bea2ace4ea32 100644 GIT binary patch delta 2276 zcmZ{jUu;xG6vl_P*mgm>fC?hE1G?p(ciCM^g$-g*XGc0(XO}dKudT`rvl34ko}@3~OKtM5Sy$_yBkWTn(NAH{pKvB?kSF z`%fa~@%x(!tOp;%d>o`i4ugxq&%j5)%iuHM&mbk(zksoA;24Oa*=cYIcm^azKL_LB z4*bZ%RHPY01e{ zQL7=pb{oKm-g_lFUNvlZq43E#NKZn~fn1nH_e0HgBbiZ5C^PKPZZJKA-$H-T$NBUR zjr{QlIvI_Ae$?n~d(rVr4I3%J5?+>5ms-1;7s{@uoXIS&CA`>OYi>n4SmP6_Ea}YM z>lLBt>^;{HX=P~LxZE>E*EeB&TY2qM9(_p^=`T3aaUc<<)Cya0ZCg0SvT`JMD@M6a zn0YMtu4BuRk=(BBY{b>JFnq_}7xsinc*&rzGZ8OJ#|YZby^1JEFGzRh7EdVc8D2Oj zv?v&<`Km-AsC2$Q5FRcHBe?BjLtgTI<0IB4E}eo~l*Qm?=R4`$QOdTo^Em1V8yRVS zNR^8Pp^IEhP{icz=)vKxeBYRs#;A#Dj>;>(nfbA+(80&`G+&wUxMdxb<;qGvfjG9S zC07oHwg`s1$7(N&vO-F7c4chJa~*54tnya4(a=#;?=?4R>AAi}vB_B*tF1V#L9{t6 z7s8o?l259tbojoPa!EF(-6>fxR&cWW&G@jD+F)feJUyIE53Nh3f)zbW<3m;|V`b7j zvmu+_v@Vqiay>h`rSYq(F%x{$^LuT-H7Xscg>iM3j~Xo;uS^r3Np4Ojhi^NmR2C?a z`;9AAsg-cdod%1Rg^5=Agiz)BiT~Z?m4q^gfIWNexk-!0Ioead1TVr>Lc^N%Gh8*! zRi$U@mqKqE-MCP~dUzd5I?Y*DpdJza+R3x+0Vp?2heSQc-wRPkG!^cHS*xaO3#L zu{{4~#rk3zC5swI%}W=7}hj*ZU=e^Lp*W!Hk5LX=72dkS`~U#d=* zicpnuZh8F1@w34f3-;H>RY@!7E+J-_^$u72?v!X7+t(g6o3*uNXVhWBsL@`i0BxX| PQIej;NL4a^)7<|7q&E*Y delta 776 zcmXZa&r1|x7{KwzZO7GJot-r+`z34a6w9{s?(AwX6_J#vm6Qh|I>d^HLbA*Py|f3x zi^4)Lp1K4D6+sYo2?YBOI(0GW5+o!Y>d>Kr`aZM!u+MyEXLsg(p7)tQ`Fd~db60#- zh(pc%i$1y4!hyIO6WNcmID*R<;z#U5Z z+Q>A?M#yfGzS;j~P?YfhXqGysy<~>$CRrz%Daal@5KKj=GwOIBGEQLwqF@qH@QR4n zJXhLDeV4?a3;ikmWbJ(Xy8Rsw?IkB?7o8#d)tR#ktt<9qqPq4XF&VQaIck3-m%Vb) zREnj6Y+yoT3Z`UNQaxT!ESX}^pAE{PsT54vzD*B)kOWA, 2012. +# Aurimas Černius , 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 \n" -"Language-Team: Lithuanian \n" +"Language-Team: Lietuvių \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ą" diff --git a/po/lv.gmo b/po/lv.gmo index a9de458300a5a6dedaf775d724bbc98fb180b994..bd58fe4eed86160ad0984e98dcabbb5e30b844e8 100644 GIT binary patch delta 2211 zcmZ{jU2GIp6vr=Z`RGz8lp=_&T&fF{cI$2_rIc#IS4{?UMcHO9mU4}%{Vcrf9?*!aYY55}mOJ}X9JhzU_1)CYVpJ{Thp{?F_OEry$!`Q49m z&pqed|NPW>sk?Nut?6BcmcrYC_l*^dJr3S(zz6N;M#i>*zku7pJ5_cxRmLOWM$DfE z9|S#c415dR34R9-ga3ed*uYB0+Q0+g4#rCCM0LUg>7X+BD0ms9fWE5oCipPM|AIZ> zwpA5JqaX$LBFMpca3A;~H~@YNX26xJ8S4i3gM**|TX8=70G(b;d<;_LKY&z$?Q0lI zgD-*P;5^t5ehKac{{l~fyP6pr2LtdJ7=cMJk-!?529YUy0c;10;BN2&IE3@rXXva% zx&H(^G5))Su}8qo>ne^8fL$2B3{r_-tIl5rk7N8b_!zi;eWlb-fG8512Oj`SAO-Rs zNTvS*dE zv67Koy&;3wH(}nm#U3eSc=X^HS3L{M(}a@A%}XS`-I-&KY%7% z=z~T&p}VAOA#G5jzXlp)_*3JynZ8Lq%;|NM@)fu8zLwt1FfS!_;+{3X;CNW$(=zYS zo_p5|Lebv)uAfoT(7N%tHnty_*uN`veV3-0q)ks)Y&e~aL#ny8eAgA8otK`&{eqFc z7e}55zi$}XGCFqR7#sDKD-3_?*{8?jAaq~Y+L+v6JDw3_&vijqjt(=8W1FU>(uP~J zLJ7+_itkEVVWIKt_IR@`jNonngDHofnjB3HamTZK+p)vjjqhYmRzr3jcM4lQ;UXf% z&&a%O31xFJO&WR{GA}woxwb3<4R+RSLRYflPd~v}RT*%^_qkOYmGu72zE=;`25rrr3V?!E&@-qro_&UqlYHPYl4fys^%yIR6HC?bhjNcxu{%lG}6;XDD=Wt63?$HNaaT5 z&~MosewuiHS50lwak*4H8SB?+GQEe9zJ?)h2-xxm$Y zPDrYf?EyZX7iY!E-1rees+Qc(D{B`YY`&d!ugw*&Gqq5<+8ez+8CtD6Sq)$l4 z_*s0A@8!BCZ=Ji+%kwxOC>G;A0Uf8JaxQ#x{i!n(QCUriz>W}hEgLGr64@=&XB5^2 b8YmqsGpxxHp;w%Wy2}9f<{Na51BnL%= zMtXQu5RX0RK?M!o#eYDgc&Q?Iu_q6D@K8kjzIBJZ{mf2gcizm~C!?SDw7>SJmxZ=F zi9Z++Us7CXHyx23cnio)GiB^<+7*pF*i#2q!V2Ddt#&=l3Us%PUha~V4&fqgVg}?CtPI>6e#~FgX73|S S`765aU+Z4&iyZwhF#8V@CR?=t diff --git a/po/lv.po b/po/lv.po index 9fc0f47..34d9c5c 100644 --- 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 , 2012, 2013. +# Rūdolfs Mazurs , 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 \n" "Language-Team: Latvian \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" diff --git a/po/ml.gmo b/po/ml.gmo index 9e1088b041d83b4a7e7dc44fe270905b0effa5f6..55889fc8958cd9958f7431b2d61d82768817cf63 100644 GIT binary patch delta 29 kcmZ3WyFhn?AcugNu7RNBMUHwt0B?>4\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 "അപ്പോഴത്തെ സ്ഥാനത്ത് ഒരു വാചകം അല്ല" diff --git a/po/nb.gmo b/po/nb.gmo index 57a0710070bade6645705175b8abc433042f0a0c..69d2ca851ca4f2c4da12527a446d8399bea97b61 100644 GIT binary patch delta 783 zcmY+>J7^R^9LMq5eW{0v zI!GU)KhdM~ZG#``7xvyWf5WYa!=sh0A?`UGz-uMLS6iPr3<;y&3`UOuj?rBc~ zFQAm!|9jf@i@u3^-MRmo(G=3LBhKBlf;{!({GwdcQ04}0NL1o^8f$< delta 469 zcmX}ou}i~16vy$`G-ELBY|@F@qEo!R2reTtpq6 zVsUkKads-&f5Ayy{9ctl_~mnVB=_#}INPhHgPMIMRFy1}dooA-91rRY=kXj9yu%e7 zU<1Ya`)&c-OxLl72iU?BjPVwId`E>&UL+JrC1wz@aD>})6LNe8T|0(HzWkP2W^xmw~xi@81{PWd4I5ZcK, 2011-2013. +# Kjartan Maraas , 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 \n" "Language-Team: Kjartan Maraas \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 index 0000000000000000000000000000000000000000..438c0d2ef40629583ba5cfaa6531d624346b08da GIT binary patch literal 5659 zcmb_fO^h5z6)r;(VE7A32oM4(44d)V>GACPe{6@J^{%sF*Iw3ZV-N^xx@%_2baypX z)$6QpNE~ts96*97NV&0y9|@n3I1oHYa70MlkO>D)a6w!^qvVj{^np{lFgpp8{?JN$)=c z$^Iwa$ygWoRUoZ@0XPqQ1$YGbZ{RAh{Vv8X088K^@OQu&V5@~OU>8VsUIjh^ya7A_ z{0{IW@K-brU;hh8>mGh@*yj}RFy2$(LEuZk4+DP>Bzs>4UIDWAF?I&^9qpk`v>qe@R0|@{52r?BL&jD9|1}K zKLD42`#=J+{}~|7djUv#{Ra3j@HHUCKM2mB%M1n@R+1^6f?uL5J>1>i4% zYd~_|mjPb@ejfNU;5_g@K#J!f7)N&Yfgb~Y7f5>i0!ViJ6}S)hC~o2z*+3W6@)y}m z*Sm4g;sy=KwVrF_AL0n8<`f%Wfa1*zovey+ZZZ3)~ z`RPgAt>!Cui)V@_ai6aD1Yn;8QXGk6ly`JdzJPuVDe5nnjNsZHr&}7M4Ubc8RX(Io ztzAR9kU56CX(s}urvdt<>UuF{e<7<#6gHp5^`z$|y zMHnS=#}gGhrE_7nxXc~>f3A?Rvt00JFI~LAb^jV(`E}(+7!t8dx46zF&t%q@hAnzS zYi(nlWg<^fg$cSKx!xZww&;bD!aKx1#rvh>ZX~(U+VNZ`k}J#gfV-_i@~_X>Hd|U= zS!7GvWWoiF$Yr*}8Vll7Sj*cpaT@|0w`Eai<7C2?^8_XdQiIz<#M0u^rbtyXG2g0T zE?jA3GbD@=TU=r7b3Bm)mBY~x(4IL6W$N_Fo8BE zo{F%tSriz=bCH281`JD+SeS&10eQ4D@h-cd12x2^P^su+cW{AN6PLzdUtS>3C`#;N zUeR+0pG2DK>#!Z#1^TTC&*s_(Y|TjL)BwybU4dL$Z`e4{)!IIBB9LcS*f*vW+0EcK z7#v70u(xLxOvQ7ZRss?9xgnDdd()EMaCPkvo@i-(T8wlG*P>W>eo=bu*sfVX^C$URG4*-rJI3mtPYSusxH2fR+!96vPTQg6}BuR^0$=P$%#l{JIAvf>-ZB zTIJijimRyWeFW{O?D&Ka93!3HPzoyT{u#@oXe85OKSz@AOdFIxpD(^>b=c*+CI?vJ zjNo@pwCQ=ia0bPyTqI7iD^&L2!W|{_n$>wUOjSRk9EHUJY?y=sp-Y3R*AQ9oq>5867pdwhBDfa zBJ1(Vbbi2TCvzQlWI5YR>v0{oR+m>7CtjQDbXyA=mgi6f+1uj|lsH_ZLglA@t;Df& z)>r+>JW_ceO|(eI0M3;jKiOBVwU(Afq|p+Bj`KM${Hr}Xf0~EKvj=kiG@qM2-MSi` zm$@{->MP1PAyVG$oaoG9XhoEHJSs#I;drMAHoiUsq6)y8yE_uH_+}dN6#W;C z&H4aVsQ_w&cpy$_78`{Z>qfConaRW|I-Y%Gb)_gZkmH+ZU6FoZy_biEFr$bD`g3%d zwdeRX{SBB8w$Qoq9VQpZH;X2lS|cJ89mhWF zb|eE*yu_KHZooy}=#p}L;!3iI+Rf@GjBrCDO!#2}JEqdg%3-M>q`gDkiV0I}WGhWR z#ya%Bcg#qiyX3OUvwBBG0mGqZ$nwsVNRYoojlZizG&iAS>=H8Z6%S%Oaj9OBbICFB z9mo!*Ha_0H4(eAekI!H#Po9T9X*tDiA{!Z_&08a^_Sst`t@amNp&CZz$QzOPjDe>! zq0r${vrQ!)=^n}jooaRP1bwcVSbGU^yGMaMZP&^W3snr(?j>5+`8DNn;)PF?@bk9H z-igdTWG&`aTodj_6}+nJ4He&~D+)9$@$IKSvpTG)6!<+KiUy8JDvT9pDOsx$GgUd* z#x9C9^PA~a_EKI}U2!-mUVlzC9cA4fXZT@1eXvov)W%lD_bzQRk#|R(hM(GKkgFIZ HqQm|VKhEyL literal 0 HcmV?d00001 diff --git a/po/oc.po b/po/oc.po new file mode 100644 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 , 2015. +# Cédric Valmary (Tot en òc) , 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) \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" diff --git a/po/or.gmo b/po/or.gmo index b65e2faede7805c930743f6421e1c71e5ed055e6..e2fa687c92d920873b03d5c5804dbe274f3fadf2 100644 GIT binary patch delta 29 kcmaE-^-gQUb9MnUT?1oXBO?VvGb=+AZ3BbN-`UG~0hc)m8~^|S delta 29 kcmaE-^-gQUb9Mn^T>}$cLo)><11kdqZ3Dy2-`UG~0hZMX6aWAK diff --git a/po/or.po b/po/or.po index 257b416..bacdf4a 100644 --- 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 \n" "Language-Team: Oriya \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 "ପ୍ରଚଳିତ ଅବସ୍ଥାନ କୌଣସି ବାକ୍ୟଖଣ୍ଡ ପ୍ରକାର ଧାରଣ କରିନଥାଏ" diff --git a/po/pa.gmo b/po/pa.gmo index c541c805ccdc590c58395ead2e25f52c01bb3799..f342e49db9b0c7c1947cfabad2eef470915185e7 100644 GIT binary patch delta 29 kcmX@7dQNqNAcugNu7RNBMUJ&x0C+|RTL1t6 delta 29 kcmX@7dQNqNAcuglu7QcJp_zh_ft7)Qwt?YhMUJ&x0C(aCQvd(} diff --git a/po/pa.po b/po/pa.po index 70e9d61..06d491d 100644 --- 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 \n" "Language-Team: Punjabi/Panjabi \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 "ਮੌਜੂਦਾ ਸਥਿਤੀ ਸਤਰ ਕਿਸਮ ਨਹੀਂ ਰੱਖਦਾ ਹੈ" diff --git a/po/pl.gmo b/po/pl.gmo index 8273c3855b4da87de8a17f426b0f4a9b9644ad42..8544be339997a6280d2548b50043fc440de3cc8e 100644 GIT binary patch literal 5483 zcmbVPO^h5z6)r=}&qDZ#`O6C$7OeBzy5E7h_6>{bP$_c@N?^XZIj`2EiTGR7Q zch!6K-mCAudUN}s2Y$$KdAJ|L{pudZ7J&bFAHHzC`F_S80sbBM1n|ElKK4NIJP-UN z-hTu5Ffalx0ly180Q@s>4)|{%KJ3_D#vTGb1^fc=V)+~aX`NSqUjqIVNcOy5;%(sP z@%$g)Vc;VlDD<2Ml3iZ|a$p9068IC~G2owoE#Te{GByqTGVnN106z}=G4KfRmq4=n zFF^ADi4QT>1U?TW`R@T|fxiVF1-=bj22OpLu}i=dxCk5oCxH_a7y~weo!6L1-L3b+NN zI1hoJ2L1s^{=Eq#e;>pb#qn_<#b+K!>wXJJ^IiisfCC`y+uOi>zy=m4yUzeAzFi=V z{{l$%{S8QQdKhG&_*?)!1N=6S{C*us^Zp8a7Pt>2I0^hZumyareEvO<^zOx?6ra<; zi@>bJH-NNH`=FG@p9jtWe*~Ncz5&FC{S#jl|GfwT?WYIa1N;nb;@KhGbio{Vk#BT; z1UKmc4H!b^xJL1z*nmndws5t+U~YX84{5Jyf6DY>*e3QkZjSr2xQW|jpNAWvt*_7F z7hH2W11i+lUi<>p+@8_PkJ1;eFXDa_H~C0;M;GM_=*N(v?xOu?lgS*XTNsbvNUcrPi&x5>-6_jQcETDW-_1;Ux7AR7)6V* zXZW+%g;651JW#$>Iua)1GP3mjVk~`|aKXQF_3|aI+Z%Y~eP!1%BzzlYTt|}kWUnm^ zTXc?A*7~~F6HyQN^qb;*s^mPa~}TqRtuaht`Gzc86h zvGYq87uk7jdcqbKQOJ@8t3B{TktBR-(w~9?%ab&YwXrf_OHlxq1ew8;Soku*t4$HA zVB~(HI+3uck@b);Mr2$;_C+4ZH5DPyP%t%l2*y%l}Kth-4j zq4MQDhOMC}!OB!}Uq_qLRQp^x%-p^N!U~F&?8P?Q@v4`?u(ssaR?mAUu%$j?8n9&% zt|5dn;KlmbWFx_q+Og%5IVELzlJ(j;^@2Re&u8R?@qq5@?zTg-IEP%Ix|RhX}*bphTl=AVxxo9w+kbEE0~Is;#L8vwiriFW&uHG0Uh{-Edz`nPnmaao zxH*e?7e!*dRU@J#6jmD?q)J=E&zZqihtJ3K5E#)p-RYq)HE{Yp4UwpmijMSFrRYIG zhbmd;^UjGlJS{dAj@m{Xj%LpBIGk8sT3#H5sMTmroYn9)!tzMfIc~B4GjS+XbkY?@ zoG}Zo#E<5YnQPK`i&XP*h|KX5ZDl7`!qkY+JC7a4VI0NoF*jo`$zOWOy{9?NX~?u7Gdq29;yG_c%RpJLa=-F? zG;&s_)L*y()Rj>~)E?d#Yz3&{fuExs=AxH%MWn=dTXe@PZTm{XVZbRc9GhI) zzA*W_oS%zWC0XCi4yeI`y*Qb0hIBOVXB)$tz7nqCY8%mY2K??<{T=;QW$ey%UE}pt zDCWuVhVDnID@JXI_H)@yH>hqX*|lkrfjP=|cX&etk&=8v22s|lDuC>>LaT>22jAgvd#jW3u8#WX@ian00SDb`kI&&% zL4;(m#bY#fl8xS>(aZ6=ok3SFx*GJP`Te5vbL`l5#7T;(UJhqQ3~#xp-ObuF#OERd zHwIfiSyXg_E&|iEmwjse5cICm78_q%>qN`*3G|_P<#td<2zH@^$~z*+1@;%`_h6gn zg_6M*bHb6xvG1jdl!s}X2pno`mY=(PiM89gls5{AzN06t7U;wdw&N)C*Re8^Xm|_u zBVS^T<($VUJE!x$4t10jgtS@M)s$B_tw@s`-l({rK}o*~RgsO$`O z3&i98_57bKlDUqSGn-RU@z-^q+;AoptgTlYm)JSGDi>rsfwIC8 zUHip8`xM7r$cnCJu=PmA{%@_-m@s%XM+q zRhdZ3SCpev9-E&LEk?#8YsyS;Gp`cwk?~`PMBT5Acb!Broc|hSf@JU7bS9O)pe~IO S9dCF<%839iE8KUT=l=jxTgylQ delta 1003 zcmXZa&r6g+7{KwzbysUm_lH)dCU0*prS9UpYObsXm09`QiURZW>MpUltm*5I>>^Y~ zP~c%Oh%RA4UFzbkg9K%NKu`yZqDur3p+Se}(06us*k?cU&dfXW%*^|vVZCB9}|z<^ieFb<&J$sFp1SMu#|v4Q7bs86J-M5G)qpiV4>dLs|9 z6W^gu(6>wEICfz>>&p_AE?mbLx=M2s#8E$|QBU*)^+|oiGw3hNIf8nJtJs9!F@%*q z5q*o*gf2S>nuLSMCd$4!|9l}i;l1o#>U-Kl1c(ZP^|E&gvRnUAxD_E^sU-FiT&Hjl z*}_d^3!jMi^K}geoBfs~{WH`x_o({oj;nr8ox15crM`I_wNP|V#ft5QS}m2u!e+=Zr7vwewsHERJ)N>MGlm%&H;pSvXU52+l9OZ3#*Nv_sd+o2 zs(t+)Gt}Uis>4@PdYuvW{4B%sE$WNUoA2ND4XX)%IREs>UsGt-o9eZHR1F8F)Q3Q; zTQ8z61@}{7zF6>BuCf?R=PJL0dJJ7n0p3PbQI^a9BKHsypS~ njLlYR)K+;z?!|)@adp4qM1_9Ym^bF%JlJ@dP8z-EhX&<8LdKo~ diff --git a/po/pl.po b/po/pl.po index 4570f89..5dd6710 100644 --- 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 , 2011-2013. -# Aviary.pl , 2011-2013. +# Piotr Drąg , 2011-2015. +# 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 \n" "Language-Team: Polish \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" diff --git a/po/pt.gmo b/po/pt.gmo index 7e92b46938b37c6836759c07351d2ec7c2bad132..ba2a479b57807b7abe59b33fb11c1f1f6fe28f1a 100644 GIT binary patch literal 5238 zcmb7HO^h5z6)uvP!19~$7eYcR1H)!*cY9~oUfW|YiLqzRBJYnjYbz)qsOhemZL7Ph zsj6Ok_X0>Dg$taJqKJ#-LvSRY3=&cO4K3O^FxtLpCA-FR(pYkI!v zu6nQDd-c6nZ{B+RksmW$0q&=8fA2kv%>)1T5WaA|{V-!s0{;Sh2Ke6!pL)bUp9MaK z_g@2k8khqYfv*6+0Q^0$3w#HN4?BK{vB!a@fzJXjRnIw)*7+{*^T3|~$(~WLY2=K}GdOZt3vg@lr4%`Bs0KNu14*VUk13dI7V^hGBz&W4*egya`@F?)7K(hOf zK=S{Y_c1mN{5p{2e+Zlb{t`F~{0DFeIQf3YmVqU(2mB4N4V;+37;qX$e!c|!IB*;I z9PmfLQ@~#U|B9IZ9rzhM|LKE_eGd2zkmR5KkdH?XNb*;KH2!Vi8t^8N{QMX2B=E?G z8G~so0zLsufi(a7)$=Xj(|G(;m zqp)un z6(G%jv%-gmjg3`lo&GE_jg+A`?U+7%722dXiWXz%_{A$i zCnC2zP9mGAT<9$>b4%aX3mI9%1^>#6E6ZHc;43`9%!A&6|Y4B=Oq)9w>-z39a z*iy@8NN6p#cmmn$JeGqbN1&l#vV9oF)bfKw8_S~&p%D?O-RjMtkqGO4k|s?ed5>YM zDN3-ilsr=TrquO5*A6qcFR`$KVkNV}ZtZxLl`yO?`Q`P6;1sqrLQG?}B+>ywC}Zx| z$0lnDt~8Dt? zQB8K`sEXMz*_1iIytWu3u@oI2!D1X-kvP#*-sQ7lXJ%qeQjrdp%rJ?AFO@?Rtg9~H zu(s$PJJv6U+ew;=aG0x1hDr~QA`|UxcS*ajGs=eJ*F&6yUxbc)Sc;(x)}_dx0Unpb za`c9IaM3O=?8MUIQg0l;PB=YrULhVi3`8Dxxdl0n6{$$_Gp=gl0GfC8e>{&I8Au)U z=s>^;)8(i7iJe$YOD)o10o#w0IxpO#nV&hs{m=R5a{lZ*?@XPUcqzCjbE$nWE`p3z zWcW;Yx)aXrZg99zd?2Y%zPq`hG11qFMspKw$V6k~_clm02b&D?8F9aP(nMO~oaE?2 zsK7Pd&_JYCWX&o&8zSn@kh0Ahbb2{6*yRjahDJ!lf+nCn0#imebfU&hgER#K!OP60 zIgU1W=3&dJL&B0oRvM);p_S{Ab~~hs(d(n1qcUR!G)o(9DafPVs=8xxYs6~LDo1&S zBLnB*=nmH++2*5LsPWt;g`#@WLc4VS%e}?5m8xah5j~%&Av;g~k{o-}YDX>TyNOP+ zq@;xBtcQMS^tyt9Xfk{o1&ePgc8(fMYM8`W0nWwI4Jt3}g6n$ROgb(7TXJ%AJ4Ym` z?}7a|g0^AoVOYDWlZ+U^aq^FDxK_%UQwyv8Rid-FT4L8KP5UlAKur+UBve7v*+w~; z6Ny-29DJ*~Ef7g&jdSdRz?S$8mc~+)HpOHN@VIZe_HDOJ2{zyUgA(krJFsFAq5!!Ac)QqIT^dGF1TJf1SgvcHE*!;;2J1 zA@p<>f|>&53rs~2s{p>60~E#wRioPch>C5M}U`hzk# oKG5ot-1ITK8!-XS<1db>3eY|JFhsp6Q&*ff#iHjYWXl)?m1l$kz!38MBU%@T#E8Gj~{q9EnFoyfHPy~Df zcEIN_4&T55_zQ}PWdd%3B`C)4!6e>KUgJVU_@_28)aYh*t>#lGGW=XK(&Vns!%>XS z!-H@I_P|KcE%6`}r??qiv<>LZ=qLnfK}X)Gf34x&1nZr%6z9~29!B4Yj(wdo1*BE{ zq2W{r;&C!=hd54xM4g6{a2h@l5~^JbP(bHfB5^AhFNh!IS3GCYodt>~Dca(qe zTD(%f!1wvs@?+nHbzJg~@gM%Sx&hu0D2B2rsW+AGrx__HNl7WquLn9tF_=xI`>2%8 zNqrcUB>yvV9I8Ahd8uADRML$kVFVv5SY1)`m@ zCDXy8rk7+fQ(?2ZUNrTxVewdFsc}uMdYqwm;kdz6ZbkW->w&U^o_5p@(fISc**SB4ta diff --git a/po/pt.po b/po/pt.po index df1a77e..3dc6818 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,156 +1,237 @@ # json-glib's Portuguese translation. -# Copyright © 2012, 2013 json-glib +# Copyright © 2012, 2013, 2014 json-glib # This file is distributed under the same license as the json-glib package. -# Duarte Loreto , 2012, 2013. +# Duarte Loreto , 2012, 2013, 2014. # +# Pedro Albuquerque , 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 \n" -"Language-Team: Portuguese \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 \n" +"Language-Team: Português \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 "Só 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" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 1d27082d95c78dc7a231629e2c641f007ca55def..4698411002aef9b7d4019d00249c208c2325328e 100644 GIT binary patch delta 2262 zcmaKrTWB0r7{^a;CfTI9s;#v(C($*gb+)^?CqyJ*7PhoW%%xO_$jQvvWXjH*^~~(n z6lC#=NUaY;MN|~^p}vSh5cI9GJ_v#q(Fb3u^-U;<_#mR9|8HipO)KqTXMbnrobNl| z<$u09_~KCIa!=!VhGF12fam!-#vTH%*5eQ3rv}FMgIB;l@b8!h8l(3aup8gkz`H;f z%z-a~_k-Vp)8L;Ver&Xfu^w;=>}RaPj>R8bkPdnVybpW}q<}t;c^SM1?|*@Z!Tq;I zj)EpQBc0~`e}ff=x=nXw^o0vrbg*opJm>zF)<4Of_uT2K}zsFkXrQ( zNcLC2N(z&IF`)=kozX#yAhlo%q|Dz2$?y_*1pFDK412m5n*k?5>TwC21V09cz+d9; zy)ed<&4U!k6W}a(wj1>)gRkR-W+)?#_tBUV%;5bskV^X{m<2m}8G9I91rLGeK}zHz z$iZL1JHam0n_4gkQqLE_I*`^#Ylo=+G;n@6sLV9l@K6R+MieI$9A!+=Lr5*D1&CP=HYerHCNIPy#}w?C~DF%4pJqUXxvc2MX|b#6nCGU8VG)D%XckD zrHjNSEV2Da`$YZF3a%K%cTLE+wYWmU_I8vURV&!)SSm+)t~E8T#V(;HHOF6m}t~61t6#EZSKl&2@ delta 780 zcmXZa&ubGw6u|M9m>-%n+imKPT3gvdf`+Y5y$Bw9u!sjK#qaFqk++|joiOueX6GxP2U{D()Jq`- zI=PKy@>_xjaX%??5Fg-qT)+^&;1JroMEcRk5>BF-tBHqk35RhNi@1&sZsKu~mRKo~ z5ni0b3eI7GukjeJqggnc7CD8NP~j4KxQ0G%VGYX}iomNlg>P{T|KbrG&Ble#U?$lT znWr(x!1FyKm+?K;aR*HSK`tJ@iBo7DwsdMss3su!7$^ z{ahFGv%ZYcID<_*fuGC(Zlc*~e<5}P%|cJm>}VCo@eiKHlU7{dV|3`RU;+=3CU%qE zBnKhAB>U$4J3&#x|D(G!_q3lhyV*-Je{`oH`^<9Q`PDP5(=U`eM4IpQXq3&-ARG%Pi`8w$Xl, 2012. +# Enrico Nicoletto , 2013. +# Rafael Ferreira , 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 \n" "Language-Team: Brazilian Portuguese \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 index 0000000000000000000000000000000000000000..6d028b457dd1e24c958fb56812f1a29368139831 GIT binary patch literal 5484 zcmbVQU2Gjk6`n#v;qu?o0-?|$#c`cvukUsKuj3Y)TnD4rv1}(QgbL>F&b^+ncV{&- z>(o{sf`U*br1An%N(%y>ctSk#SQHEVSU@}=q>A>r4?a?C!N4Crwyo{q63| zoH;+=Idg8_eE7j1Gh7kw$8mq}0mf#4@4OFxaQ*%LjO_=$1$+Yd-x42xFub1ueiGlm z3H&TD1I__o0v-hZ3D^Pt2Z(>{*gnP{2A&3f5qP0|&w#YgcY$95z6Kvp~}8>p%`%2ObCh1b7Vi2Cxm>_Yh+fz>~leKmq(X@FwsG@K-?6`!7JU z|A`MW)&f2cr1dWYr+}{mj{^S%oCl77h_MA=0qg=dfn&f%17pAzknDU8_$lB9@G0OA zfv14K1-9Yqe*$UVlOJWQ3G4#NP6s4;KL^tK-vi0szX6wk?*dN)7e2<=SAj19VFLRj zko@^qAg%v5kk;>q(d5TTAlbD55%m5tkn~i*bHE>z z_y(|x_eVj7L%=IQ^5ge`6vs^<#p5mDGVn2wfaYHX9svFZNPhiui4Q#z-lu_!_^yFV zz}JDZz(-&V+5HXRQQ(h&vh+;{F_NvYG6qi~J1wF{G%!U^0SgJDhH5j5a(@wN=@GJ~eg? z>0D+Q;(e9My~cB4Xz3ltuNmcN+-YuIq6_Ec50$M~S^6@T&_BKiX)-89o3XF(^OuED zB6B=Zu~Rw|W}VB-(cc$x89U1b|Jw4!1+IHn@yf3$w~8SVyL6rFO!A=|_M~B5Z)l}$ ztcOF9C8@#$os(Sej|S^{p``E*u}65XaNMm*ZnSnh(~0EDa^2@{J(v93V|JX)&RyuT zS#5^G1&zpMw#jM>;#646$H(Gv2yomMd9IC<37g9jm?TIIZgUY!i%)AJRmsSFs|J~H zg^~4;Fh;C%g|#p6MD|q%M?=8)*dZuWt?w&i9gkOqfk&kAyVrwO!mW2&X;T%;y9_%+ zUV@f|39Io&Ys2fMID83zKlsCyzEq-en6qP(!QhKY_5F37L9aH^}+1I<;bO_nvH#3uI&*g0(o|YePx>>yBRzV z1_zQ0?CqHaQ}JA-l|Tf2Zpfs`?pe}%uC5%y6D_Szi&dS%wI~*zUzA=uwyPJ=JW77j z9Ev7>u?U2`pB1IK_qQb2<=2D+93M+SK+6Y43Sxy@h3_cxR&9Vas1tY&e!T-Ff>-ZD zTIt)niYuw>eFW{O?D&Ka93!3HQwl2WficUYXjP{90gfc$Lv2w0e7^Xi)nu2liX32x zGlK7(Xxr!c!Wk4RbCEd7E>qcq3wM;zt5#>xAXUAHaugN^uwfDkgf0xKW|NI3`V1gB z)k8Vim!r~W1GOeIeraj0iNw-$d_;3ebXnp=(^-et!uU{F1hugwsbEL*cA%2z*))Q=7pgGG3Z*VW1fg)HAu!NfEo5T5MzS;!1Ru2!rjS zb5OR!r&{e3QR`?lHO1Q}I_+bJTevVWT9Rvu)Edn@9<@$H?bEz{y3;;+xHW}&7ocaf zVnk+B;k4=Sb0SkR22P~q>T%HCJ7&}2=_d<7!cw6l|%MJ2)I0^Ky%RJeAGNwD~i< z#XFpyTl~cr@i5kIwfNKcdhj3*FK6K9i3!YXW9HPv^mOC7=)BCN2~NALj1wZ|t>(#Q z8$%U0mfbq_Kt8_P+axWJ4yoX`ex1duDv{>4MyZ;SAOK;8K*O~4ijt;C3$?qis-{!7 z0@?R8*Tx3YFc(^E@3c~tTkKkGC$}|QU9)Q=-*R0f2}TYSDlp{_IvuoLTdyMA!i@S6 zI+BXKK>t+GA)%=E@+T@7=G!m&PUXiG=)HDrB+zt0Vv(s7pw+vwsmu^ zyHxgPQfy#i8G%r0n(QpvGkmSv2U;6rEk}A3l=uQVu;pApb443atw!61mTXxLu`{}} z?dvn?OApqZ^F0=pp%J2Xjbe_Pf)g%=q7TO#id0U{v8EBEp z9iN?%y+T0)?{bQ;ukSwTsow^XXw>T`4Om8@Cg%rNTp$7y2XK^9s|RJE=_uD|>I8*} zh>w_uaq9hwk(yozvY8a_iMVcq2E86f`bUbgDZ=7XDa;J=-+C zjdWNE z6VaO8KBXQfvQgUc7};2GO+5pp#C@#^`FuZXYJ>2D%vS}^`h*nmz8wmx5;$8D8Q=OP z{Q|~s7Yp)$vUT;?i#W~yLtqGyuS|Q3ocFcd^EfyQo+>Hee|!3*siaV5>@5bYjHQXG zhD5faK16bcj`_=0K!acPgFW-B-YwoM5;(pFR~ wkXE1`9|NbbxBvhE literal 0 HcmV?d00001 diff --git a/po/ro.po b/po/ro.po new file mode 100644 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 , 2015. +# Daniel Șerbănescu , 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 \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" diff --git a/po/ru.gmo b/po/ru.gmo index e41b724d257a3381fe7d69acefc972af31bac207..aec3d255c5944626a688615e9eefdb6f2156b121 100644 GIT binary patch delta 2701 zcma)+ZERCj7{?FW5Gb%0KnDo!@KOP1>$;5rWxhmVWCrF$K#W7VYwyOzwzs*x1HqVf zEegrzFkFp@C^6v!k!WCBrCaGHiyw_S*JvUkA)5FN5@Y;CFvkCLZrhC)qbEK6oww&X z&)c~-R^DoeU!Pa@Aw%<^FF`*tjj<=enQ}NGd2(004`%J&bH%b;Z0V{AnJBh*LSU3lg zH@Ija@(=ccl>2KSd0d5xB({NMU>}J3W>6z*?J>$fH8><2c}ZrqqFBhqr0^M(?C{>&>#xigrUaO|9z?hv(5AbLeVWpoH%* z4)Nvg825PgsiEj{-UU5j-B7s}!7!{?O*7i#yOfXylhmo6vHdYU;^_`)ogR76BvE)D za}F75Oz$z^tar-60|h;WLH@9G7lAYPsk~b|pho!4?X6zcZs_~ffa$RYW~3^cJarA8 z`g-nb^7|TV>*}m!GZ$7i(xT7Def9qOhT6J@q1Kr#)8ZRlyFFXfh-xUNZuoh-t_C%e z`@CztjguuKaw5&`lo%ElL{^O1y>>qrmoOQ%6Lz1SwEOQYvHPAMvy+qOxqSrUBO;#t zZ%I3WqnE^(xJVb# z;b;;^Q}REF&6GW0CyRI6ebyJV&h7d1-q75~U@?yC$&bq-4Sk3j7o)i8a^8*{#v{@& zoEpPcM#jZzckNwwR=h7h7N0P278WH)1QuuHxj`wOArqWZlXfZ<5yK(zH3f_# zA2Rodo8!!I(W+4h$fr1zn6qG-b!ATVCR|}3=k`&ErxE%K9G7NAhTF$*$wewFk>dyx zs*8@?VHHkKocB&-t-Td1tn}Q}#uJ4^;YO+lN-C8nY6J?7(kis3;gt;Qk$m9NOq{Z6 z%BzRk%lk{!leh`@iLBi(E;e}6RIdo=WcK%!ns>%3FVQE-q;Ubpk9(a^P z9tuf%7xRpDwdzD%oXKa4f<8*VBljqR1hkD(`C&#iiD=xD#wnkK{I_Gu6|xRsI%B;9P-S#{A5zD16^A-9B D=xMQI delta 808 zcmX}q!E4iS6u|Mx~*o=prcljwA~;$*+D1D6y`x!hGIv1&`qbEh|@#W zfd@C};fF^>P;elqP%j>Y{tecAiQlmxQj=&v zB+rARIE+g;g3s_EZlK;c6cic5DYUVU4mQ!nUzkIylOnK)r||_I!!6v8heO+imoe?H zi9Fy!Z~U@LD3HB1iBZma&Of(Ap(3 zjtXb-BUad7Mx!i-kMSIK#Y8S(3D05^&tRXi?Pa{k{rk45Zjl-8YgoijNNc4)zx5RR zNgX>#mJ%8vJtW^v|JyN)KuSx0(F3T@34B%x0PQxQH)l4KvrIE4naf=RT3 zUqq^(Ww|$zWP72Pf3m;G$aUTvel?Qe!PN>sNO8r1}|N zF>+ZupLIq|*Y<2XV>@a!k~G|`^)xZ0-t{auZuUO! IQ1_GdfBqzFEdT%j diff --git a/po/ru.po b/po/ru.po index 652323b..25fee7f 100644 --- 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 \n" "Language-Team: русский \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 "В текущей позиции не содержится строковое значение" diff --git a/po/sk.gmo b/po/sk.gmo index 62371ece16c06bb1990f317f0dee06d3362750a8..fa722d03afbcca14c0233770de5e520e84f4d7f8 100644 GIT binary patch delta 2380 zcmaizU2GIp6vr=Zv2^(;AMz>KTXeySv+lNK3rj@=si^{OC}4>Yb9d&pJKfot$;|BH zZekWAiTVH}jwV8gW=%-c1c|8+hNOvRXnZgxhUkMY1kp!clo(?a^?zok+e#$f?Cfvm zew_0^=bm$C!{1%i>&si-W*7>d^>|LrW9$j=Ruld(ZZtEt4*UV^0RN1*zNP-%4=%&} zF>oztf`j1e;3n`Im;rwW@ngO78Cwo+2Rj+7vVGBn36i5%z=y#LAPM>+;&t#reE$J% z0oUDEH#7i}u%jRc%ivb*&f7>i*IOoE7%je_@s74Q-8EVvE+*=Kn9 z1!?~o+=%a=7S)xuF0MzK0x6Q?;A-$qkTUZTco6&&Bth$zFt!ss03v918l;TA1yUfF z!ByZ5a0B=oSfy01Y_Cr|1(M*_59t97>+8*#S z_#}86r2Rd}F9je#68r{8f@@$8_!WpmhgqP^JWBUZ1OCH7_d;VK9y*9pV8~J!9o;F_ z38j`Q89_D%bTvi?-sryRDx)T1xS=rR93){>;LySp@{g=G#u~gKm@xe)hsHqBGt^ty z0W^sc2?t%n19&KEYCjrO8*O;dso_{j|8Y0N>5-0OIb1a?S2xEqyc&07cdc2rG_l6V zbVJgayVq^u(Aj&gpKx@K);){6o@N!j(0)O88>d{FiEH%pD^17Zp`;nJs#PcmQ!{i^ za?AE~%M6vr{BN83R}T#C+sg(lryxB3?8wl8P=uTC+neJ{HEDW+_H)-3s&xHS^Wcgx z-Elpx=7b|uPda>aT=nhdmpj74n(zcK6tN*I`QbwY$~G=d)zYNq-)cUc+8;?S$U+uJ zO;La%ho8_5O%;yD#TZ#k%v$$fYRR?_JJR#?u`);GcF~*szC~@~hnzCs7p@ z*qM2WHizLNab8aHalIr>e)!;Ef(<*?gj7AnKhyf^(zKH7QM$W%DxFF7Zb>Hn&IN0B zZ>7oPcAnan>A_?wnT+iduBRMwgy|Z>vz!cnx;R}ECVx&;^gQpkAxyPAFP+{sUJ$zB zR~P(P9aWx@rgZB2hb^h;9#19u61}q(rsm37!EHz972%bF8XN?d{#}H#Tdc+o?gm$~ zmQ%dfPGJh8T&-9oGWUO*D?!cHUCA|zPuDz@BJSD@KFnFX6im5Z(JqDst>%KMte6O{ zs4}uxo-J#>Ck%xA22+(X>0s~daxdLsV!zeFEtsy zwDX8A)Tk$*T*qZqf=h0mnu3f8Exf=eRiWKRQ<43POGZmWCF%S}e&+N?)JQH7$t)uF fibhRP&*Yq)GY!No7=@VN%50_(HPpz7dK3Kva5P6+ delta 804 zcmXZaOK1~e5Ww+COd6Y*r`6U+CDukMb?I&r6OHu&YC)?-D=5W-tm#2$Fs%_Wrznb- zw&w8R!Gk9c)r(S#M?uhwXX&K`FG6pEdZ-}2{{)PGDz@;;@YR+yZKW%cxV_L27Iy z<0J!t>rNbxvE!B-ur>k9R^KTl7LO6`?-qA+>A9DI9;5^=0$YIjKz+bS24%@jE$RSJZf&mpO|9ek?|#~OAnG&zsYr7`VXvcY;OPn diff --git a/po/sk.po b/po/sk.po index 43d9ec5..0effcf9 100644 --- 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ý \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 \n" "Language-Team: Slovak \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" diff --git a/po/sl.gmo b/po/sl.gmo index fe8c0a5a7f7834adfccd8dc2f3078c1b7205c0e2..7550f8f8dd267a656e40742652eda4d01bca80e0 100644 GIT binary patch delta 2280 zcmaKrTWl0n7{^aWe-|G$}rqkQk#8V?s3X#RMOSPX-eGe>2;q)XT}9{msm| zec%84pEq_~>#p2rZ+wfPS?Jr)U#?^9QSfFx{?LAIU~CKc3)l(Xsd8Im{C*f*kMC!} z2S67b0xyCOgWrM~@J|pw*5AZfJ9r4}Vywc3s~=pD4tfcE2z(c$fWEBq2Dk(7x52&O zmiyw320;q!49LM*a6kAC*bjaK_JB>zjCF$tzyVNztvH{(jfZ{s@G(e{e-DxZovRp2 zgU^Gs!6mR4`~vI){{Tn8T`i1_f+g@6xCkb}L;_=A8bqdS61*Rr19yY3g9mXw`xFmD zkoy+69q*5VzcX7D;l3f%&afE(9APH+-@61)r|Hue*^5&RV-g>Hjw z;MUey>3v{@B0P==DP>IMfS)2K zBgtArT(w40Q!+cztCxtOQc-C+xCx!ghgg_J=R?(6qxvF==<2`@wbq0uswv$7YHMP! z2f?lAR7NTxHM%wMAj3_K+6MYh`Wa4L8lw%*6}7M2=?t$V{ltnf?MWA7d`cB1tywwl z2}5iDbNrl90gVTm`+==XLA1Z4{Mss?z9en>g>&_1lTk=Z+vc?62-hwuS90wIO1n|y ziSWDn!;Ic-ZjyxB0{Gg1xNkxmv%UEv@i!_TRr zofF39Vv2T5-Q7KWp)uP!Ze$RssacN9y;897V`HwKPncQ0GwE~7nvq3sC!fMTjy94j z7mtnz2b#w#&xoQzNOE~*EbnXAnl7rW6-^9iDYEzDNk;m*WRPrX*~IeFK1&bP$x*rx zE|`&gT9u{CPd`1BV&g{VWiGJ7OU)PB2CQ_S)!WN^1~NVUd(-K#Yt`np{Z<;kKHi(o z^c`3jT=iUCc)evqWzsq>U1>z1O@@zaX{&(ur1q!!?>fd6o+t=DCp=|@n-}-`sXD6d z>L^EqI*^4GwyRDvVs3H1DBZj)(^mZC|IYT5AI)+FTnIm*V6NiYE^9mXBSs4%uNUWK z?bz`5mYGANambFe`MoDf2PM0D#npbGc&Q-fV9+w$rE+n+;Y8v@=g}h*V-v@oI>N@X zMO7%}YkNoaN`>zwy4v6nzbNg3f-a6Ki172oa2u-OnKC}Pq7b?Cuf%KVag7`?FLEpV zf_Qlrw~H6FO@b<3hAp$&lw$jaudaSGGZJOS72FEF1O$K|xF;~v){gW8EQ?O@bi@)Y zyxT(@-Qo5%X5Cm(dRIRX`B-BQ_8^9~!v`7eN~b zjJdR(7A~Bd=8OG zzL>)?Y~nON!6a^>UfAUnIf0kZ#15wLHCp%+Con$5Ch!^-@F~vYFFb%TW zgRzDK?!8MAU(LoB^e3wBI&P>xj;zW%W9q*1wAyyAs^-v|O1nzkXRe!eWxCI*AMSQw z!Z0U|)O6G`v!Yg-A&JR+xTp)QLV2uv(d}>3s>d~xf%CW z<6^D6uvjgp2, 2011. +# Matej Urbančič , 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č \n" "Language-Team: Slovenian GNOME Translation Team \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" diff --git a/po/sr.gmo b/po/sr.gmo index 9a54ddf9353e6ac487a63619ae1a4832f85a787f..c4ebd216a5bf3708147c682326457a33a7221c64 100644 GIT binary patch delta 2594 zcmaKrTWnNC7=WjgYg;I^2ntBY;tB}6_C~=1-a-qNQkn`z4MexQr?9nq$=PkOB&3BJ zB@&TvAZZ!|uZhvbl-7oZORGj-e414W@d1K76BE>!7=7^jXM3YWCOiAhnVJ9okLUZo zyz@rE^wWyrXD(yDnWfZbczYUujGNg?ErGwnBKYqpmrc)nZ-NWh-vb|lF<1+a!pGo` zunPVS`KgK-N)^B-;Uh|Qs=CpQ7!*T?;iK>j6o>K zV#foS2)=~%eE$Wv!0JUx)xmdQ0$zjdaNA;~95@1>fxZVZ3Y+1xupdg~e?rkyOlR(e z`(PGCjqSC^rT#Jq$PTHCj9lhw<}4;zwGAgVmGaO}wv$QH_#p7{A(2YGi@8vUJX5{c&T=f zOj4Ar(lQ;_jk`M38c#-I`>J%OFPSstES_*;oayFBt0OW~&l5pcWdHa4fE!84c`B}x zsc^h4W%WlR$#JQq?D)d+^A1kiaGg{t(%hkmJkgdK_+@%%n%?Dh=we?|`~CZ!)E zIyw?#84Y@svl=>I47Nsa$(bCPYDvap{(Y^HCcnLy5>cX0W-hr-GT!DAY+%yG_AxzU zi_yzAToRYs@92Gzb|t*k1oSX08tY1rv+ zblM|HGV9-hdsVuuq_o1`E7c|CRqHkk)X(n9T0pB*X)}=SGK1-(=A!BI?&KAA-rYfy zkF^<2A2I!=4~f2Xuj$j~D;7uW_8|D>^Xpzl(#~McBB31U6OAMxP3CGY$h@8N?IEpJ+Mms4of|EFnFK`z3ZV{>DBQynC-1A|q zpy}cc(!>UmrG$%+G|9QS|MlPy!u~-oO`m#5){_iL!9h2E5gAfOKv4;r*Kh0 z(1{@UM1&gu2NxTBOJX;CyJmhly&gWVzrwzbSiO47I2 diff --git a/po/sr.po b/po/sr.po index a6b012e..1d5a97d 100644 --- 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. -# Мирослав Николић , 2011, 2012, 2013. +# Мирослав Николић , 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: Мирослав Николић \n" "Language-Team: Serbian \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 "Тренутни положај не садржи врсту ниске" diff --git a/po/sr@latin.gmo b/po/sr@latin.gmo index b0c8dcf2bb5acfd136b8917141b4b3b5aca68001..16c99bbdac4e57c28e0bb656f54652ad7af2e927 100644 GIT binary patch delta 2244 zcmaizT}&KR6vrLkzJYY8X2K-mAqQ?6*3`4uZdf?ciT!9;z=r4}<&g{u1~! zXoBP5yI?1H2TX#0g7~riU5vGY$H60vEwQuZ7bZvtT>+m5Z-A80w`FdDhw=OXJO&ynOf|U6$ASuwko3S|f zCP)FUg1z83U>~>*o&&oY8Jhroa1`7CqhKV0H82jMQg#u10xW_@!S}%-oX@_*%`oJ? z4^kzu$4ibAASqD*sp3z-C&3>;Qf3Q013mz|!P9$6Qs+VB#%_X7fnR`h;BBxC+y=?N zu?6~5<(;^B7Mua;z_-9o@I#O)y#qMp#RIbslh5`cmj-r8IUUe2z(Lz9vlI;L8^FYf9c?5koJ8IQeuCU z*#@1d@>f8LcM*IQd=JEYhbq#n^-%xGkWgrp1X&ZVuu>3eg@;g2NiED%ILRooYRIc< z)I#bvDTJ`BH&LB_L9zByG)$=yHf`ne!qg3AN^aSnvdl2^Nbqy*@PV=M zv!iUxa`M9Cugy$Ogh{xuprtOlSC^(IXg_ytk(O?ds2ks(QI6~J^t^CH+LI3Nilzg* z?(O!_Sr?w*c^?~6lAoU)(}uV-)0Qsv;9lKo;#@i9yv(QIYKlBEa` z?4RhtLVc=b%8{O@GK(CQ+rGE{Ykj(w&pL~|BkFQZo0o>&!83@Hw;aipiQBvg1{sW!lq%s|_mygIc^#>+R)IZm#77FAA>!&CRTMbc8DFR%MwZE6bC)9ivv=mvV$I|7Vk} zTw!WiffixpFg)mvskkZ{q8JXJDRm1AS-%=6_^vV2eWskORXW77(+WW_c`7Rr%aM9Y zh3N-fk>MjFr)DQ-M_)h1CR2vW`PoXNDh0%XRHUbES`_mltsnsR3x?QOm1b53E0LL2 zVRG9kV8s+Ues}p(OyZr$_3m&IZA&L7j07c_!Ux3t@yXmRTSu7@Ij$7ND(O|8YgH^*4uX0j i_NYT;TFJ$xBQ`$p(TA!&9x6eZqS^B~J}i~t z$Z&8K#6d+AB$J!q*1=7MB4QU85z)ax9sJ*yTypZedGC>P?m2J0usqQC+!uZztbLvM zhk4>t7hkNKA(7p93ny?DeSDAmF}+1(50)^8=g|GvZ5+TR7V#za;Ra^$J61#*k_?NK zxlqLd)^P+M<00HYmpB>`If|FiU=uCA!4m$$Va#_^1YW`O_ykYlZ#;nG(RSgpI38+< ztgvwvzwHq@jbG56@L-IM6h^8B;DCN zXl(E6Z(*GP diff --git a/po/sr@latin.po b/po/sr@latin.po index d4443ed..464dc74 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.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. -# Miroslav Nikolić , 2011, 2012, 2013. +# Miroslav Nikolić , 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ć \n" "Language-Team: Serbian \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" diff --git a/po/sv.gmo b/po/sv.gmo index f8a12adfbc6fe2565889f43e2954b623cee9933a..1cd1298893a9e0142bafbabe529cd1453da55e8e 100644 GIT binary patch literal 5269 zcmbVP-ESR76`w*w+sj9xe6?wy(|~cEWUsI7G&nalG)e8qD2^@LiCU?&%-x;4Uf;bl ztC`uGI4^+20}p&iNJyvx!9!E=4>aNl0p=AIRpJS$;^PrspbvmRg5R0hyVo|3lXT_1 zzn$HgGw0)X&K$q}*n{6^xFX!gaDU?g#^!;4eGh(c{o%cg9R>ao_!RIz6&`yqjOTzK z!TXnhPXHBg3HVLm=YVek+rWPT@yAXdVeB#BS>V&a%hgx`X`inHKMVXJko5Uwg>M5t zjq$&MCxJ)b7vwAgNv{`y9Jmd97WgXgH1M~;Dd3TZ7@Gio9(V>QfR6%y06Yc!DUkI3 z9gysQ>S4xOz%K)7{da)Vz+V7ofbRg8f#Z)bb_G}h7l6M8jsY7Dd;_+CWakUOj{$E2 zp8CmJ`em5#s!f4^i|+0@KxX>@GroNz$Y;Y zA!4rpKMst6BzLb$y2a+Ct2eyC@gDh*nv%m|$ZviKPZvy9l{{@}{&S6s;-vF)y z-vDj^ANeR_mw+z=X`k1DWZzpr4*VyO{QLxdP5_%glJ_F;0pKTalmF-&UD(cF6cf7M zk9z|5L%87*zX!=Dj(|#@!!V`3pjLem56MU5$0~go!oogg#bl zL3N)qphA5e!4s(Fxlb=a3x9nEzfa<(7*agxqI?1UeEexlerIF0&FPlLXv5=N+f1eO zsIX?`O7NW$DdWLVtV}(qvGIHe=`c zrE9`uLOGsfvCFg)W}8dp==Vk;V`sVGUs_+e!gXg0Lw-GToA@MRmv3{eB=5_9M;f-^ z4IOG5>waITB+oEG7bMsFqrn!uP*Ql0*i*byI_@?lH(EQcbRv0Xx$bheT}b|wF+0u{ zmo6``MQ!@R1&zpMw#jM>;#^qE$H(Gv2yon%MWKz830qPLOcJC9w}ptM#jAnHvt(qx z%~B;?X=MFL7$dfMhP5|%BD;#kB^2vOesyCpnng%s_%vb5BJaY5 zGT~u=1ldS%r8aE2VopU_Znyg#o%8XDak#=qXt+IhWsyrCAU0ejbJ>ThEzR}X1t)@> zFo8BEo{F%tUKAL_mFR;k1`NxSSeS&1E_t*$@-Dlg12x1zWVz^IcW{AN6PLzdUtS>3 zC`xQaRrK7$Cz0p+I&6n_fqtvPvw7$PwrZqvSr^PMU4dL$tJ&Dq)!GhmB9Lca*f(}5 zvY)}@U~nM0z}}u&Fcr_kv=WG*&kdP0**#0T>*}FHc%r5CX|btuxE962^NZ4J&vx|! znn%e`nnTgVFBXB2_p_oh_x_dyyZoAvfa7Bc2xxg~q##zfP56!?Z?l_V4eA7*gJ17J ziQv`ykXHHjP;nJ?y^o+Bl^vh(fn%i8U8SJX9v`zjiZ*3l9Op<9-q!}@&*zITT1|FU z4aotPI3xJMiMD&5FPuTKDi?{9>>8ClxNuJi-LhImX`Xc=%28Mxz=laE5V|y|noTyE z=re%i3?Hh=z8qCPOS6Gg{Oa0L6N#ni_=uL0=$gcdrd6BQ!WwImDs{AM(=3TDl&Ot2 zbenHFSF|T5J7sz^%X868mF~-?Ht8f%U7A<$p&6&y7Yn14GIsMLd8;cM(M4hk_KBW{ zmTf-WnmQA;W}@k7K6R!&b^2rrS7UW0T9bo}^cl^2HfqgAt+RZ3rad!zvNer)mxXoF zh7rouZ#%^i2CYP#d`>m&DT+d zGP}v=ToKv9b9rVVwdn_Yrnk8rG?tf^7e-#2YPK2|H5{Oz5wf?<9Vjtb zGw-YZXdY?al_pxCV*uw$o6mMK*I3Od4jGVUcTZ$R58Vyzv#TN6fK2MY;2pm`TTpa}IG*9ith<9qo1~+Ayt{MT z3}BOk95f6ZhlNj(h_bxr&3hm*gm$72kOcr^vt`!ixXtYd;#Z_@P#*>XZ<%pdmF&X4EW2J!+O9fY!wLp zE&3KGPI8zGZhP6_@CnY46vWGbkiF1Cd7A3tfQ{B9Nxz430=)@J*va0CC+kah`aM**O+0Vd*^EYv2Kl+Z+*5P_+l&>iZMWH#)sft+$s zJb96!HxC{Pdh$?I^c(~a;=!W_@zkq$SLuI02HyVW&AvA?ySobqh0)JaYL{RX5Yvd~ zh%(|YA{=)n2&up|coufxB76o*a33zf&u|I;h8#{GA;g3m(1Igah5PUpJb?39CQC=- z1KRK-ng>a~oF?Q93b$amVFwoBOBi0@EesF*0heKBl8_Zxhc(zw^4IVt@?UTk&Sv5d zU4s*(NeKF*F@+~CMN)AZJyAn)h-1lGHW7D>{uuTodBkyqzMG!YPtp}_OxAThb3wn! zT+v^%IqhXX=`Xn(n&+GPPyXqs%J?N_)~LlBoG)^d^ZdOQyDtZh@3@Msia<8-(zF;i znPpMV8`YJ#Ze92RYkNZZT@komgRTnY$S&O+c7?K~N3ZtX>vpuJlBJ8jyp~@VYUi=o zk*qC+{x|jBAh#b1&k-tMov!eGsi-lxZBRcLf3SV(s6gs>g&A$1u(EW#=h49J=@%!N z&KA$7!b<(ExP^&t==sv+)8T}=+mE6~ip_-QiJ|^qti(01N~a1N((cM$FFFZr{c=rz gFQ1!, 2012. +# Sebastian Rasmussen , 2014. +# Anders Jonsson , 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 \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 \n" "Language-Team: Swedish \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" diff --git a/po/te.gmo b/po/te.gmo index f3b434f9e3ffac99f10cc14745d271198aa8d5a6..eba67958200399d319bd8de7c2c7d201cf4849b8 100644 GIT binary patch delta 29 lcmX@Bc~*17b9MnUT?1oXBO?VvGb=+AZ3BbN-`TJ6005AP2{r%# delta 29 lcmX@Bc~*17b9Mn^T>}$cLo)><11kdqZ3Dy2-`TJ60059A2`&Ht diff --git a/po/te.po b/po/te.po index 0463d32..8405a54 100644 --- 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 \n" "Language-Team: telugu \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 "ప్రస్తుత స్థితి పదాల రకం కలిగి లేదు" diff --git a/po/tg.gmo b/po/tg.gmo index 6d811166a1a9223b40320105bedb3c2b5ccfb06a..e805a27db31838f17b7c68aeca114c89c345122b 100644 GIT binary patch literal 6571 zcmb`KYit}>6~`~Mp$P}elcY-}eDW%~k361i&HkUF8DQW)=!*VFFKEHkri zT>-L_AfieT`aq;Dd?+c14@h-hWE;mWNQjSU))8Mos={Xw5~5#FLE?Arotb^4Zj-7b zkN>+f_nv#s|NPIncVE8p@}DR!hx;1tgKtynR`4Hh=O5Sk%apnr{2O>J_}>h#x!iug z1^gh-?*~5)2H*sE2)rI#1pO$bxK_cejfZZcvtp40A-y8@H+5kp!oCq3||I6 z#rIdijo{Vquy%HU;@8(e4bFi#g3o|k!4w<=*Il914dCa%ZJ-OjA3OqX0)GvP-+u-r z{%hZ<)F}83Q0DZz{~ZUO%d?gB^NrPSSE3)~L=0UQR0hIj{#f)eL_;8ozG;Ag?Z z;7wo~d>qdIl|4W39&7(Mpsafy6gyYG*V-?GVt*d|F8C{OCwSfal=>c62XRgP9TZ+( z0dEJdB3Q9A30@C=2fPzJ3JM?p1aAh1KVaXx;2ypo0%hJ`!LNgtk?i&01KL5e*83n=z)`>@5Q!Tb6C3YdUj`3Twq z{|I{EjUOe4;IrUf@PDB2fA7a^-k%1)%J)Bk2f^zRCp0Uj8=Y+c<-%=qNlxT?H}?(P zS8zj}(VFlr8bL}%!%$INgjrm|x8z#*$;wBO9`#9X&5esj+oA)98_J6dHx-na+#rSG zTE{2Jr)Xa;pla*rr0%n45{tLs5snbc9WiJB|4e$bQFe(4#KLZ{aA<7I+<&F z`dh>Ch}to6*LJldj2doYJrc^|k}4vo)ZIANBg2&u3?w>kHJf3ScvUqKR0+uyH+0-| zD_+c_S-0+2yWz)vEpU@onD01ht&)i3J)tmMMh{nLk@CKa8=TG}loaoAo8^MSd znbnJzu?MYd&5Y}Q#e1FCNhB=cWy{l*FqrkCJkNQ+%H*Z$Ca!ShHJZs>&!a{Q$EG~J zcXEew6Dh60X;tlV>(fx^RkdB8Bu5@vDFWM-DJPSxj^`RvVO@{hFai}OL;3PLX*KJf zNs!8Cd3CP=)v=5<-dPe6Cn3nfqEpw-EGAh6>A-CumI#H_s}(n@YIj-~Ep^#dcZXIQ z?yT$A-6>W_3!<7zD~ecGH>oqplDa3z3FNM_(pG9UYoq8j=HpDnLzNW!vu3Dz=hU)NkFUBeOHN!u|6Z#5=9y`dF4?fT(Z zJI;((Z?4xAiEe}u?a$PUX<8+UtDRkO&96FNYSm(AGA!$vBx#m6Z=Pz^9`);Ww^Wm{ zr7)^(rr5pco4hDhYX0rbD6F-F?sDVAnT*^ZuDeMXmGwUMOL8?a z6}dIP5zgvcX3dk5pFjCRtwEbAu@~OP^q|&qYo0Udxs9?ezL#}U8`?FoYkQZLvC`2>C?#^UPf^mN+p9A>SHnX!P;W1amvJ(e!^o^Dunr893_&dsczun{aX9Z<*-em1;Mq!@0jFOT{pChhi9(U<=_-xK|hUNugHLgfL^F&KN#nF>uUr1lc zq=2CnBY`CzpTI$0b>`0im!?m@!hD*Nnlcf`BC!$|E-(TXMzdg>IDXF>=rY=2Jjt&%JOl zOAdHH5U8vm$Jo_pjFu!6#3QObMv!gX<-g=x9#e*${fL}*i#^I8Fj)k9guz0Agly$$ zPJ(E3C0&x#Wu&Yz&QNzaJ!zLSSrkEA7wusd(xu8z_oh{w%FdKhV@dzb7rp20YAi6tFIm62j_=qM5c13i_qx@*B(xWJOL4=j5 zanMemehfe2CxIDRQcuR}F_K_}mXXo7qDc91<~$}`p?vw*E3@?_G$~0sE6$4kkL%9k z-A8t~?L9UUN}e8fT8h~QYWu7d*XnWVpCzP_prEHG6wC#nCr)*iE(R5h|vaPVM&oKCuNt)^28TnF*d0vGyb9{#*spiud-!E&K0mwnZU;(Q( z{1?d_HxjB;Hj2*r*NHZn|%ASF?X}!dnFBUD!depy0 zmm`zFuDHy>&HCQciMy&Xne5qE*t-p1C`LMe5k3(L4|Lbw&@ORVC@prdwHC6zmelHR z8Jz{4m81||tjMM(TlKOPSiW)OJqFGpILo#vh-@5GV$kuPHU5&9O!#!6)dL zCqxp``0d7IbB`5h6(K{Z?53u}r7J3ZYfVenVsY{4Ej8Vn5o`Pi(R8;b^K%Kw+Kyn( zBhtLGE+HdL!AN3?jjZ7P_*(43Q_mp^O}*Jgd)>c?WlagQ+*729DAx8*nxWmXWZXjoraW_`GQ!B%Ff{Sa9dPv}N6)SR}Uvgc=9ra?NBn94Q00)0}7 zgPQ{il*TP_*?pw9n5CduCTnLoTivv=u(U#z{+#J{XIgtYgZr4VHDynB*2;5OS*BXM z+hG5h1`86lJ?xv638?>MSNsage@#k#5d`&2HOdAjOIeDfp&JTK^A>#-1xhdJJ)Lx| t=D#>O2Van%uH~$Y*j<=Y;gk5#mLH=+q1ht}PE9%w%BIyhG|(kV>i>flsGI-* delta 227 zcmZ2&{E)5wo)F7a1|VPoVi_Q|0b*7ljsap2C;(y=AT9)Ako+_tHUQ$yKs=F=f#C^| z_5$KECI$v;Abk)>Cj;rfKpH3wHW$cbUas4YOHHuqHAcTU}RurV4!VaXkfq<;IA8$T9#RynV+ZYl30>z1(Y-d msx#CzGE^|MurjciyoUP{i>aOo*W^X~zLV7itS8?RNdW+|F)Wt= diff --git a/po/tg.po b/po/tg.po index 5fe7fd0..53c5c61 100644 --- 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 \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 "Ҷойгиршавии ҷорӣ ягон намуди сатрро дар бар намегирад" diff --git a/po/tr.gmo b/po/tr.gmo index bc00b7a37bbcd444f3097d0c78568b733156dcac..baa3be8c810fd9961924db873a682f736a1e4a5f 100644 GIT binary patch delta 2342 zcmZ{jU1(fI6vxLTHOZ#2X{)Bz)Qr(>nx=Qz-F(=Ds13G}*t7|0Dh((&**n=x@7Hqg z-P8?~MYO1h6}ePIln6dlM5s#<75bp=7QrVK>c>lIQQrg+eNYtif9~B)HpLD*`@4JR z%$alk^WP7Mx~=IP!_Y9hFrT}Hu?N9l8t{d2t&y>v;B~MY{HMyUrs($=xE1f8 z0Pg~Aa1wk0+zoyMj)H%I_^`oEjBNu)zEAt0q+Oj1gW6Us=Nx`gWrFH z{ou}9qeK%R6*doYumBE$Z-9f~S6~X<)XZ2P_y9Nz3UCX~XRqU7A6~o*Qsq}bQlPtq zu_X8;ND0n@Y4B5U0Q?<10`|5tb`;EmhrkLL2V*g;fk_aZvJ>F#;0m}0dH;5hg#NFDFk9>vds z)ZrO$FZe!4oqq??{y#t}Y&Z0W(Cki3QeZFLKMkB04!Rc_ZJ2$SumXc9q2cIG={n%2 z(8*|KZJ?gD(Tyj%?;gzRpNQdR*e*70?=H#S}HNL1! zNqcTw&k2|I-gNzxt9)Ab9q#$MllQ~?mh#qidGsc()2D;aAf1fLqSJz>8m8i5jkR+! zj%5j3H^S=liL@S>-jvhBwUg4rOSKcnP8&vba%K}7rx+D9svuIAD^4h_H$`x99`xr{*vTbwJdFZe0DOyW?bi_%=lWMH$OWxtR)AubegAzM^l6S zNsQRcv^Fc3l?P?DgD7v5r<18cEtS@igFHPjIxrM;wIqVWExVe_mt3QKUIuo{2gOHy zSJ<8@e6*TQjHD97>&`MnPWYDKOSk~9Qrc)c-SG;dP$_XyJ}+DYWm4G9VhV1hba~aU zl)(Dn6Lm(8eAz2_L9DE241F3NW(t=}!&An(QTh0K;*Es{{jJj@haD^Lb5BI)a!;ab zTNZ{2pP3tuZVKBXeYj&ECo%tF5u!?Qf1?h#Nj%eq4-J1fXAb?pug?u&hqn>l7Y7Ag0kgHE7CM2 z^uPFa+anFBgJMbWMX_QEv|?rzr+(}W&NoQ8yq$*w(Oz)9eXjUFLg-Fq)yGQ%0GL`YjsO4v delta 765 zcmX}q%}Z2K7{~F)abE0>^WsdFsl|wsS~}Cc<22O;>$WH|MupZv&CsA?AS4ANgo}!( zTnG>K57eS)Ga+rlh2X}8(6UuU814hxq>H}ij`(nY=QCXH;hg83*&h1byYwR!d@WQD z=_R}5G}&rlpza1l#<7Afe#Ac9!ES7870F^hn)x^I6xMJUpJECdn86J^kH4`fvLxL> zku$uQ!V=bT1RH1;{*Gff7!t9uh7P{L0&e0c?%@QU3yVzRW4wl2IEbl8bK@?4rMcTU z!TK_CMC1w|EaCuuLDShU%;G+pj{2;o9-0O3U=kJ0>Agcbl6Aa{e=&!}sECJEH1pnK z8NcBe>r1x1`C%1JM=NML-9XdnE_yf+6S<1hcnLqC+3+@=MJp~sWB%sBFJ1`;<6i*> zaain4m?rm5Fm#YkV!BBa*7G|8Icf%q>k>9B$H_6m=?Mqp7dPY=e+fw({5G_aE~3wa zW&Ia)wH(UolhAeD2`y+nysQ@@mDTr=YCvu4rv9;BB}a31G3S&r1>3dlVcXH=Xjjb1 zIXtC|Q*fP&`YD=k$?MPP$?(GmbF&LG+S=ZTmFMRw_h%Pt87E(`^kr;H({WE9#fP*J YAJ@)AUDpyT`XV{Mn(FWZ`Ye6xKPxa^=>Px# diff --git a/po/tr.po b/po/tr.po index 8c7ebe9..8c22e0f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -2,157 +2,236 @@ # Copyright (C) 2011 json-glib's COPYRIGHT HOLDER # This file is distributed under the same license as the json-glib package. # -# Muhammet Kara , 2011. +# Yaşar Şentürk , 2014. +# Muhammet Kara , 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 \n" -"Language-Team: Turkish \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 \n" +"Language-Team: Türkçe \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" diff --git a/po/ug.gmo b/po/ug.gmo index 9e38f4a6bd3ef2ececf99fd1e02e8a37680fcea1..d66ffbd2c7ac44295abd6b0b56f689b3797575c3 100644 GIT binary patch delta 29 kcmcbibVF%FJ-dLJu7ROse)f}`0EPJoUH||9 delta 29 kcmcbibVF%FJ-dLhu7QcJp_zh_ft7)Qwt?a1e)f}`0ELwZRsaA1 diff --git a/po/ug.po b/po/ug.po index d1f2190..ac05911 100644 --- 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 \n" "Language-Team: Uyghur Computer Science Association \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 "نۆۋەتتىكى ئورۇندىكىسىنىڭ تىپى تېكىست ئەمەس" diff --git a/po/uk.gmo b/po/uk.gmo index 4b9827875d0a573e8c4cb22059359bf36ca39496..ac58d82e60eb29cf77519a43b4f5a65e9afad5e6 100644 GIT binary patch delta 2839 zcma)+TWl0n7{?E75m>;2cSYa`t_rwIFUX~!LB*1qf>lt#h&bJymWAD&W@d`PL|Z6E z5>eE_dcQoFXf)AEX;>^R&=`F(IivB#DDe{Gi!a8QX!OC~H?v!cm&B8u{hgUP=llNO z<;?R}|JvAd=7O5%6eGoTCD;B*O5F&5s^X9FO|?>2z;EGv_-C0{*2MQ~;B21X4=;yB z*a8p0Yv5Eak>HZlm<$lr3 zIAvSm8txCnJ7EYV(uL>88MqbZxp&|L@GIC3SJx_qHuV~mOuYqH!q4F>ID@}5oC|w4 zF==J83cdl?!Y`pXoTEs;wD6$%*QEDoELO(^FOp?Y2 zfsYRw(B~s&g300SL|%kJxMR|w|7pLUF4na$mMO>^Y`~% zmMeSz^Zi3^&X@PTqdhPN85G zv-w=n)=rn7bBa+YiQt{8HJ3KGwBDwg9k*cl`u0tCY>ZTS>EMT|ekhmEW-K?Wtq!r6K5ISLSkqqH=GwlW>)4}7MOU{!_dfcbQ_(_S zwi3M;FLG_q>2?V=Jz?SQik-@&yf_M%#Q8gH-I?2M7xmqDwWL*>>+G~Mek#aL>FZgZ zs%uO&H0b)}P4&x`)G-omcckvJcjr7Zn_7pwCf!h1zf9IO*6I4jriO+kb&afRwLCwy z*|myZ-trx{NpIM*%gI}M^DZm1L$BH7cU!KX&-s4du3xpHZf$45%H`9P`zE#)JG-q; zJ2m*g)bu2pG;UrqVurLiVvd>tGi*k~z2PBkj&bv0*lSARK2tikVgGggk+2^F<2!V? z9|OnD@PBXZsrbUns5!>|510*zzyGnjvN;lZ5}A7|Tl+K-?8EzrL=^TiA2B6!TtY0F zNN03**2i-e_sNp5f847nojpq0oJ8FTb`F~l&47-@nh(fRZ`c=|ttY0fpUT@(c)$z= zXQt_Gul_Ti{}LmHQHRbGW+>dptfcWEzGCSk%m>XV9>YVDS~C#kGWc`aRaIeMFh6li zCoT(GrhgLrGJW>aD5>JCUsFHHB-QJS zBRM)jOMiUw+5g*?iu*Y4hc#+WeAoM;=zW|-4k3O(69Y-sNRbKUHY3y`>_^nFtel_? ze`D{a5mz(w^y+7&$gDmZw{9fnnA8f}q?CVYX%d82Lfju`F6>w4rC@1d?%?+`b+zR8 zrkTlL@$3#;>`@k}Pt;eVv`wEmj*TJ7N#$cRHmq?e%2*p!vs_3i18*oXPKU#Tk%;Fd z=8=kXGY~vJ`{^F@y5yel=}{=%R`xu^!ICbPv$=0Vqhh37)(PLG@(1j!aVc|1mN6YQ zd#~g!?uH55c5kbE&uEDWI>JNjJy(Ym0iy>cF6p#V_*nd%l*1^;4C&Filyi3?{`~y~ DAfn~w delta 833 zcmX}qUr19?9KiA4<~D8G{%LJ4s~Z_6ZhAKV&5J>#NyRL}Ac!ny+k-e=Y=iJYj0${c z5Om1Mm*_3%WiW^+LZTjg@L_{q4TA8!sFxz>dnfsW-}&5ox#ynW`JMZ#|7qvSmw@Am z5QoSP@+WzM+_EtcGj@^lm_id@;W6C7Fg7)abmDQe=AXkOn86-=fB`I{fgf=Yzu|z$ zii8~^-8{I2L%4(yETgsXHlD&Rr-;G~#&8YexQYGv2Pd)5C2|p$@hom(7X})43pcTk z;;-Xv)|b*gky&2&iwT@@i}d0%oWe~!jUCM*qd1LMaUHE4|3G#k-WHK-IF1>7jyKS` zU*smHaREQ!U5tA~vaBx^F2>OCid@DtPU35{cH;1f%;OYhaRaS_BmUj@AEDLKuV|f` zbu9mbPYaEy9|4Wn3-%<`A?bDo=E(t)?@B94;r0Ikq|F)#j!W361j&OW-4hyC4^F5a zbXBN%FPgXtk$TmU)W033PC7gFedmPUaTfHFtE7h;Q zTs~JQ&Sf*{%1-l`P3JrlEwy{Kwd%WCsrt71M!)wMdenQ=UM=fs?-~8sJEC9s!aCtw r*2*8$F8?O??YcX#t!G*{Z0mZ#d$@9^&1kS@M1m*vhu|&!IJEi?4&Q!f diff --git a/po/uk.po b/po/uk.po index 3e1c2db..a0c002d 100644 --- 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 , 2012. +# Mykola Tkach , 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 \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 \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 "Поточна позиція не утримує тип рядка" diff --git a/po/vi.gmo b/po/vi.gmo index 840fdbbfcd02436f0ab0b038cd3fa6d108e0dfbb..1aa600cf74801918fe199b859bc8bd29afd9cc4a 100644 GIT binary patch delta 29 lcmZ1@yGC}y5_SPIT?1oXBO?VvGb=+AZ3BbNTiAcF0RVrp2yy@b delta 29 lcmZ1@yGC}y5_SP&T>}$cLo)><11kdqZ3Dy2TiAcF0RVqa2x\n" "Language-Team: Vietnamese \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" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 99385e209ab14d9251244941b02ad33614440ce2..67981353e5a9b70b118eddf9ad4aff3ef075cb08 100644 GIT binary patch delta 2320 zcmZ{jYitx%6vwZ9P`VT-prU~GmbzA;Q??JFtd%cHO`((u#bAPj>F%^0*qzzTOu=GI zTWw28D3pvXP{6c`2#v5HDAKM}jDA-WzoJ5CABm3`KN0=l|IAFwrinLu_je!Xo_o&! zp80HfUvbC1#aV+4O+a6P-u)P3FM+>h;1BJWOvaXhzk&tezb;o~IrD085!UyBPlF0r z3-*D}gFk|P@F9pFtITF>F}M*dWUPbLxeE$N7j=Qpf#*O9=&s9q;Io+j1Fiv=&2b#n zfE3spAP3vQb>J{q34RZjf!R5XtpYcI>p>A*i2K=T3`($Y38ct>0!e{_xs3V1H$if6 z94rUF1}nh7!EIo1E@Smz8@L(#7W9H15B5MGh)mgT@Nw`k_yTwWtit{5OALO7?082H}$J1?i~{ zfE^@t4+bRt82AkM9Y~Ts04dVUh0et#AUWCuQil6LlDZe9Kw_W(J_MJ8#rckcFN1Wk z0j>qRz!$;m`Ou#n{Eh{ZstDCImQAvAjuof2M6?@tYW?MB&Bn}@y%9i_k^g6)(tEzAkh6#Yo^hAAxQhvK{?E{Y>ZHE_7^~lBqy~ZbX#hW-jo{E z25OMuOSRh*^zYUEoVuiGs>TB$RhN|(KkxABo>_ZpL{hNFo8^#1XJ+q5M2*h=@BSf8 zHfY~axo!m2HpBKGmi3uaI<0tv^vmZBa3?uo(QW3wj5@C!q?A%^&N2QmVR)#k}C@F?W_FRvM0ZBJ=GHaJK%bITR zK&z;U0YlPwu{U7WWWG~i9}bF!$irJ@%ZVq87+=Qcw z7)C@IKO~2O0Z|Kbv6(!UKJsqXXEiNs&?Lijl4$3-|6<$GjeqQb?s}y|YWar!HFW<1nR|UH|Q8$D}O;q%dXsDW>?~Js{%3FMk zETTNB+hx5~RQ8uum|N!-d3MU-NJws$A$8l_v5wustCAvV&bd1E05Ui%@v_o&)7AKA zY}o3#kvet7Ix?Pm{|u&SrHWbnsANPhBB{DXm67OshltJjw5PEs~bD!&B<7ujNVF44j^N?f4brk#ngB&Npkk4bzyjFax~r* zH5=#eJ)9almW+0#r=3>GZpm9GqEize&(bLQd3St#02-y)PZvCQye1~jKnkjIPST`F HK*#q zA}ZMJU=a33Kbqf<;bE*{9`9ii*U-WZ9LDcBB(f~s zevtvbxQHXzz++2%x7!;IMO!bLXxl{7>6^Ac&=lMo6Di@^F)bqV!J7rCEgdcr`w;D)^5FCm@nXF~^>BK3j4 zs(<`ttp?KC44l)gz>+qCD>@o-*Pn*2`_vAP>(B6`M5$m86^bL4W0!3^Zx?kXl8QM6 zd$iy toz`!$6IzM)>5cf9euzhcRyK2VDXU-OQ##%GM01Ji`rSmpr>~M%{sEZkWCj2L diff --git a/po/zh_CN.po b/po/zh_CN.po index 283f13d..aa53e2e 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,157 +1,236 @@ # 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 , 2012. # Wylmer Wang , 2012. -# +# Sphinx Jiang , 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 \n" -"Language-Team: Chinese (China) \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 \n" +"Language-Team: Chinese Simplified \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 "当前位置不是一个字符串类型" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo index 697f70173fb032f63b0a4ab86f1e74e940c9815d..9bde0ad641838c57e8f5ed9c347f787e2f70035b 100644 GIT binary patch delta 2194 zcmaizYitx%6vwZ9P}+j6tqKC#+u~X&Zrv@l)`Bq-TT=u?1;Ge0)7@zqvOBYxnSv#n zEeNtmTZ&V*v{q>i#VwYi)@V~!l*CUaCdTLoj6n^|J`xgR{G##sKQptXHX)wu-QUc; z=bU?9^Y_xzmEp@JIma2qjkOHxz)g%j3|`B^ALPeu#+HCTfo0&I4wvQF?`yzYu)iI= z1C+sLFaq8KehoH&zk~R(+FZs;z=yzc#=>m9vmt|Y(LV5Qa0sM;E;_sn-i7x+z?I;V zdA6e_kOF%SS-#{eIyf-tp7_0|5_!J12Oa-Y` zVK7Xk9&i*cfJ^cI189{Rqzsl6*^#dWDU+=r?RS85;Rr|pd$vtbwD}Q1nz0lgYBo|MZH>)kQNqr<)jzuk_>QPTg z=&QjDGJL6)P$ig4Yv8m*RaI2(3n-c-w>9vvODmXjri4TpXS`Jkh-5SOJS3=Od&BcR zs-)Aou5eBFEA6`FKPYK4RvPWN{PZ*SW^H#_A!Xe9lweSh{Q*f9xf0SPMYbX@FuuuJ zv#61y1;|&P-qePmd#D>dM?U7#V`7eYuVl24Nk~GG1vlASqLH`mG6-P zexIQFxzI`;tFL=EUd(AJ+N6rQF12=WWFBhQCokprviN4TgIBmT?so4K1EC7u3O_+b z6}cqiF(?>yd7Hw|3IPcriL*0fyEH|1w*{mYx233)DYDmWB~{dvb`{B1&r;l-@soLQ zl&y48IDMzc+oav1%(pzlIe8t$!Y@Yb&Mc#QJ-ix<|q zJvI388c##5$7q`WSGcZv6^+Hu@j>e^-9MC$9!?DGPY%SBeJ9gh=Tc`*S%?48iXJhK zpG=(TON>PRPuGmRns}@CM!JvMQ<=HmJom17a5NDcNK8jl@hS7r^c?qgsLA-W`Q9IVuW5{!z1_*!`-w<2)jOW-i`hEH z+QMzu2hc9Xz?#j wf9mYvISI}hF=rO%l!Ee^?nNnPX=Y}S+b$Dbhs=pV8a$pHJYZj7mx0Xw1^oGG`v3p{ delta 766 zcmXZaziU%b6u|M5_|n*Jh;$I8gD$l{mc}K5 z;L<>cgNxu|p$dW^9b9$tFQ`K)b`u;NbSOns{GPmb$a$ap?&aNIC)-2+`Wj!e&T}Eo zMEM5`T9Ac*0)nrFR$y)g8p`@I+GaGr-^C(mRQqzTT?G2@9n%v-jA!Fx~V@?8(wM5FOL-~`M|IG z{)k`HW;&OlGoar(OM$*m|8*wD%PC#T+|{GZC7pB6>Jzu7-`ypxcQ&=+-QIcWb;Wf* GJO3Y(NLi}@ diff --git a/po/zh_HK.po b/po/zh_HK.po index ebfbab8..25607f5 100644 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -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 \n" "Language-Team: Chinese (Hong Kong) \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 "目前的位置並未持有字串類型" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index 94f814e7afcf6031a00f4f434e7945ac63831157..029cb1f95bb97418d295b35a98040018a1ee6873 100644 GIT binary patch delta 2194 zcmaizYitx%6vr=ZvF%oDEh>m$Z;NZCIL&S;6$+YYY-1a!L_yKuW4b$qA-gl1nOP8m zX?au@X`wiSfjP9C<$Lph|v!wh$75B5)xzlWH846nVBuM3Grm_{$}ny z=iKv}o%2VlJFk`(9AOXvYd+SV8H_y%-ps=vS$!OvcK=O$)67WxOHCSEDSQ{7xo4`w;7xZ{=2Kqo`%GQJTf!o2yz=Pm2+|S1Ga0zAq z10=&Q?shV~;<9L#^Ii{9sow-SsDUd%6RZI*gUi5MAd+VF_b@gWTmf=$EeMw^3R0_f zft_}#U4@I_Lpb;iq*DI_QU(i3oyeO&%H&m$_IH4E;Rr|p{0vgXiprc8E(fV{uY)*Z zeIQkO7lZG zDlGRSV(184fW@)qU{Td+76iJVN|O`n7lO1u9gM@I%)}Gs&29^AQXfecVo}Sedel=A z`f4zP3}31(R0-zQ8#ygW(^QQILaHt+8yk72SNBXiQzMdsGu|PGB(j-)9uYONz2o^- zO*ZJ_n56k+bl}o|_ESM1kFV9X@hY#*1!0pEid69q_zA0; z#AOAKVbN?TT+{iI7?Kf^G&M7}SyvTdV@PfnY(;}ik-hFHX_Br+H6&X*MR7~cPwv50 zw$nx7j7<{XC~uJzzV3yVTDC@0H%kFSFb@>&E^82cON6>Q?r&)H*Dv<@%*vvOPT545TLFndG>&cVe1*C)9Lu!us@( z9moV1b$t)95k0%!Mn*Dmu~ z@xqevGpPgbrAH^SansE6w9Yc)7N)wSO`-EVd8zTVY?`FqNq39({m-qDL4=b@ylbAE_43y2 xXn*GPzG(?g88LSjr8ndn0)rfBA7kUK6@J$tP)gEV+NJ-ElYz$pWn{R>4^XI%gQ delta 766 zcmXZaPe>GT6u|Mf>#SS5?(Dezv$UAR#Y~OaakX|Tf-o`7AQU2kqVQHkx|f7v389M% z9v&ToK>FiF2ydM_bm|_IM1hA+b*Mv!>frb7%wykte)Ib=zkhGn`ycl-zLuP)Li8m0 zAIs#I6c6HlTI3)u;6+@)2tVRc^x8xYVTgS=gErS99>G-{#0@Or7W()TM@1UqIwDm% z#&H0ba17UQ2)ED{&Spf;;uQ>V6)X4-L;Q^+SZ-$%cnvS(E4+YzupiH4D>(CT|9;BX#Lx0H_(=gPk0!+c|VVK!W(E4Kf=BEB6)v{HqSO5$L@Um{RG;^ z@8A&Y%QG6|_yJF2u_K;v8tr8D#FvSm6FUm=_&K!i7I6SK@ECr=6xwDjc9BJri;z7e z=jQ&CU~O?ptEJUxKiNsziI}HVQ;>c3AgGG459uNgkd#w6Xe+2hEBK3um$VHovUQVE zu1Dp0`}z97xvqbmNH1mjbU8Dj-!pYxYH#Yv?5)k$+1qIia#Q*%x8jWq2i4)qm>&jF z5DW$tZRWcQbcXc%m0A>pYj5%?XY@ohrwfIf`ma#aIk#7r-AVo7-qVN0rq;Zxo6o(@ Jw0\n" "Language-Team: Chinese (Taiwan) \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 "目前的位置並未持有字串類型" -- 2.7.4