summaryrefslogtreecommitdiff
path: root/gettext-tools/tests
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2015-12-28 00:06:36 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2015-12-28 00:06:36 +0000
commit6eb5949dd99d174393465069c2fd0bab32deddcc (patch)
treed104f72ac2dcb0f592b1c8e06a5af6790bd4080c /gettext-tools/tests
parent482840e61f86ca321838a91e902c41d40c098bbb (diff)
downloadgettext-tarball-6eb5949dd99d174393465069c2fd0bab32deddcc.tar.gz
gettext-0.19.7gettext-0.19.7
Diffstat (limited to 'gettext-tools/tests')
-rw-r--r--gettext-tools/tests/ChangeLog.1 (renamed from gettext-tools/tests/ChangeLog)136
-rw-r--r--gettext-tools/tests/Makefile.am28
-rw-r--r--gettext-tools/tests/Makefile.in702
-rwxr-xr-xgettext-tools/tests/autopoint-272
-rwxr-xr-xgettext-tools/tests/autopoint-316
-rwxr-xr-xgettext-tools/tests/cldr-plurals-159
-rw-r--r--gettext-tools/tests/common/supplemental/plurals.xml10
-rw-r--r--gettext-tools/tests/format-c-3-prg.c2
-rw-r--r--gettext-tools/tests/format-c-4-prg.c2
-rw-r--r--gettext-tools/tests/format-c-5-prg.c2
-rwxr-xr-xgettext-tools/tests/format-kde-kuit-172
-rwxr-xr-xgettext-tools/tests/format-kde-kuit-280
-rw-r--r--gettext-tools/tests/gettext-3-prg.c2
-rw-r--r--gettext-tools/tests/gettext-4-prg.c2
-rw-r--r--gettext-tools/tests/gettext-5-prg.c2
-rw-r--r--gettext-tools/tests/gettext-6-prg.c3
-rw-r--r--gettext-tools/tests/gettext-7-prg.c3
-rw-r--r--gettext-tools/tests/gettext-8-prg.c2
-rw-r--r--gettext-tools/tests/gettextpo-1-prg.c2
-rw-r--r--gettext-tools/tests/init-env.in5
-rw-r--r--gettext-tools/tests/init.sh24
-rwxr-xr-xgettext-tools/tests/lang-bash13
-rw-r--r--gettext-tools/tests/mm-ko.euc-kr.po2
-rw-r--r--gettext-tools/tests/mm-viet.out26
-rwxr-xr-xgettext-tools/tests/msgexec-6143
-rwxr-xr-xgettext-tools/tests/msgfilter-712
-rwxr-xr-xgettext-tools/tests/msgfilter-8164
-rwxr-xr-xgettext-tools/tests/msgfmt-xml-1119
-rwxr-xr-xgettext-tools/tests/msgfmt-xml-2203
-rwxr-xr-xgettext-tools/tests/msginit-485
-rw-r--r--gettext-tools/tests/plural-1-prg.c2
-rwxr-xr-xgettext-tools/tests/sentence228
-rw-r--r--gettext-tools/tests/sentence.c85
-rw-r--r--gettext-tools/tests/setlocale.c2
-rw-r--r--gettext-tools/tests/testlocale.c2
-rw-r--r--gettext-tools/tests/tstgettext.c3
-rw-r--r--gettext-tools/tests/tstngettext.c3
-rw-r--r--gettext-tools/tests/xg-c-1.ok.po67
-rw-r--r--gettext-tools/tests/xg-c-21.cbin0 -> 140 bytes
-rwxr-xr-xgettext-tools/tests/xgettext-1359
-rwxr-xr-xgettext-tools/tests/xgettext-1498
-rwxr-xr-xgettext-tools/tests/xgettext-appdata-1127
-rwxr-xr-xgettext-tools/tests/xgettext-c-192
-rwxr-xr-xgettext-tools/tests/xgettext-c-2086
-rwxr-xr-xgettext-tools/tests/xgettext-c-2149
-rwxr-xr-xgettext-tools/tests/xgettext-desktop-113
-rwxr-xr-xgettext-tools/tests/xgettext-its-1276
47 files changed, 2847 insertions, 248 deletions
diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog.1
index 47c51ff..1df1b73 100644
--- a/gettext-tools/tests/ChangeLog
+++ b/gettext-tools/tests/ChangeLog.1
@@ -1,3 +1,139 @@
+2015-09-11 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.6 released.
+
+2015-06-11 Philip Withnall <philip.withnall@collabora.co.uk>
+
+ xgettext: add support for AppData files
+ * Makefile.am (TESTS): Add xgettext-appdata-1.
+ * xgettext-appdata-1: New file.
+
+2015-08-21 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am (check_PROGRAMS): Rename from noinst_PROGRAMS, to
+ defer the compilation until required.
+
+2015-07-28 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-2: Add checks for AM_GNU_GETTEXT_REQUIRE_VERSION.
+
+2015-07-28 Daiki Ueno <ueno@gnu.org>
+
+ * init-env.in (ARCHIVE_VERSION): New substituted variable.
+ * autopoint-2: Use ARCHIVE_VERSION, instead of the hard-coded
+ version string.
+ * autopoint-3: Likewise.
+
+2015-07-10 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.5 released.
+
+2015-06-24 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-2 (required_gettext_version): Update to 0.19.5.
+ * autopoint-3 (required_gettext_version): Likewise.
+
+2015-06-24 Daiki Ueno <ueno@gnu.org>
+
+ * lang-bash: Skip if "bash --help" isn't localized on Mac OS X.
+
+2015-06-24 Daiki Ueno <ueno@gnu.org>
+
+ * msgfilter-8: Port the "echo -n" equivalent from gettext-2.
+ Reported by Paul Zimmermann in:
+ <https://lists.gnu.org/archive/html/bug-gettext/2015-06/msg00019.html>.
+
+2015-06-24 Daiki Ueno <ueno@gnu.org>
+
+ * cldr-plurals-1: Skip if XML is not supported.
+ * msginit-4: Likewise.
+
+2015-06-24 Daiki Ueno <ueno@gnu.org>
+
+ * format-kde-kuit-1: Skip if KDE KUIT format is not supported.
+ * format-kde-kuit-2: Likewise.
+ Suggested by Chusslove Illich.
+
+2015-06-23 Daiki Ueno <ueno@gnu.org>
+
+ * msginit-4: Don't check the Project-Id-Version: field, which
+ cannot be generated since we can't rely on the project-id script
+ when $builddir != $srcdir.
+
+2015-06-23 Daiki Ueno <ueno@gnu.org>
+
+ * msginit-4: New file.
+ * common/supplemental/plurals.xml: New data file.
+ * Makefile.am (TESTS): Add new tests.
+ (EXTRA_DIST): Add new data file.
+
+2015-06-22 Daiki Ueno <ueno@gnu.org>
+
+ * cldr-plurals-1: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2015-03-12 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am (sentence_CPPFLAGS): Add -I$(top_srcdir)/src and
+ $(AM_CPPFLAGS).
+
+2015-03-05 Daiki Ueno <ueno@gnu.org>
+
+ * format-kde-kuit-1: New file.
+ * format-kde-kuit-2: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2015-03-03 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-14: New file.
+ * sentence.c: New file
+ * Makefile.am (TESTS): Add new tests.
+ (noinst_PROGRAMS): Add 'sentence'.
+ (sentence_SOURCES): New variable.
+ (sentence_CPPFLAGS): New variable.
+ (sentence_LDADD): New variable.
+
+2015-02-06 Daiki Ueno <ueno@gnu.org>
+
+ tests: Fix "broken pipe" error in msgfilter-7
+ * msgfilter-7: Eat up filter input to avoid EPIPE in the parent
+ msgfilter process, which was exposed on AIX 5.
+ Reported by Michael Felt.
+
+2015-02-05 Alex Henrie <alexhenrie24@gmail.com> (tiny change)
+
+ * xgettext-13: New file.
+ * Makefile.am (TESTS): Add new test.
+ * mm-viet.out: Adjust to the recent line-wrapping behavior change.
+
+2015-01-29 Daiki Ueno <ueno@gnu.org>
+
+ * msgexec-6: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2015-01-28 Daiki Ueno <ueno@gnu.org>
+
+ * msgfilter-8: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2015-01-16 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-desktop-1: Check "invalid non-blank character" warning.
+
+2015-01-13 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-c-20: Improve test coverage of raw string tests.
+
+2015-01-13 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-c-20: Adjust to the latest xgettext C++ scanner change;
+ don't accept unbalanced prefix in raw string literal.
+
+2015-01-13 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-c-20: Adjust the source file name from *.c to *.cc to
+ enable handling of raw string literals.
+
2014-12-24 Daiki Ueno <ueno@gnu.org>
* gettext 0.19.4 released.
diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am
index 5a0d3c0..d3ffb75 100644
--- a/gettext-tools/tests/Makefile.am
+++ b/gettext-tools/tests/Makefile.am
@@ -1,5 +1,6 @@
## Makefile for the gettext-tools/tests subdirectory of GNU gettext
-## Copyright (C) 1995-1997, 2001-2010 Free Software Foundation, Inc.
+## Copyright (C) 1995-1997, 2001-2010, 2015 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
@@ -40,9 +41,9 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
msgcomm-26 msgcomm-27 msgcomm-28 \
msgconv-1 msgconv-2 msgconv-3 msgconv-4 msgconv-5 msgconv-6 msgconv-7 \
msgen-1 msgen-2 msgen-3 msgen-4 \
- msgexec-1 msgexec-2 msgexec-3 msgexec-4 msgexec-5 \
+ msgexec-1 msgexec-2 msgexec-3 msgexec-4 msgexec-5 msgexec-6 \
msgfilter-1 msgfilter-2 msgfilter-3 msgfilter-4 msgfilter-5 \
- msgfilter-6 msgfilter-7 \
+ msgfilter-6 msgfilter-7 msgfilter-8 \
msgfilter-sr-latin-1 msgfilter-quote-1 \
msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 msgfmt-14 \
@@ -50,9 +51,10 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
msgfmt-properties-1 \
msgfmt-qt-1 msgfmt-qt-2 \
msgfmt-desktop-1 msgfmt-desktop-2 \
+ msgfmt-xml-1 msgfmt-xml-2 \
msggrep-1 msggrep-2 msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 \
msggrep-8 msggrep-9 msggrep-10 msggrep-11 \
- msginit-1 msginit-2 msginit-3 \
+ msginit-1 msginit-2 msginit-3 msginit-4 \
msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 msgmerge-5 msgmerge-6 \
msgmerge-7 msgmerge-8 msgmerge-9 msgmerge-10 msgmerge-11 msgmerge-12 \
msgmerge-13 msgmerge-14 msgmerge-15 msgmerge-16 msgmerge-17 \
@@ -72,11 +74,14 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
recode-sr-latin-1 recode-sr-latin-2 \
xgettext-2 xgettext-3 xgettext-4 xgettext-5 xgettext-6 \
xgettext-7 xgettext-8 xgettext-9 xgettext-10 xgettext-11 xgettext-12 \
+ xgettext-13 xgettext-14 \
+ xgettext-appdata-1 \
xgettext-awk-1 xgettext-awk-2 \
xgettext-c-2 xgettext-c-3 xgettext-c-4 xgettext-c-5 \
xgettext-c-6 xgettext-c-7 xgettext-c-8 xgettext-c-9 xgettext-c-10 \
xgettext-c-11 xgettext-c-12 xgettext-c-13 xgettext-c-14 xgettext-c-15 \
xgettext-c-16 xgettext-c-17 xgettext-c-18 xgettext-c-19 xgettext-c-20 \
+ xgettext-c-21 \
xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
xgettext-csharp-7 xgettext-csharp-8 \
@@ -109,6 +114,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
xgettext-vala-1 \
xgettext-gsettings-1 \
xgettext-desktop-1 \
+ xgettext-its-1 \
format-awk-1 format-awk-2 \
format-boost-1 format-boost-2 \
format-c-1 format-c-2 format-c-3 format-c-4 format-c-5 \
@@ -118,6 +124,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
format-gfc-internal-1 format-gfc-internal-2 \
format-java-1 format-java-2 \
format-kde-1 format-kde-2 \
+ format-kde-kuit-1 format-kde-kuit-2 \
format-librep-1 format-librep-2 \
format-lisp-1 format-lisp-2 \
format-php-1 format-php-2 \
@@ -136,13 +143,13 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
format-lua-1 format-lua-2 \
format-javascript-1 format-javascript-2 \
plural-1 plural-2 \
- gettextpo-1 \
+ gettextpo-1 sentence \
lang-c lang-c++ lang-objc lang-sh lang-bash lang-python-1 \
lang-python-2 lang-clisp lang-elisp lang-librep lang-guile \
lang-smalltalk lang-java lang-csharp lang-gawk lang-pascal \
lang-ycp lang-tcl lang-perl-1 lang-perl-2 lang-php lang-po lang-rst \
lang-lua lang-javascript lang-vala \
- autopoint-1 autopoint-2 autopoint-3
+ autopoint-1 autopoint-2 autopoint-3 cldr-plurals-1
EXTRA_DIST += init.sh init.cfg $(TESTS) \
test.mo overflow-1.mo overflow-2.mo overflow-3.mo overflow-4.mo \
@@ -152,12 +159,12 @@ EXTRA_DIST += init.sh init.cfg $(TESTS) \
msguniq-a.in msguniq-a.inp msguniq-a.out \
qttest_pl.po qttest_pl.qm \
qttest2_de.po qttest2_de.qm qttest2_de.ts \
- ChangeLog.0 \
gettext-3-1.po gettext-3-2.po gettext-4.po gettext-5.po \
gettext-6-1.po gettext-6-2.po gettext-7.po \
gettextpo-1.de.po \
xgettext-1 \
- xgettext-c-1
+ xgettext-c-1 xg-c-21.c \
+ common/supplemental/plurals.xml
XGETTEXT = ../src/xgettext
@@ -210,7 +217,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
LDADD = $(LDADD_@USE_INCLUDED_LIBINTL@) @INTL_MACOSX_LIBS@
LDADD_yes = ../intl/libintl.la @LTLIBTHREAD@
LDADD_no = ../intl/libgnuintl.la @LTLIBTHREAD@ @LTLIBINTL@
-noinst_PROGRAMS = tstgettext tstngettext testlocale gettext-3-prg gettext-4-prg gettext-5-prg gettext-6-prg gettext-7-prg gettext-8-prg cake fc3 fc4 fc5 gettextpo-1-prg
+check_PROGRAMS = tstgettext tstngettext testlocale gettext-3-prg gettext-4-prg gettext-5-prg gettext-6-prg gettext-7-prg gettext-8-prg cake fc3 fc4 fc5 gettextpo-1-prg sentence
tstgettext_SOURCES = tstgettext.c setlocale.c
tstgettext_CFLAGS = -DINSTALLDIR=\".\"
tstgettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
@@ -254,6 +261,9 @@ gettextpo_1_prg_CPPFLAGS = \
# Don't add more libraries here. This test must check whether libgettextpo is
# self contained.
gettextpo_1_prg_LDADD = ../libgettextpo/libgettextpo.la $(LDADD)
+sentence_SOURCES = sentence.c
+sentence_CPPFLAGS = $(AM_CPPFLAGS) -I../src -I$(top_srcdir)/src
+sentence_LDADD = ../src/libgettextsrc.la $(LDADD)
# Clean up after Solaris cc.
clean-local:
diff --git a/gettext-tools/tests/Makefile.in b/gettext-tools/tests/Makefile.in
index 4cbdce9..f00fa3b 100644
--- a/gettext-tools/tests/Makefile.in
+++ b/gettext-tools/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 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,9 +13,18 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+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 \
?) ;; \
@@ -77,21 +86,116 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = tstgettext$(EXEEXT) tstngettext$(EXEEXT) \
+TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 \
+ gettext-7 gettext-8 msgattrib-1 msgattrib-2 msgattrib-3 \
+ msgattrib-4 msgattrib-5 msgattrib-6 msgattrib-7 msgattrib-8 \
+ msgattrib-9 msgattrib-10 msgattrib-11 msgattrib-12 \
+ msgattrib-13 msgattrib-14 msgattrib-15 msgattrib-16 \
+ msgattrib-17 msgattrib-18 msgattrib-19 msgattrib-properties-1 \
+ msgcat-1 msgcat-2 msgcat-3 msgcat-4 msgcat-5 msgcat-6 msgcat-7 \
+ msgcat-8 msgcat-9 msgcat-10 msgcat-11 msgcat-12 msgcat-13 \
+ msgcat-14 msgcat-15 msgcat-16 msgcat-17 msgcat-18 msgcat-19 \
+ msgcat-20 msgcat-properties-1 msgcat-properties-2 \
+ msgcat-stringtable-1 msgcmp-1 msgcmp-2 msgcmp-3 msgcmp-4 \
+ msgcomm-1 msgcomm-2 msgcomm-3 msgcomm-4 msgcomm-5 msgcomm-6 \
+ msgcomm-7 msgcomm-8 msgcomm-9 msgcomm-10 msgcomm-11 msgcomm-12 \
+ msgcomm-13 msgcomm-14 msgcomm-15 msgcomm-16 msgcomm-17 \
+ msgcomm-18 msgcomm-19 msgcomm-20 msgcomm-21 msgcomm-22 \
+ msgcomm-23 msgcomm-24 msgcomm-25 msgcomm-26 msgcomm-27 \
+ msgcomm-28 msgconv-1 msgconv-2 msgconv-3 msgconv-4 msgconv-5 \
+ msgconv-6 msgconv-7 msgen-1 msgen-2 msgen-3 msgen-4 msgexec-1 \
+ msgexec-2 msgexec-3 msgexec-4 msgexec-5 msgexec-6 msgfilter-1 \
+ msgfilter-2 msgfilter-3 msgfilter-4 msgfilter-5 msgfilter-6 \
+ msgfilter-7 msgfilter-8 msgfilter-sr-latin-1 msgfilter-quote-1 \
+ msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
+ msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 \
+ msgfmt-14 msgfmt-15 msgfmt-16 msgfmt-17 msgfmt-18 \
+ msgfmt-properties-1 msgfmt-qt-1 msgfmt-qt-2 msgfmt-desktop-1 \
+ msgfmt-desktop-2 msgfmt-xml-1 msgfmt-xml-2 msggrep-1 msggrep-2 \
+ msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 msggrep-8 \
+ msggrep-9 msggrep-10 msggrep-11 msginit-1 msginit-2 msginit-3 \
+ msginit-4 msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 \
+ msgmerge-5 msgmerge-6 msgmerge-7 msgmerge-8 msgmerge-9 \
+ msgmerge-10 msgmerge-11 msgmerge-12 msgmerge-13 msgmerge-14 \
+ msgmerge-15 msgmerge-16 msgmerge-17 msgmerge-18 msgmerge-19 \
+ msgmerge-20 msgmerge-21 msgmerge-22 msgmerge-23 msgmerge-24 \
+ msgmerge-25 msgmerge-compendium-1 msgmerge-compendium-2 \
+ msgmerge-compendium-3 msgmerge-compendium-4 \
+ msgmerge-compendium-5 msgmerge-compendium-6 \
+ msgmerge-properties-1 msgmerge-properties-2 msgmerge-update-1 \
+ msgmerge-update-2 msgmerge-update-3 msgmerge-update-4 \
+ msgunfmt-1 msgunfmt-2 msgunfmt-3 msgunfmt-csharp-1 \
+ msgunfmt-java-1 msgunfmt-properties-1 msgunfmt-tcl-1 msguniq-1 \
+ msguniq-2 msguniq-3 msguniq-4 msguniq-5 msguniq-6 msguniq-7 \
+ recode-sr-latin-1 recode-sr-latin-2 xgettext-2 xgettext-3 \
+ xgettext-4 xgettext-5 xgettext-6 xgettext-7 xgettext-8 \
+ xgettext-9 xgettext-10 xgettext-11 xgettext-12 xgettext-13 \
+ xgettext-14 xgettext-appdata-1 xgettext-awk-1 xgettext-awk-2 \
+ xgettext-c-2 xgettext-c-3 xgettext-c-4 xgettext-c-5 \
+ xgettext-c-6 xgettext-c-7 xgettext-c-8 xgettext-c-9 \
+ xgettext-c-10 xgettext-c-11 xgettext-c-12 xgettext-c-13 \
+ xgettext-c-14 xgettext-c-15 xgettext-c-16 xgettext-c-17 \
+ xgettext-c-18 xgettext-c-19 xgettext-c-20 xgettext-c-21 \
+ xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
+ xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
+ xgettext-csharp-7 xgettext-csharp-8 xgettext-elisp-1 \
+ xgettext-elisp-2 xgettext-glade-1 xgettext-glade-2 \
+ xgettext-glade-3 xgettext-glade-4 xgettext-glade-5 \
+ xgettext-glade-6 xgettext-glade-7 xgettext-java-1 \
+ xgettext-java-2 xgettext-java-3 xgettext-java-4 \
+ xgettext-java-5 xgettext-java-6 xgettext-java-7 \
+ xgettext-librep-1 xgettext-librep-2 xgettext-lisp-1 \
+ xgettext-lisp-2 xgettext-objc-1 xgettext-objc-2 \
+ xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 \
+ xgettext-perl-4 xgettext-perl-5 xgettext-perl-6 \
+ xgettext-perl-7 xgettext-perl-8 xgettext-php-1 xgettext-php-2 \
+ xgettext-php-3 xgettext-php-4 xgettext-po-1 \
+ xgettext-properties-1 xgettext-python-1 xgettext-python-2 \
+ xgettext-python-3 xgettext-python-4 xgettext-scheme-1 \
+ xgettext-scheme-2 xgettext-scheme-3 xgettext-scheme-4 \
+ xgettext-sh-1 xgettext-sh-2 xgettext-sh-3 xgettext-sh-4 \
+ xgettext-sh-5 xgettext-sh-6 xgettext-smalltalk-1 \
+ xgettext-smalltalk-2 xgettext-stringtable-1 xgettext-tcl-1 \
+ xgettext-tcl-2 xgettext-tcl-3 xgettext-tcl-4 xgettext-ycp-1 \
+ xgettext-ycp-2 xgettext-ycp-3 xgettext-ycp-4 xgettext-lua-1 \
+ xgettext-lua-2 xgettext-javascript-1 xgettext-javascript-2 \
+ xgettext-javascript-3 xgettext-javascript-4 \
+ xgettext-javascript-5 xgettext-javascript-6 xgettext-vala-1 \
+ xgettext-gsettings-1 xgettext-desktop-1 xgettext-its-1 \
+ format-awk-1 format-awk-2 format-boost-1 format-boost-2 \
+ format-c-1 format-c-2 format-c-3 format-c-4 format-c-5 \
+ format-csharp-1 format-csharp-2 format-elisp-1 format-elisp-2 \
+ format-gcc-internal-1 format-gcc-internal-2 \
+ format-gfc-internal-1 format-gfc-internal-2 format-java-1 \
+ format-java-2 format-kde-1 format-kde-2 format-kde-kuit-1 \
+ format-kde-kuit-2 format-librep-1 format-librep-2 \
+ format-lisp-1 format-lisp-2 format-php-1 format-php-2 \
+ format-python-1 format-python-2 format-python-brace-1 \
+ format-python-brace-2 format-pascal-1 format-pascal-2 \
+ format-perl-1 format-perl-2 format-perl-brace-1 \
+ format-perl-brace-2 format-perl-mixed-1 format-perl-mixed-2 \
+ format-qt-1 format-qt-2 format-qt-plural-1 format-qt-plural-2 \
+ format-scheme-1 format-scheme-2 format-sh-1 format-sh-2 \
+ format-tcl-1 format-tcl-2 format-ycp-1 format-ycp-2 \
+ format-lua-1 format-lua-2 format-javascript-1 \
+ format-javascript-2 plural-1 plural-2 gettextpo-1 \
+ sentence$(EXEEXT) lang-c lang-c++ lang-objc lang-sh lang-bash \
+ lang-python-1 lang-python-2 lang-clisp lang-elisp lang-librep \
+ lang-guile lang-smalltalk lang-java lang-csharp lang-gawk \
+ lang-pascal lang-ycp lang-tcl lang-perl-1 lang-perl-2 lang-php \
+ lang-po lang-rst lang-lua lang-javascript lang-vala \
+ autopoint-1 autopoint-2 autopoint-3 cldr-plurals-1
+check_PROGRAMS = tstgettext$(EXEEXT) tstngettext$(EXEEXT) \
testlocale$(EXEEXT) gettext-3-prg$(EXEEXT) \
gettext-4-prg$(EXEEXT) gettext-5-prg$(EXEEXT) \
gettext-6-prg$(EXEEXT) gettext-7-prg$(EXEEXT) \
gettext-8-prg$(EXEEXT) cake$(EXEEXT) fc3$(EXEEXT) fc4$(EXEEXT) \
- fc5$(EXEEXT) gettextpo-1-prg$(EXEEXT)
+ fc5$(EXEEXT) gettextpo-1-prg$(EXEEXT) sentence$(EXEEXT)
subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/../build-aux/mkinstalldirs $(srcdir)/init-env.in \
- $(top_srcdir)/../build-aux/test-driver ChangeLog
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = \
$(top_srcdir)/libgettextpo/gnulib-m4/gnulib-comp.m4 \
$(top_srcdir)/libgrep/gnulib-m4/gnulib-comp.m4 \
- $(top_srcdir)/libgrep/gnulib-m4/langinfo_h.m4 \
$(top_srcdir)/libgrep/gnulib-m4/localeconv.m4 \
$(top_srcdir)/libgrep/gnulib-m4/mbrlen.m4 \
$(top_srcdir)/libgrep/gnulib-m4/nl_langinfo.m4 \
@@ -108,6 +212,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/btowc.m4 \
$(top_srcdir)/gnulib-m4/byteswap.m4 \
$(top_srcdir)/gnulib-m4/canonicalize.m4 \
+ $(top_srcdir)/gnulib-m4/check-math-lib.m4 \
$(top_srcdir)/gnulib-m4/close.m4 \
$(top_srcdir)/gnulib-m4/closedir.m4 \
$(top_srcdir)/gnulib-m4/configmake.m4 \
@@ -115,6 +220,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/csharp.m4 \
$(top_srcdir)/gnulib-m4/csharpcomp.m4 \
$(top_srcdir)/gnulib-m4/csharpexec.m4 \
+ $(top_srcdir)/gnulib-m4/ctype.m4 \
$(top_srcdir)/gnulib-m4/curses.m4 \
$(top_srcdir)/gnulib-m4/dirent_h.m4 \
$(top_srcdir)/gnulib-m4/double-slash-root.m4 \
@@ -126,7 +232,10 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/error.m4 \
$(top_srcdir)/gnulib-m4/execute.m4 \
$(top_srcdir)/gnulib-m4/exponentd.m4 \
+ $(top_srcdir)/gnulib-m4/exponentf.m4 \
+ $(top_srcdir)/gnulib-m4/exponentl.m4 \
$(top_srcdir)/gnulib-m4/extensions.m4 \
+ $(top_srcdir)/gnulib-m4/fabs.m4 \
$(top_srcdir)/gnulib-m4/fatal-signal.m4 \
$(top_srcdir)/gnulib-m4/fcntl.m4 \
$(top_srcdir)/gnulib-m4/fcntl_h.m4 \
@@ -156,10 +265,16 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/inline.m4 \
$(top_srcdir)/gnulib-m4/intmax_t.m4 \
$(top_srcdir)/gnulib-m4/inttypes.m4 \
+ $(top_srcdir)/gnulib-m4/isinf.m4 \
+ $(top_srcdir)/gnulib-m4/isnan.m4 \
+ $(top_srcdir)/gnulib-m4/isnand.m4 \
+ $(top_srcdir)/gnulib-m4/isnanf.m4 \
+ $(top_srcdir)/gnulib-m4/isnanl.m4 \
$(top_srcdir)/gnulib-m4/iswblank.m4 \
$(top_srcdir)/gnulib-m4/java.m4 \
$(top_srcdir)/gnulib-m4/javacomp.m4 \
$(top_srcdir)/gnulib-m4/javaexec.m4 \
+ $(top_srcdir)/gnulib-m4/langinfo_h.m4 \
$(top_srcdir)/gnulib-m4/largefile.m4 \
$(top_srcdir)/gnulib-m4/lib-ld.m4 \
$(top_srcdir)/gnulib-m4/lib-link.m4 \
@@ -177,10 +292,13 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/locale-zh.m4 \
$(top_srcdir)/gnulib-m4/locale_h.m4 \
$(top_srcdir)/gnulib-m4/localename.m4 \
+ $(top_srcdir)/gnulib-m4/log10.m4 \
$(top_srcdir)/gnulib-m4/lseek.m4 \
$(top_srcdir)/gnulib-m4/lstat.m4 \
$(top_srcdir)/gnulib-m4/malloc.m4 \
$(top_srcdir)/gnulib-m4/malloca.m4 \
+ $(top_srcdir)/gnulib-m4/math_h.m4 \
+ $(top_srcdir)/gnulib-m4/mathfunc.m4 \
$(top_srcdir)/gnulib-m4/mbchar.m4 \
$(top_srcdir)/gnulib-m4/mbiter.m4 \
$(top_srcdir)/gnulib-m4/mbrtowc.m4 \
@@ -210,6 +328,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/pathmax.m4 \
$(top_srcdir)/gnulib-m4/pipe2.m4 \
$(top_srcdir)/gnulib-m4/posix_spawn.m4 \
+ $(top_srcdir)/gnulib-m4/pow.m4 \
$(top_srcdir)/gnulib-m4/printf.m4 \
$(top_srcdir)/gnulib-m4/putenv.m4 \
$(top_srcdir)/gnulib-m4/quote.m4 \
@@ -234,6 +353,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/sigaction.m4 \
$(top_srcdir)/gnulib-m4/signal_h.m4 \
$(top_srcdir)/gnulib-m4/signalblocking.m4 \
+ $(top_srcdir)/gnulib-m4/signbit.m4 \
$(top_srcdir)/gnulib-m4/sigpipe.m4 \
$(top_srcdir)/gnulib-m4/sleep.m4 \
$(top_srcdir)/gnulib-m4/snprintf.m4 \
@@ -241,6 +361,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/gnulib-m4/spawn_h.m4 \
$(top_srcdir)/gnulib-m4/ssize_t.m4 \
$(top_srcdir)/gnulib-m4/stat.m4 \
+ $(top_srcdir)/gnulib-m4/stdalign.m4 \
$(top_srcdir)/gnulib-m4/stdarg.m4 \
$(top_srcdir)/gnulib-m4/stdbool.m4 \
$(top_srcdir)/gnulib-m4/stddef_h.m4 \
@@ -332,11 +453,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_COMMON)
mkinstalldirs = $(SHELL) $(top_srcdir)/../build-aux/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = init-env
CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
am_cake_OBJECTS = plural-1-prg.$(OBJEXT) setlocale.$(OBJEXT)
cake_OBJECTS = $(am_cake_OBJECTS)
am__DEPENDENCIES_1 =
@@ -393,6 +514,9 @@ am_gettextpo_1_prg_OBJECTS = \
gettextpo_1_prg_OBJECTS = $(am_gettextpo_1_prg_OBJECTS)
gettextpo_1_prg_DEPENDENCIES = ../libgettextpo/libgettextpo.la \
$(am__DEPENDENCIES_1)
+am_sentence_OBJECTS = sentence-sentence.$(OBJEXT)
+sentence_OBJECTS = $(am_sentence_OBJECTS)
+sentence_DEPENDENCIES = ../src/libgettextsrc.la $(am__DEPENDENCIES_1)
am_testlocale_OBJECTS = testlocale.$(OBJEXT)
testlocale_OBJECTS = $(am_testlocale_OBJECTS)
testlocale_LDADD = $(LDADD)
@@ -450,15 +574,16 @@ SOURCES = $(cake_SOURCES) $(fc3_SOURCES) $(fc4_SOURCES) $(fc5_SOURCES) \
$(gettext_3_prg_SOURCES) $(gettext_4_prg_SOURCES) \
$(gettext_5_prg_SOURCES) $(gettext_6_prg_SOURCES) \
$(gettext_7_prg_SOURCES) $(gettext_8_prg_SOURCES) \
- $(gettextpo_1_prg_SOURCES) $(testlocale_SOURCES) \
- $(tstgettext_SOURCES) $(tstngettext_SOURCES)
+ $(gettextpo_1_prg_SOURCES) $(sentence_SOURCES) \
+ $(testlocale_SOURCES) $(tstgettext_SOURCES) \
+ $(tstngettext_SOURCES)
DIST_SOURCES = $(cake_SOURCES) $(fc3_SOURCES) $(fc4_SOURCES) \
$(fc5_SOURCES) $(gettext_3_prg_SOURCES) \
$(gettext_4_prg_SOURCES) $(gettext_5_prg_SOURCES) \
$(gettext_6_prg_SOURCES) $(gettext_7_prg_SOURCES) \
$(gettext_8_prg_SOURCES) $(gettextpo_1_prg_SOURCES) \
- $(testlocale_SOURCES) $(tstgettext_SOURCES) \
- $(tstngettext_SOURCES)
+ $(sentence_SOURCES) $(testlocale_SOURCES) \
+ $(tstgettext_SOURCES) $(tstngettext_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -687,6 +812,9 @@ TEST_LOGS = $(am__test_logs2:.test.log=.log)
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../build-aux/test-driver
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
$(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/init-env.in \
+ $(top_srcdir)/../build-aux/mkinstalldirs \
+ $(top_srcdir)/../build-aux/test-driver
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
@@ -697,6 +825,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
AR = @AR@
ARCHIVE_FORMAT = @ARCHIVE_FORMAT@
+ARCHIVE_VERSION = @ARCHIVE_VERSION@
ARFLAGS = @ARFLAGS@
AS = @AS@
ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@
@@ -758,6 +887,7 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
+FABS_LIBM = @FABS_LIBM@
FGREP = @FGREP@
FLOAT_H = @FLOAT_H@
FNMATCH_H = @FNMATCH_H@
@@ -772,15 +902,34 @@ GLIBC21 = @GLIBC21@
GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACOSF = @GNULIB_ACOSF@
+GNULIB_ACOSL = @GNULIB_ACOSL@
GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
+GNULIB_ASINF = @GNULIB_ASINF@
+GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
+GNULIB_ATANL = @GNULIB_ATANL@
GNULIB_ATOLL = @GNULIB_ATOLL@
GNULIB_BTOWC = @GNULIB_BTOWC@
GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
GNULIB_CHDIR = @GNULIB_CHDIR@
GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_CLOSE = @GNULIB_CLOSE@
GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
+GNULIB_COSL = @GNULIB_COSL@
GNULIB_DIRFD = @GNULIB_DIRFD@
GNULIB_DPRINTF = @GNULIB_DPRINTF@
GNULIB_DUP = @GNULIB_DUP@
@@ -789,6 +938,16 @@ GNULIB_DUP3 = @GNULIB_DUP3@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
+GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
@@ -803,6 +962,15 @@ GNULIB_FFSL = @GNULIB_FFSL@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
@@ -811,6 +979,9 @@ GNULIB_FPUTC = @GNULIB_FPUTC@
GNULIB_FPUTS = @GNULIB_FPUTS@
GNULIB_FREAD = @GNULIB_FREAD@
GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
+GNULIB_FREXPL = @GNULIB_FREXPL@
GNULIB_FSCANF = @GNULIB_FSCANF@
GNULIB_FSEEK = @GNULIB_FSEEK@
GNULIB_FSEEKO = @GNULIB_FSEEKO@
@@ -841,17 +1012,47 @@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
GNULIB_GRANTPT = @GNULIB_GRANTPT@
GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
GNULIB_IMAXABS = @GNULIB_IMAXABS@
GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_ISINF = @GNULIB_ISINF@
+GNULIB_ISNAN = @GNULIB_ISNAN@
+GNULIB_ISNAND = @GNULIB_ISNAND@
+GNULIB_ISNANF = @GNULIB_ISNANF@
+GNULIB_ISNANL = @GNULIB_ISNANL@
GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
GNULIB_LINK = @GNULIB_LINK@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
+GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
+GNULIB_LOGL = @GNULIB_LOGL@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -890,6 +1091,9 @@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
GNULIB_MKTIME = @GNULIB_MKTIME@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
@@ -925,6 +1129,7 @@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDU
GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@
GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@
GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@
+GNULIB_POWF = @GNULIB_POWF@
GNULIB_PREAD = @GNULIB_PREAD@
GNULIB_PRINTF = @GNULIB_PRINTF@
GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
@@ -948,11 +1153,20 @@ GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
GNULIB_REMOVE = @GNULIB_REMOVE@
GNULIB_RENAME = @GNULIB_RENAME@
GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
GNULIB_RPMATCH = @GNULIB_RPMATCH@
GNULIB_SCANDIR = @GNULIB_SCANDIR@
GNULIB_SCANF = @GNULIB_SCANF@
@@ -963,10 +1177,16 @@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
GNULIB_SIGACTION = @GNULIB_SIGACTION@
GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
+GNULIB_SINL = @GNULIB_SINL@
GNULIB_SLEEP = @GNULIB_SLEEP@
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
+GNULIB_SQRTL = @GNULIB_SQRTL@
GNULIB_STAT = @GNULIB_STAT@
GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
@@ -995,10 +1215,17 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
GNULIB_SYMLINK = @GNULIB_SYMLINK@
GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
+GNULIB_TANL = @GNULIB_TANL@
GNULIB_TIMEGM = @GNULIB_TIMEGM@
GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
GNULIB_TMPFILE = @GNULIB_TMPFILE@
GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
@@ -1058,25 +1285,57 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
GNULIB_WRITE = @GNULIB_WRITE@
GNULIB__EXIT = @GNULIB__EXIT@
GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
+HAVE_ACOSL = @HAVE_ACOSL@
HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ASINF = @HAVE_ASINF@
+HAVE_ASINL = @HAVE_ASINL@
HAVE_ASPRINTF = @HAVE_ASPRINTF@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
+HAVE_ATANL = @HAVE_ATANL@
HAVE_ATOLL = @HAVE_ATOLL@
HAVE_BTOWC = @HAVE_BTOWC@
HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
HAVE_CHOWN = @HAVE_CHOWN@
HAVE_CLIX = @HAVE_CLIX@
HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@
HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
+HAVE_COSL = @HAVE_COSL@
HAVE_CSC = @HAVE_CSC@
HAVE_CSCC = @HAVE_CSCC@
HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@
HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
+HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
+HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
+HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
@@ -1088,13 +1347,28 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
+HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
+HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
+HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
+HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
@@ -1103,6 +1377,10 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
@@ -1114,6 +1392,12 @@ HAVE_DUP2 = @HAVE_DUP2@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
+HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
@@ -1124,6 +1408,12 @@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
HAVE_FEATURES_H = @HAVE_FEATURES_H@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
@@ -1146,9 +1436,18 @@ HAVE_GIJ_IN_PATH = @HAVE_GIJ_IN_PATH@
HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
HAVE_ILRUN = @HAVE_ILRUN@
HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
+HAVE_ISNAND = @HAVE_ISNAND@
+HAVE_ISNANF = @HAVE_ISNANF@
+HAVE_ISNANL = @HAVE_ISNANL@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_JAVA = @HAVE_JAVA@
@@ -1170,12 +1469,22 @@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LIBEXPAT = @HAVE_LIBEXPAT@
+HAVE_LDEXPF = @HAVE_LDEXPF@
HAVE_LIBUNISTRING = @HAVE_LIBUNISTRING@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
+HAVE_LOGL = @HAVE_LOGL@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
HAVE_MBRLEN = @HAVE_MBRLEN@
HAVE_MBRTOWC = @HAVE_MBRTOWC@
HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -1196,6 +1505,8 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
HAVE_MKSTEMP = @HAVE_MKSTEMP@
HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
HAVE_MONO = @HAVE_MONO@
HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
@@ -1215,6 +1526,7 @@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@
+HAVE_POWF = @HAVE_POWF@
HAVE_PREAD = @HAVE_PREAD@
HAVE_PSELECT = @HAVE_PSELECT@
HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
@@ -1230,9 +1542,14 @@ HAVE_READDIR = @HAVE_READDIR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
HAVE_SCANDIR = @HAVE_SCANDIR@
HAVE_SCHED_H = @HAVE_SCHED_H@
HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
@@ -1245,9 +1562,14 @@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
HAVE_SIGSET_T = @HAVE_SIGSET_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
+HAVE_SINL = @HAVE_SINL@
HAVE_SLEEP = @HAVE_SLEEP@
HAVE_SNPRINTF = @HAVE_SNPRINTF@
HAVE_SPAWN_H = @HAVE_SPAWN_H@
+HAVE_SQRTF = @HAVE_SQRTF@
+HAVE_SQRTL = @HAVE_SQRTL@
HAVE_STDINT_H = @HAVE_STDINT_H@
HAVE_STPCPY = @HAVE_STPCPY@
HAVE_STPNCPY = @HAVE_STPNCPY@
@@ -1273,7 +1595,11 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
+HAVE_TANL = @HAVE_TANL@
HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
HAVE_UNLINKAT = @HAVE_UNLINKAT@
@@ -1349,13 +1675,16 @@ INTLOBJS = @INTLOBJS@
INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ISINF_LIBM = @ISINF_LIBM@
+ISNAND_LIBM = @ISNAND_LIBM@
+ISNANF_LIBM = @ISNANF_LIBM@
+ISNANL_LIBM = @ISNANL_LIBM@
+ISNAN_LIBM = @ISNAN_LIBM@
JAR = @JAR@
JAVA_CHOICE = @JAVA_CHOICE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBCROCO = @LIBCROCO@
-LIBEXPAT = @LIBEXPAT@
-LIBEXPAT_PREFIX = @LIBEXPAT_PREFIX@
LIBGLIB = @LIBGLIB@
LIBGLIB_H = @LIBGLIB_H@
LIBGREP_LIBDEPS = @LIBGREP_LIBDEPS@
@@ -1374,6 +1703,7 @@ LIBTOOL = @LIBTOOL@
LIBUNISTRING = @LIBUNISTRING@
LIBUNISTRING_PREFIX = @LIBUNISTRING_PREFIX@
LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@
+LIBUNISTRING_UNICTYPE_H = @LIBUNISTRING_UNICTYPE_H@
LIBUNISTRING_UNILBRK_H = @LIBUNISTRING_UNILBRK_H@
LIBUNISTRING_UNINAME_H = @LIBUNISTRING_UNINAME_H@
LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
@@ -1382,6 +1712,7 @@ LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
LIBXML = @LIBXML@
LIBXML_H = @LIBXML_H@
LIB_ACL = @LIB_ACL@
+LIB_HAS_ACL = @LIB_HAS_ACL@
LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@
LIPO = @LIPO@
LN_S = @LN_S@
@@ -1391,9 +1722,9 @@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
LOCALE_JA = @LOCALE_JA@
LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LOG10_LIBM = @LOG10_LIBM@
LTLIBC = @LTLIBC@
LTLIBCROCO = @LTLIBCROCO@
-LTLIBEXPAT = @LTLIBEXPAT@
LTLIBGLIB = @LTLIBGLIB@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
@@ -1404,6 +1735,7 @@ LTLIBTERMINFO = @LTLIBTERMINFO@
LTLIBTHREAD = @LTLIBTHREAD@
LTLIBUNISTRING = @LTLIBUNISTRING@
LTLIBXML = @LTLIBXML@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@@ -1413,6 +1745,7 @@ MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
MSGMERGE_LIBM = @MSGMERGE_LIBM@
+NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
@@ -1422,6 +1755,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
@@ -1440,6 +1774,7 @@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
NEXT_DIRENT_H = @NEXT_DIRENT_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
@@ -1449,6 +1784,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_MATH_H = @NEXT_MATH_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
@@ -1479,12 +1815,14 @@ PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_SUFFIX = @PACKAGE_SUFFIX@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
POSUB = @POSUB@
+POW_LIBM = @POW_LIBM@
PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
PRIPTR_PREFIX = @PRIPTR_PREFIX@
@@ -1503,6 +1841,11 @@ RELOCATABLE_STRIP = @RELOCATABLE_STRIP@
REPLACE_BTOWC = @REPLACE_BTOWC@
REPLACE_CALLOC = @REPLACE_CALLOC@
REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
REPLACE_CHOWN = @REPLACE_CHOWN@
REPLACE_CLOSE = @REPLACE_CLOSE@
REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
@@ -1511,16 +1854,33 @@ REPLACE_DPRINTF = @REPLACE_DPRINTF@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
+REPLACE_FREXPL = @REPLACE_FREXPL@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_FSTAT = @REPLACE_FSTAT@
@@ -1539,19 +1899,44 @@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
+REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_ISINF = @REPLACE_ISINF@
+REPLACE_ISNAN = @REPLACE_ISNAN@
REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_ITOLD = @REPLACE_ITOLD@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
REPLACE_MALLOC = @REPLACE_MALLOC@
@@ -1569,6 +1954,10 @@ REPLACE_MKFIFO = @REPLACE_MKFIFO@
REPLACE_MKNOD = @REPLACE_MKNOD@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
+REPLACE_NAN = @REPLACE_NAN@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
@@ -1598,16 +1987,25 @@ REPLACE_READLINK = @REPLACE_READLINK@
REPLACE_READLINKAT = @REPLACE_READLINKAT@
REPLACE_REALLOC = @REPLACE_REALLOC@
REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
REPLACE_REMOVE = @REPLACE_REMOVE@
REPLACE_RENAME = @REPLACE_RENAME@
REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
REPLACE_SELECT = @REPLACE_SELECT@
REPLACE_SETENV = @REPLACE_SETENV@
REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
REPLACE_STAT = @REPLACE_STAT@
REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
@@ -1633,6 +2031,9 @@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_TMPFILE = @REPLACE_TMPFILE@
REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
+REPLACE_TRUNCL = @REPLACE_TRUNCL@
REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
REPLACE_UNLINK = @REPLACE_UNLINK@
REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -1659,6 +2060,7 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
@@ -1673,6 +2075,7 @@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
USE_ACL = @USE_ACL@
@@ -1771,135 +2174,11 @@ EXTRA_DIST = init.sh init.cfg $(TESTS) test.mo overflow-1.mo \
mm-ko.euc-kr.po mm-ko-comp.euc-kr.po mm-viet.comp.po \
mm-viet.pot mm-viet.out msguniq-a.in msguniq-a.inp \
msguniq-a.out qttest_pl.po qttest_pl.qm qttest2_de.po \
- qttest2_de.qm qttest2_de.ts ChangeLog.0 gettext-3-1.po \
- gettext-3-2.po gettext-4.po gettext-5.po gettext-6-1.po \
- gettext-6-2.po gettext-7.po gettextpo-1.de.po xgettext-1 \
- xgettext-c-1
+ qttest2_de.qm qttest2_de.ts gettext-3-1.po gettext-3-2.po \
+ gettext-4.po gettext-5.po gettext-6-1.po gettext-6-2.po \
+ gettext-7.po gettextpo-1.de.po xgettext-1 xgettext-c-1 \
+ xg-c-21.c common/supplemental/plurals.xml
MOSTLYCLEANFILES = core *.stackdump
-TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
- gettext-8 \
- msgattrib-1 msgattrib-2 msgattrib-3 msgattrib-4 msgattrib-5 \
- msgattrib-6 msgattrib-7 msgattrib-8 msgattrib-9 msgattrib-10 \
- msgattrib-11 msgattrib-12 msgattrib-13 msgattrib-14 msgattrib-15 \
- msgattrib-16 msgattrib-17 msgattrib-18 msgattrib-19 \
- msgattrib-properties-1 \
- msgcat-1 msgcat-2 msgcat-3 msgcat-4 msgcat-5 msgcat-6 msgcat-7 \
- msgcat-8 msgcat-9 msgcat-10 msgcat-11 msgcat-12 msgcat-13 msgcat-14 \
- msgcat-15 msgcat-16 msgcat-17 msgcat-18 msgcat-19 msgcat-20 \
- msgcat-properties-1 msgcat-properties-2 \
- msgcat-stringtable-1 \
- msgcmp-1 msgcmp-2 msgcmp-3 msgcmp-4 \
- msgcomm-1 msgcomm-2 msgcomm-3 msgcomm-4 msgcomm-5 msgcomm-6 msgcomm-7 \
- msgcomm-8 msgcomm-9 msgcomm-10 msgcomm-11 msgcomm-12 msgcomm-13 \
- msgcomm-14 msgcomm-15 msgcomm-16 msgcomm-17 msgcomm-18 msgcomm-19 \
- msgcomm-20 msgcomm-21 msgcomm-22 msgcomm-23 msgcomm-24 msgcomm-25 \
- msgcomm-26 msgcomm-27 msgcomm-28 \
- msgconv-1 msgconv-2 msgconv-3 msgconv-4 msgconv-5 msgconv-6 msgconv-7 \
- msgen-1 msgen-2 msgen-3 msgen-4 \
- msgexec-1 msgexec-2 msgexec-3 msgexec-4 msgexec-5 \
- msgfilter-1 msgfilter-2 msgfilter-3 msgfilter-4 msgfilter-5 \
- msgfilter-6 msgfilter-7 \
- msgfilter-sr-latin-1 msgfilter-quote-1 \
- msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
- msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 msgfmt-14 \
- msgfmt-15 msgfmt-16 msgfmt-17 msgfmt-18 \
- msgfmt-properties-1 \
- msgfmt-qt-1 msgfmt-qt-2 \
- msgfmt-desktop-1 msgfmt-desktop-2 \
- msggrep-1 msggrep-2 msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 \
- msggrep-8 msggrep-9 msggrep-10 msggrep-11 \
- msginit-1 msginit-2 msginit-3 \
- msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 msgmerge-5 msgmerge-6 \
- msgmerge-7 msgmerge-8 msgmerge-9 msgmerge-10 msgmerge-11 msgmerge-12 \
- msgmerge-13 msgmerge-14 msgmerge-15 msgmerge-16 msgmerge-17 \
- msgmerge-18 msgmerge-19 msgmerge-20 msgmerge-21 msgmerge-22 \
- msgmerge-23 msgmerge-24 msgmerge-25 \
- msgmerge-compendium-1 msgmerge-compendium-2 msgmerge-compendium-3 \
- msgmerge-compendium-4 msgmerge-compendium-5 msgmerge-compendium-6 \
- msgmerge-properties-1 msgmerge-properties-2 \
- msgmerge-update-1 msgmerge-update-2 msgmerge-update-3 \
- msgmerge-update-4 \
- msgunfmt-1 msgunfmt-2 msgunfmt-3 \
- msgunfmt-csharp-1 \
- msgunfmt-java-1 \
- msgunfmt-properties-1 \
- msgunfmt-tcl-1 \
- msguniq-1 msguniq-2 msguniq-3 msguniq-4 msguniq-5 msguniq-6 msguniq-7 \
- recode-sr-latin-1 recode-sr-latin-2 \
- xgettext-2 xgettext-3 xgettext-4 xgettext-5 xgettext-6 \
- xgettext-7 xgettext-8 xgettext-9 xgettext-10 xgettext-11 xgettext-12 \
- xgettext-awk-1 xgettext-awk-2 \
- xgettext-c-2 xgettext-c-3 xgettext-c-4 xgettext-c-5 \
- xgettext-c-6 xgettext-c-7 xgettext-c-8 xgettext-c-9 xgettext-c-10 \
- xgettext-c-11 xgettext-c-12 xgettext-c-13 xgettext-c-14 xgettext-c-15 \
- xgettext-c-16 xgettext-c-17 xgettext-c-18 xgettext-c-19 xgettext-c-20 \
- xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
- xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
- xgettext-csharp-7 xgettext-csharp-8 \
- xgettext-elisp-1 xgettext-elisp-2 \
- xgettext-glade-1 xgettext-glade-2 xgettext-glade-3 xgettext-glade-4 \
- xgettext-glade-5 xgettext-glade-6 xgettext-glade-7 \
- xgettext-java-1 xgettext-java-2 xgettext-java-3 xgettext-java-4 \
- xgettext-java-5 xgettext-java-6 xgettext-java-7 \
- xgettext-librep-1 xgettext-librep-2 \
- xgettext-lisp-1 xgettext-lisp-2 \
- xgettext-objc-1 xgettext-objc-2 \
- xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 xgettext-perl-4 \
- xgettext-perl-5 xgettext-perl-6 xgettext-perl-7 xgettext-perl-8 \
- xgettext-php-1 xgettext-php-2 xgettext-php-3 xgettext-php-4 \
- xgettext-po-1 \
- xgettext-properties-1 \
- xgettext-python-1 xgettext-python-2 xgettext-python-3 \
- xgettext-python-4 \
- xgettext-scheme-1 xgettext-scheme-2 xgettext-scheme-3 \
- xgettext-scheme-4 \
- xgettext-sh-1 xgettext-sh-2 xgettext-sh-3 xgettext-sh-4 xgettext-sh-5 \
- xgettext-sh-6 \
- xgettext-smalltalk-1 xgettext-smalltalk-2 \
- xgettext-stringtable-1 \
- xgettext-tcl-1 xgettext-tcl-2 xgettext-tcl-3 xgettext-tcl-4 \
- xgettext-ycp-1 xgettext-ycp-2 xgettext-ycp-3 xgettext-ycp-4 \
- xgettext-lua-1 xgettext-lua-2 \
- xgettext-javascript-1 xgettext-javascript-2 xgettext-javascript-3 \
- xgettext-javascript-4 xgettext-javascript-5 xgettext-javascript-6 \
- xgettext-vala-1 \
- xgettext-gsettings-1 \
- xgettext-desktop-1 \
- format-awk-1 format-awk-2 \
- format-boost-1 format-boost-2 \
- format-c-1 format-c-2 format-c-3 format-c-4 format-c-5 \
- format-csharp-1 format-csharp-2 \
- format-elisp-1 format-elisp-2 \
- format-gcc-internal-1 format-gcc-internal-2 \
- format-gfc-internal-1 format-gfc-internal-2 \
- format-java-1 format-java-2 \
- format-kde-1 format-kde-2 \
- format-librep-1 format-librep-2 \
- format-lisp-1 format-lisp-2 \
- format-php-1 format-php-2 \
- format-python-1 format-python-2 \
- format-python-brace-1 format-python-brace-2 \
- format-pascal-1 format-pascal-2 \
- format-perl-1 format-perl-2 \
- format-perl-brace-1 format-perl-brace-2 \
- format-perl-mixed-1 format-perl-mixed-2 \
- format-qt-1 format-qt-2 \
- format-qt-plural-1 format-qt-plural-2 \
- format-scheme-1 format-scheme-2 \
- format-sh-1 format-sh-2 \
- format-tcl-1 format-tcl-2 \
- format-ycp-1 format-ycp-2 \
- format-lua-1 format-lua-2 \
- format-javascript-1 format-javascript-2 \
- plural-1 plural-2 \
- gettextpo-1 \
- lang-c lang-c++ lang-objc lang-sh lang-bash lang-python-1 \
- lang-python-2 lang-clisp lang-elisp lang-librep lang-guile \
- lang-smalltalk lang-java lang-csharp lang-gawk lang-pascal \
- lang-ycp lang-tcl lang-perl-1 lang-perl-2 lang-php lang-po lang-rst \
- lang-lua lang-javascript lang-vala \
- autopoint-1 autopoint-2 autopoint-3
-
# For debugging memory leaks and memory allocation bugs.
# You should build with --disable-shared when using valgrind.
@@ -1986,6 +2265,9 @@ gettextpo_1_prg_CPPFLAGS = \
# Don't add more libraries here. This test must check whether libgettextpo is
# self contained.
gettextpo_1_prg_LDADD = ../libgettextpo/libgettextpo.la $(LDADD)
+sentence_SOURCES = sentence.c
+sentence_CPPFLAGS = $(AM_CPPFLAGS) -I../src -I$(top_srcdir)/src
+sentence_LDADD = ../src/libgettextsrc.la $(LDADD)
all: all-am
.SUFFIXES:
@@ -2002,7 +2284,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnits tests/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -2023,8 +2304,8 @@ $(am__aclocal_m4_deps):
init-env: $(top_builddir)/config.status $(srcdir)/init-env.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
@@ -2076,6 +2357,10 @@ gettextpo-1-prg$(EXEEXT): $(gettextpo_1_prg_OBJECTS) $(gettextpo_1_prg_DEPENDENC
@rm -f gettextpo-1-prg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(gettextpo_1_prg_OBJECTS) $(gettextpo_1_prg_LDADD) $(LIBS)
+sentence$(EXEEXT): $(sentence_OBJECTS) $(sentence_DEPENDENCIES) $(EXTRA_sentence_DEPENDENCIES)
+ @rm -f sentence$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sentence_OBJECTS) $(sentence_LDADD) $(LIBS)
+
testlocale$(EXEEXT): $(testlocale_OBJECTS) $(testlocale_DEPENDENCIES) $(EXTRA_testlocale_DEPENDENCIES)
@rm -f testlocale$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(testlocale_OBJECTS) $(testlocale_LDADD) $(LIBS)
@@ -2121,6 +2406,12 @@ gettextpo_1_prg-gettextpo-1-prg.o: gettextpo-1-prg.c
gettextpo_1_prg-gettextpo-1-prg.obj: gettextpo-1-prg.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gettextpo_1_prg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gettextpo_1_prg-gettextpo-1-prg.obj `if test -f 'gettextpo-1-prg.c'; then $(CYGPATH_W) 'gettextpo-1-prg.c'; else $(CYGPATH_W) '$(srcdir)/gettextpo-1-prg.c'; fi`
+sentence-sentence.o: sentence.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sentence_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sentence-sentence.o `test -f 'sentence.c' || echo '$(srcdir)/'`sentence.c
+
+sentence-sentence.obj: sentence.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sentence_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sentence-sentence.obj `if test -f 'sentence.c'; then $(CYGPATH_W) 'sentence.c'; else $(CYGPATH_W) '$(srcdir)/sentence.c'; fi`
+
tstgettext-tstgettext.o: tstgettext.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstgettext_CFLAGS) $(CFLAGS) -c -o tstgettext-tstgettext.o `test -f 'tstgettext.c' || echo '$(srcdir)/'`tstgettext.c
@@ -2233,7 +2524,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
if test -n "$$am__remaking_logs"; then \
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
"recursion detected" >&2; \
- else \
+ elif test -n "$$redo_logs"; then \
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
fi; \
if $(am__make_dryrun); then :; else \
@@ -2333,7 +2624,7 @@ check-TESTS:
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
exit $$?;
-recheck: all
+recheck: all $(check_PROGRAMS)
@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 \
@@ -3037,6 +3328,13 @@ msgexec-5.log: msgexec-5
--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)
+msgexec-6.log: msgexec-6
+ @p='msgexec-6'; \
+ b='msgexec-6'; \
+ $(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)
msgfilter-1.log: msgfilter-1
@p='msgfilter-1'; \
b='msgfilter-1'; \
@@ -3086,6 +3384,13 @@ msgfilter-7.log: msgfilter-7
--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)
+msgfilter-8.log: msgfilter-8
+ @p='msgfilter-8'; \
+ b='msgfilter-8'; \
+ $(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)
msgfilter-sr-latin-1.log: msgfilter-sr-latin-1
@p='msgfilter-sr-latin-1'; \
b='msgfilter-sr-latin-1'; \
@@ -3261,6 +3566,20 @@ msgfmt-desktop-2.log: msgfmt-desktop-2
--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)
+msgfmt-xml-1.log: msgfmt-xml-1
+ @p='msgfmt-xml-1'; \
+ b='msgfmt-xml-1'; \
+ $(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)
+msgfmt-xml-2.log: msgfmt-xml-2
+ @p='msgfmt-xml-2'; \
+ b='msgfmt-xml-2'; \
+ $(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)
msggrep-1.log: msggrep-1
@p='msggrep-1'; \
b='msggrep-1'; \
@@ -3359,6 +3678,13 @@ msginit-3.log: msginit-3
--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)
+msginit-4.log: msginit-4
+ @p='msginit-4'; \
+ b='msginit-4'; \
+ $(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)
msgmerge-1.log: msgmerge-1
@p='msgmerge-1'; \
b='msgmerge-1'; \
@@ -3807,6 +4133,27 @@ xgettext-12.log: xgettext-12
--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)
+xgettext-13.log: xgettext-13
+ @p='xgettext-13'; \
+ b='xgettext-13'; \
+ $(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)
+xgettext-14.log: xgettext-14
+ @p='xgettext-14'; \
+ b='xgettext-14'; \
+ $(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)
+xgettext-appdata-1.log: xgettext-appdata-1
+ @p='xgettext-appdata-1'; \
+ b='xgettext-appdata-1'; \
+ $(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)
xgettext-awk-1.log: xgettext-awk-1
@p='xgettext-awk-1'; \
b='xgettext-awk-1'; \
@@ -3954,6 +4301,13 @@ xgettext-c-20.log: xgettext-c-20
--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)
+xgettext-c-21.log: xgettext-c-21
+ @p='xgettext-c-21'; \
+ b='xgettext-c-21'; \
+ $(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)
xgettext-csharp-1.log: xgettext-csharp-1
@p='xgettext-csharp-1'; \
b='xgettext-csharp-1'; \
@@ -4514,6 +4868,13 @@ xgettext-desktop-1.log: xgettext-desktop-1
--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)
+xgettext-its-1.log: xgettext-its-1
+ @p='xgettext-its-1'; \
+ b='xgettext-its-1'; \
+ $(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)
format-awk-1.log: format-awk-1
@p='format-awk-1'; \
b='format-awk-1'; \
@@ -4661,6 +5022,20 @@ format-kde-2.log: format-kde-2
--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)
+format-kde-kuit-1.log: format-kde-kuit-1
+ @p='format-kde-kuit-1'; \
+ b='format-kde-kuit-1'; \
+ $(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)
+format-kde-kuit-2.log: format-kde-kuit-2
+ @p='format-kde-kuit-2'; \
+ b='format-kde-kuit-2'; \
+ $(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)
format-librep-1.log: format-librep-1
@p='format-librep-1'; \
b='format-librep-1'; \
@@ -4920,6 +5295,13 @@ gettextpo-1.log: gettextpo-1
--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)
+sentence.log: sentence$(EXEEXT)
+ @p='sentence$(EXEEXT)'; \
+ b='sentence'; \
+ $(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)
lang-c.log: lang-c
@p='lang-c'; \
b='lang-c'; \
@@ -5123,6 +5505,13 @@ autopoint-3.log: autopoint-3
--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)
+cldr-plurals-1.log: cldr-plurals-1
+ @p='cldr-plurals-1'; \
+ b='cldr-plurals-1'; \
+ $(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); \
@@ -5169,9 +5558,10 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
@@ -5209,7 +5599,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
mostlyclean-am
distclean: distclean-am
@@ -5279,7 +5669,7 @@ uninstall-am:
.MAKE: check-am install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
- clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+ clean-checkPROGRAMS clean-generic clean-libtool clean-local \
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 \
@@ -5292,6 +5682,8 @@ uninstall-am:
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
recheck tags tags-am uninstall uninstall-am
+.PRECIOUS: Makefile
+
# Update the expected test results.
update-expected: xg-c-1.ok.po
diff --git a/gettext-tools/tests/autopoint-2 b/gettext-tools/tests/autopoint-2
index 7820706..740937a 100755
--- a/gettext-tools/tests/autopoint-2
+++ b/gettext-tools/tests/autopoint-2
@@ -3,8 +3,6 @@
# Test the autopoint program, without Automake.
-required_gettext_version=0.19.4
-
: ${AUTOCONF=autoconf}
${AUTOCONF} --version >/dev/null 2>/dev/null \
|| { echo "Skipping test: autoconf not found"; exit 77; }
@@ -29,7 +27,7 @@ AC_CONFIG_AUX_DIR([build-aux])
AC_PROG_CC
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
@@ -57,7 +55,7 @@ AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
@@ -84,7 +82,7 @@ AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
# first macro directory, in which po.m4, etc. belong
AC_CONFIG_MACRO_DIR([gettext-m4])
@@ -118,7 +116,7 @@ AC_CONFIG_SRCDIR(hello.c)
AC_PROG_CC
AM_GNU_GETTEXT([external], [need-formatstring-macros])
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
@@ -150,7 +148,7 @@ _gt_recurse([a], [b], , [c])
AC_PROG_CC
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([po/Makefile.in])
@@ -168,3 +166,63 @@ test -f m4/po.m4 || exit 1
test -f po/Makefile.in.in || exit 1
rm -fr m4 po
+
+# Check for AM_GNU_GETTEXT_REQUIRE_VERSION.
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
+AM_GNU_GETTEXT([external])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test ! -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+# Check for the case where both AM_GNU_GETTEXT_REQUIRE_VERSION and
+# AM_GNU_GETTEXT_VERSION are used.
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+AM_GNU_GETTEXT
+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
+# This shall be ignored when AM_GNU_GETTEXT_REQUIRE_VERSION is defined
+AM_GNU_GETTEXT_VERSION([0.19])
+
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >autopoint.out 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+grep 'using AM_GNU_GETTEXT_REQUIRE_VERSION' autopoint.out 2>&1 >/dev/null || exit 1
+
+test -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+cat >autopoint.ver <<EOF
+GNU gettext library from gettext-$ARCHIVE_VERSION
+EOF
+: ${DIFF=diff}
+${DIFF} autopoint.ver intl/VERSION || exit 1
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3
index c128b4d..c0f468c 100755
--- a/gettext-tools/tests/autopoint-3
+++ b/gettext-tools/tests/autopoint-3
@@ -3,8 +3,6 @@
# Test the autopoint program, with Automake.
-required_gettext_version=0.19.4
-
: ${AUTOCONF=autoconf}
${AUTOCONF} --version >/dev/null 2>/dev/null \
|| { echo "Skipping test: autoconf not found"; exit 77; }
@@ -61,7 +59,7 @@ AC_CONFIG_MACRO_DIR([m4])
AC_PROG_CC
AM_GNU_GETTEXT([use-libtool])
-AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+AM_GNU_GETTEXT_VERSION([$ARCHIVE_VERSION])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile])
@@ -132,18 +130,6 @@ test $? = 0 || { cat autopoint.err; exit 1; }
${CONFIG_SHELL} ./configure --with-included-gettext >/dev/null 2>autpoint.err
test $? = 0 || { cat autopoint.err; exit 1; }
-# Workaround for 0.18.3 or earlier: Processing intl/plural.y with
-# Bison 3.0.1 or later generates a wrong code. Use pre-generated
-# intl/plural.c in that case.
-test -f intl/plural.c && touch intl/plural.c
-
-# Workaround for a bug in 0.19 and 0.19.1: ChangeLog is missing in the archive.
-case "$required_gettext_version" in
- 0.19 | 0.19.1)
- test -f intl/ChangeLog || : > intl/ChangeLog
- ;;
-esac
-
${MAKE} >/dev/null 2>autopoint.err
test $? = 0 || { cat autopoint.err; exit 1; }
diff --git a/gettext-tools/tests/cldr-plurals-1 b/gettext-tools/tests/cldr-plurals-1
new file mode 100755
index 0000000..e593812
--- /dev/null
+++ b/gettext-tools/tests/cldr-plurals-1
@@ -0,0 +1,59 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+: ${DIFF=diff}
+
+# Test conversion from CLDR to gettext, for Arabic and Russian
+
+LC_ALL=C "$top_builddir/src/cldr-plurals" ru /dev/null 2>&1 | grep 'extraction is not supported' > /dev/null 2>&1
+test $? = 0 && {
+ echo "Skipping test: cldr-plurals was built without XML support"
+ exit 77
+}
+
+cat > ar.ok <<\EOF
+nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);
+EOF
+
+"$top_builddir/src/cldr-plurals" > ar.out <<\EOF
+zero: n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000; one: n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000; two: n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000; few: n % 100 = 3..10 @integer 3~10, 103~110, 1003, … @decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …; many: n % 100 = 11..99 @integer 11~26, 111, 1011, … @decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …; other: @integer 100~102, 200~202, 300~302, 400~402, 500~502, 600, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
+EOF
+
+${DIFF} ar.ok ar.out || exit 1
+
+cat > ru.ok <<\EOF
+nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);
+EOF
+
+"$top_builddir/src/cldr-plurals" > ru.out <<\EOF
+one: v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …; few: v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …; many: v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …; other: @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
+EOF
+
+${DIFF} ru.ok ru.out || exit 1
+
+# Test extraction from CLDR
+
+cat > foo.in <<\EOF
+<supplementalData>
+ <plurals type="cardinal">
+ <pluralRules locales="foo">
+ <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
+ <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+ </pluralRules>
+ </plurals>
+</supplementalData>
+EOF
+
+"$top_builddir/src/cldr-plurals" foo foo.in > foo.out
+cat > foo.ok <<\EOF
+nplurals=2; plural=(n != 1);
+EOF
+${DIFF} foo.ok foo.out || exit 1
+
+"$top_builddir/src/cldr-plurals" -c foo foo.in > foo.cldr.out
+cat > foo.cldr.ok <<\EOF
+one: i = 1 and v = 0 @integer 1; other: @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
+EOF
+${DIFF} foo.cldr.ok foo.cldr.out || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/common/supplemental/plurals.xml b/gettext-tools/tests/common/supplemental/plurals.xml
new file mode 100644
index 0000000..3a987fe
--- /dev/null
+++ b/gettext-tools/tests/common/supplemental/plurals.xml
@@ -0,0 +1,10 @@
+<supplementalData>
+ <plurals type="cardinal">
+ <pluralRules locales="foo">
+ <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …</pluralRule>
+ <pluralRule count="few">v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …</pluralRule>
+ <pluralRule count="many">v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
+ <pluralRule count="other"> @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+ </pluralRules>
+ </plurals>
+</supplementalData>
diff --git a/gettext-tools/tests/format-c-3-prg.c b/gettext-tools/tests/format-c-3-prg.c
index dac0d26..b1239cf 100644
--- a/gettext-tools/tests/format-c-3-prg.c
+++ b/gettext-tools/tests/format-c-3-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the format-c-3 test.
- Copyright (C) 2002, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009, 2015 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
diff --git a/gettext-tools/tests/format-c-4-prg.c b/gettext-tools/tests/format-c-4-prg.c
index 78f014b..47cfb2e 100644
--- a/gettext-tools/tests/format-c-4-prg.c
+++ b/gettext-tools/tests/format-c-4-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the format-c-4 test.
- Copyright (C) 2002, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009, 2015 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
diff --git a/gettext-tools/tests/format-c-5-prg.c b/gettext-tools/tests/format-c-5-prg.c
index 942320b..f3529eb 100644
--- a/gettext-tools/tests/format-c-5-prg.c
+++ b/gettext-tools/tests/format-c-5-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the format-c-5 test.
- Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006, 2010, 2015 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
diff --git a/gettext-tools/tests/format-kde-kuit-1 b/gettext-tools/tests/format-kde-kuit-1
new file mode 100755
index 0000000..aeaa743
--- /dev/null
+++ b/gettext-tools/tests/format-kde-kuit-1
@@ -0,0 +1,72 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of KUIT format strings.
+
+: ${XGETTEXT=xgettext}
+
+cat <<\EOF > f-kd-invalid.cpp
+xi18n("<invalid>");
+EOF
+
+LC_ALL=C ${XGETTEXT} -L C++ --kde --flag=xi18n:1:kde-kuit-format -o - f-kd-invalid.cpp 2>&1 | grep 'not a valid KDE KUIT format' > /dev/null 2>&1
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without KDE KUIT format support"
+ exit 77
+}
+
+cat <<\EOF > f-kd-1.data
+# Unrecognized: unbalanced filename tag
+"<filename>a"
+# Unrecognized: unbalanced filename tag
+"<filename>%1"
+# Unrecognized: unbalanced filename tag
+"<filename>%1</xfilename>"
+# Valid: one argument
+"<filename>%1</filename>"
+# Valid: accelerator
+"<command>&Application.About</command>"
+# Valid: accelerator at the end
+"<command>About</command>&A"
+# Valid: accelerator
+"<command>&/</command>"
+# Valid: entity reference
+"<command>&amp;About</command>"
+# Valid: character reference
+"<command>&#x2A;&#x2a;&#x61;&#141;</command>"
+EOF
+
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-kd-1-$n.in
+xi18n(${string});
+EOF
+ ${XGETTEXT} -L C++ --kde --flag=xi18n:1:kde-kuit-format --flag=i18n:1:kde-format -kxi18n -ki18n -o f-kd-1-$n.po f-kd-1-$n.in || exit 1
+ test -f f-kd-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep kde-kuit-format f-kd-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep kde-kuit-format f-kd-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-kd-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-kd-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-kd-1-$n.in f-kd-1-$n.po
+done < f-kd-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-kde-kuit-2 b/gettext-tools/tests/format-kde-kuit-2
new file mode 100755
index 0000000..0634b62
--- /dev/null
+++ b/gettext-tools/tests/format-kde-kuit-2
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of KDE KUIT format strings.
+
+cat <<\EOF > f-kd-invalid.po
+#, kde-kuit-format
+msgid "foo"
+msgstr "<"
+EOF
+
+: ${MSGFMT=msgfmt}
+
+LC_ALL=C ${MSGFMT} --check-format -o /dev/null f-kd-invalid.po 2>&1 | grep 'not a valid KDE KUIT format' > /dev/null 2>&1
+test $? = 0 || {
+ echo "Skipping test: msgfmt was built without KDE KUIT format support"
+ exit 77
+}
+
+cat <<\EOF > f-kd-2.data
+# Valid: one argument
+msgid "<filename>%1</filename>"
+msgstr "<filename>%1</filename>"
+# Invalid: missing argument
+msgid "<filename>%1</filename>"
+msgstr "<filename>foo</filename>"
+# Valid: change the text
+msgid "<filename>foo</filename>"
+msgstr "<filename>bar</filename>"
+# Invalid: unbalanced tag
+msgid "<filename>foo</filename>"
+msgstr "<filename>bar"
+# Invalid: unbalanced tag
+msgid "<filename>foo</filename>"
+msgstr "<filename>bar</xfilename>"
+# Valid: replaced tag
+msgid "<filename>foo</filename>"
+msgstr "<foo>foo</foo>"
+# Valid: accelerator
+msgid "<filename>&foo</filename>"
+msgstr "<foo>&foo</foo>"
+# Valid: entity reference
+msgid "<filename>foo</filename>"
+msgstr "<foo>&amp;</foo>"
+EOF
+
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-kd-2-$n.po
+#, kde-kuit-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-kd-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-kd-2-$n.po f-kd-2-$n.mo
+done < f-kd-2.data
+
+exit 0
diff --git a/gettext-tools/tests/gettext-3-prg.c b/gettext-tools/tests/gettext-3-prg.c
index a51ea34..395b401 100644
--- a/gettext-tools/tests/gettext-3-prg.c
+++ b/gettext-tools/tests/gettext-3-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the gettext-3 test.
- Copyright (C) 2000, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2005, 2007, 2015 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
diff --git a/gettext-tools/tests/gettext-4-prg.c b/gettext-tools/tests/gettext-4-prg.c
index 01734ce..0dfc043 100644
--- a/gettext-tools/tests/gettext-4-prg.c
+++ b/gettext-tools/tests/gettext-4-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the gettext-4 test.
- Copyright (C) 2001, 2005-2006 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005-2006, 2015 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
diff --git a/gettext-tools/tests/gettext-5-prg.c b/gettext-tools/tests/gettext-5-prg.c
index 0f28fbd..db1f9cf 100644
--- a/gettext-tools/tests/gettext-5-prg.c
+++ b/gettext-tools/tests/gettext-5-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the gettext-5 test.
- Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2015 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
diff --git a/gettext-tools/tests/gettext-6-prg.c b/gettext-tools/tests/gettext-6-prg.c
index 01ed60c..e2148c9 100644
--- a/gettext-tools/tests/gettext-6-prg.c
+++ b/gettext-tools/tests/gettext-6-prg.c
@@ -1,5 +1,6 @@
/* Test program, used by the gettext-6 test.
- Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007, 2009-2010, 2015 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
diff --git a/gettext-tools/tests/gettext-7-prg.c b/gettext-tools/tests/gettext-7-prg.c
index 437de64..6a6146b 100644
--- a/gettext-tools/tests/gettext-7-prg.c
+++ b/gettext-tools/tests/gettext-7-prg.c
@@ -1,5 +1,6 @@
/* Test program, used by the gettext-7 test.
- Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007, 2009-2010, 2015 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
diff --git a/gettext-tools/tests/gettext-8-prg.c b/gettext-tools/tests/gettext-8-prg.c
index 7edd016..22b6b03 100644
--- a/gettext-tools/tests/gettext-8-prg.c
+++ b/gettext-tools/tests/gettext-8-prg.c
@@ -1,5 +1,5 @@
/* Test that gettext() does not crash by stack overflow when msgid is very long.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2015 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
diff --git a/gettext-tools/tests/gettextpo-1-prg.c b/gettext-tools/tests/gettextpo-1-prg.c
index 9ff6e10..ef53441 100644
--- a/gettext-tools/tests/gettextpo-1-prg.c
+++ b/gettext-tools/tests/gettextpo-1-prg.c
@@ -1,5 +1,5 @@
/* Test of public API for GNU gettext PO files.
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2010.
This program is free software: you can redistribute it and/or modify
diff --git a/gettext-tools/tests/init-env.in b/gettext-tools/tests/init-env.in
index fa428f9..5d5bb89 100644
--- a/gettext-tools/tests/init-env.in
+++ b/gettext-tools/tests/init-env.in
@@ -1,6 +1,10 @@
# Variable needed by LTLIBINTL.
top_builddir=../..
+# Variable needed by xgettext.
+GETTEXTDATADIR="$abs_top_srcdir"
+export GETTEXTDATADIR
+
OBJEXT="@OBJEXT@"
EXEEXT="@EXEEXT@"
CC="@CC@"
@@ -22,6 +26,7 @@ LOCALE_FR="@LOCALE_FR@"
LOCALE_FR_UTF8="@LOCALE_FR_UTF8@"
LOCALE_JA="@LOCALE_JA@"
host_os="@host_os@"
+ARCHIVE_VERSION="@ARCHIVE_VERSION@"
: ${GETTEXT=tstgettext}
: ${NGETTEXT=tstngettext}
diff --git a/gettext-tools/tests/init.sh b/gettext-tools/tests/init.sh
index fbd293d..d366206 100644
--- a/gettext-tools/tests/init.sh
+++ b/gettext-tools/tests/init.sh
@@ -1,6 +1,6 @@
# source this file; set up for tests
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 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
@@ -93,6 +93,27 @@ skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
+# This is used to simplify checking of the return value
+# which is useful when ensuring a command fails as desired.
+# I.e., just doing `command ... &&fail=1` will not catch
+# a segfault in command for example. With this helper you
+# instead check an explicit exit code like
+# returns_ 1 command ... || fail
+returns_ () {
+ # Disable tracing so it doesn't interfere with stderr of the wrapped command
+ { set +x; } 2>/dev/null
+
+ local exp_exit="$1"
+ shift
+ "$@"
+ test $? -eq $exp_exit && ret_=0 || ret_=1
+
+ if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then
+ set -x
+ fi
+ { return $ret_; } 2>/dev/null
+}
+
# Sanitize this shell to POSIX mode, if possible.
DUALCASE=1; export DUALCASE
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -129,6 +150,7 @@ fi
# ? - not ok
gl_shell_test_script_='
test $(echo y) = y || exit 1
+f_local_() { local v=1; }; f_local_ || exit 1
score_=10
if test "$VERBOSE" = yes; then
test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
diff --git a/gettext-tools/tests/lang-bash b/gettext-tools/tests/lang-bash
index f2e0e3b..7c74651 100755
--- a/gettext-tools/tests/lang-bash
+++ b/gettext-tools/tests/lang-bash
@@ -116,6 +116,19 @@ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
exit 77
fi
+case "$host_os" in
+ darwin*)
+ if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR bash --help \
+ | grep '^Utilisation' > /dev/null 2>&1 || exit 77
+ fi
+ if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 bash --help \
+ | grep '^Utilisation' > /dev/null 2>&1 || exit 77
+ fi
+ ;;
+esac
+
# Expected result when bash is built without i18n support.
cat <<\EOF > prog.nok
'Your command, please?', asked the waiter.
diff --git a/gettext-tools/tests/mm-ko.euc-kr.po b/gettext-tools/tests/mm-ko.euc-kr.po
index 45d2e4b..1962130 100644
--- a/gettext-tools/tests/mm-ko.euc-kr.po
+++ b/gettext-tools/tests/mm-ko.euc-kr.po
@@ -1,5 +1,5 @@
# Korean translation for dia
-# Copyright (C) 2000 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2015 Free Software Foundation, Inc.
# Young-Ho,Cha <ganadist@dacome.co.kr>, 2000.
#: app/sheets.c:453
msgid ""
diff --git a/gettext-tools/tests/mm-viet.out b/gettext-tools/tests/mm-viet.out
index f57688b..9e510df 100644
--- a/gettext-tools/tests/mm-viet.out
+++ b/gettext-tools/tests/mm-viet.out
@@ -3034,8 +3034,8 @@ msgstr "_Ngôn ngữ"
#. i18n: file data/abc.xml line 5
#: rc.cpp:46 rc.cpp:58 rc.cpp:106 rc.cpp:118 rc.cpp:146 rc.cpp:154 rc.cpp:158
-#: rc.cpp:166 rc.cpp:182 rc.cpp:286 rc.cpp:306 rc.cpp:314 rc.cpp:338
-#: rc.cpp:382 rc.cpp:410 rc.cpp:414
+#: rc.cpp:166 rc.cpp:182 rc.cpp:286 rc.cpp:306 rc.cpp:314 rc.cpp:338 rc.cpp:382
+#: rc.cpp:410 rc.cpp:414
msgid ""
"_: Language Section\n"
"Other"
@@ -3051,11 +3051,11 @@ msgstr "_Ngôn ngữ"
#. i18n: file data/ada.xml line 3
#: rc.cpp:50 rc.cpp:62 rc.cpp:94 rc.cpp:98 rc.cpp:102 rc.cpp:114 rc.cpp:130
-#: rc.cpp:134 rc.cpp:138 rc.cpp:150 rc.cpp:174 rc.cpp:178 rc.cpp:202
-#: rc.cpp:218 rc.cpp:226 rc.cpp:238 rc.cpp:242 rc.cpp:246 rc.cpp:254
-#: rc.cpp:270 rc.cpp:282 rc.cpp:290 rc.cpp:294 rc.cpp:298 rc.cpp:334
-#: rc.cpp:346 rc.cpp:350 rc.cpp:358 rc.cpp:390 rc.cpp:394 rc.cpp:418
-#: rc.cpp:426 rc.cpp:446 rc.cpp:466 rc.cpp:506 rc.cpp:522 rc.cpp:526
+#: rc.cpp:134 rc.cpp:138 rc.cpp:150 rc.cpp:174 rc.cpp:178 rc.cpp:202 rc.cpp:218
+#: rc.cpp:226 rc.cpp:238 rc.cpp:242 rc.cpp:246 rc.cpp:254 rc.cpp:270 rc.cpp:282
+#: rc.cpp:290 rc.cpp:294 rc.cpp:298 rc.cpp:334 rc.cpp:346 rc.cpp:350 rc.cpp:358
+#: rc.cpp:390 rc.cpp:394 rc.cpp:418 rc.cpp:426 rc.cpp:446 rc.cpp:466 rc.cpp:506
+#: rc.cpp:522 rc.cpp:526
msgid ""
"_: Language Section\n"
"Sources"
@@ -3141,8 +3141,8 @@ msgstr "_Ngôn ngữ"
#. i18n: file data/asp.xml line 3
#: rc.cpp:78 rc.cpp:90 rc.cpp:122 rc.cpp:142 rc.cpp:170 rc.cpp:214 rc.cpp:230
-#: rc.cpp:258 rc.cpp:266 rc.cpp:274 rc.cpp:310 rc.cpp:326 rc.cpp:378
-#: rc.cpp:438 rc.cpp:478 rc.cpp:498 rc.cpp:510 rc.cpp:514 rc.cpp:518
+#: rc.cpp:258 rc.cpp:266 rc.cpp:274 rc.cpp:310 rc.cpp:326 rc.cpp:378 rc.cpp:438
+#: rc.cpp:478 rc.cpp:498 rc.cpp:510 rc.cpp:514 rc.cpp:518
msgid ""
"_: Language Section\n"
"Markup"
@@ -3158,9 +3158,8 @@ msgstr "_Ngôn ngữ"
#. i18n: file data/awk.xml line 3
#: rc.cpp:82 rc.cpp:86 rc.cpp:126 rc.cpp:186 rc.cpp:190 rc.cpp:234 rc.cpp:262
-#: rc.cpp:302 rc.cpp:318 rc.cpp:362 rc.cpp:366 rc.cpp:374 rc.cpp:398
-#: rc.cpp:402 rc.cpp:406 rc.cpp:422 rc.cpp:430 rc.cpp:442 rc.cpp:470
-#: rc.cpp:482 rc.cpp:486
+#: rc.cpp:302 rc.cpp:318 rc.cpp:362 rc.cpp:366 rc.cpp:374 rc.cpp:398 rc.cpp:402
+#: rc.cpp:406 rc.cpp:422 rc.cpp:430 rc.cpp:442 rc.cpp:470 rc.cpp:482 rc.cpp:486
msgid ""
"_: Language Section\n"
"Scripts"
@@ -3385,8 +3384,7 @@ msgid ""
msgstr "_Ngôn ngữ"
#. i18n: file data/fgl-4gl.xml line 3
-#: rc.cpp:194 rc.cpp:198 rc.cpp:278 rc.cpp:386 rc.cpp:454 rc.cpp:458
-#: rc.cpp:462
+#: rc.cpp:194 rc.cpp:198 rc.cpp:278 rc.cpp:386 rc.cpp:454 rc.cpp:458 rc.cpp:462
msgid ""
"_: Language Section\n"
"Database"
diff --git a/gettext-tools/tests/msgexec-6 b/gettext-tools/tests/msgexec-6
new file mode 100755
index 0000000..acea8bc
--- /dev/null
+++ b/gettext-tools/tests/msgexec-6
@@ -0,0 +1,143 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --newline option.
+
+cat <<\EOF > mex-test6.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe\n"
+#~ "heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+cat <<\EOF > mex-test6.sh
+#! /bin/sh
+echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
+cat <<MEOF
+$MSGEXEC_MSGID
+---
+MEOF
+cat
+echo | LC_ALL=C tr -d '\r'
+exit 0
+EOF
+chmod a+x mex-test6.sh
+
+: ${MSGEXEC=msgexec}
+LC_ALL=C \
+${MSGEXEC} --newline -i mex-test6.po ./mex-test6.sh > mex-test6.out 2> mex-test6.err
+result=$?
+cat mex-test6.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mex-test6.ok
+========================= mex-test6.po:4 =========================
+
+---
+Project-Id-Version: Bonnie Tyler
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+
+
+========================= mex-test6.po:12 =========================
+The world is full of married men
+---
+So viele verheiratete Männer
+
+========================= mex-test6.po:16 =========================
+with wives who never understand
+---
+und ihre Frauen verstehen sie nicht
+
+========================= mex-test6.po:20 =========================
+They're looking for someone to share
+---
+
+
+========================= mex-test6.po:25 =========================
+the excitement of a love affair
+---
+
+
+========================= mex-test6.po:29 =========================
+Just as soon as they find you
+---
+
+
+========================= mex-test6.po:33 =========================
+They warn you and darn you
+---
+
+
+========================= mex-test6.po:36 =========================
+You fly on the wings of romance
+---
+Die Flügel der frischen Liebe
+heben dich zum Himmel
+
+========================= mex-test6.po:41 =========================
+In the eyes of the world
+---
+Für die anderen
+
+========================= mex-test6.po:45 =========================
+You're just another crazy girl
+---
+bist du bloß ein verrücktes dummes Ding
+
+========================= mex-test6.po:48 =========================
+Who loves a married man
+---
+das einen verheirateten Mann liebt
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} mex-test6.ok mex-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-7 b/gettext-tools/tests/msgfilter-7
index 8f4dbae..791441b 100755
--- a/gettext-tools/tests/msgfilter-7
+++ b/gettext-tools/tests/msgfilter-7
@@ -54,9 +54,19 @@ msgstr ""
#~ msgstr "das einen verheirateten Mann liebt"
EOF
+cat <<\EOF > mf-test7.sh
+#! /bin/sh
+
+# Eat up filter input to avoid EPIPE in the parent process.
+cat > /dev/null
+
+echo testing
+EOF
+chmod +x mf-test7.sh
+
: ${MSGFILTER=msgfilter}
LC_ALL=C ${MSGFILTER} -i mfi-test7.po -o mfi-test7.out \
- echo testing >mfi-test7.err 2>&1
+ ./mf-test7.sh >mfi-test7.err 2>&1
result=$?
cat mfi-test7.err | grep -v 'warning: Locale charset' | grep -v '^ '
test $result = 0 || { exit 1; }
diff --git a/gettext-tools/tests/msgfilter-8 b/gettext-tools/tests/msgfilter-8
new file mode 100755
index 0000000..3ffcb5e
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-8
@@ -0,0 +1,164 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --newline option.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+cat <<\EOF > mfi-test8.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+cat <<\EOF > filter.sh
+#!/bin/sh
+cat
+if test "$MSGFILTER_MSGID" = "the excitement of a love affair"; then
+ echo $ac_n "non-terminated line$ac_c"
+else
+ echo terminated line
+fi
+EOF
+
+: ${MSGFILTER=msgfilter}
+: ${CONFIG_SHELL=${SHELL-/bin/sh}}
+LC_ALL=C ${MSGFILTER} --newline -i mfi-test8.po -o mfi-test8.out \
+ ${CONFIG_SHELL} filter.sh >mfi-test8.err 2>&1
+result=$?
+cat mfi-test8.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+cat mfi-test8.err | grep 'msgfilter: filter output is not terminated with a newline' >/dev/null
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test8.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"\n"
+"terminated line"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr ""
+"So viele verheiratete Männer\n"
+"terminated line"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr ""
+"und ihre Frauen verstehen sie nicht\n"
+"terminated line"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+"\n"
+"terminated line"
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+"\n"
+"non-terminated line"
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+"\n"
+"terminated line"
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+"\n"
+"terminated line"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr ""
+#~ "Die Flügel der frischen Liebe heben dich zum Himmel\n"
+#~ "terminated line"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr ""
+#~ "Für die anderen\n"
+#~ "terminated line"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr ""
+#~ "bist du bloß ein verrücktes dummes Ding\n"
+#~ "terminated line"
+
+#~ msgid "Who loves a married man"
+#~ msgstr ""
+#~ "das einen verheirateten Mann liebt\n"
+#~ "terminated line"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test8.ok mfi-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-xml-1 b/gettext-tools/tests/msgfmt-xml-1
new file mode 100755
index 0000000..40e956b
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-xml-1
@@ -0,0 +1,119 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test iterative mode of msgfmt --xml.
+
+cat <<\EOF > mf.appdata.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+cat <<\EOF > fr.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-03-17 07:36+0900\n"
+"PO-Revision-Date: 2014-03-17 08:40+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid ""
+"Characters is a simple utility application to find and insert unusual "
+"characters. It allows you to quickly find the character you are looking for "
+"by searching for keywords."
+msgstr ""
+"Caractères est un utilitaire pour chercher et insérer des caractères "
+"inhabituels. Il vous permet de trouver rapidement le caractère que vous "
+"cherchez par le biais de mots-clés."
+
+msgid ""
+"You can also browse characters by categories, such as Punctuation, Pictures, "
+"etc."
+msgstr ""
+"Vous pouvez aussi naviguer dans les caractères par catégories, comme par "
+"Ponctuation, Images, etc."
+EOF
+
+cat <<\EOF > mf.appdata.xml.ok
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p xml:lang="fr">Caractères est un utilitaire pour chercher et insérer des caractères inhabituels. Il vous permet de trouver rapidement le caractère que vous cherchez par le biais de mots-clés.</p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ <p xml:lang="fr">Vous pouvez aussi naviguer dans les caractères par catégories, comme par Ponctuation, Images, etc.</p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+# Sanity checks for contradicting options.
+
+${MSGFMT} --xml --template=mf.appdata.xml -l fr fr.po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --xml --template=mf.appdata.xml fr.po -o mf.appdata.xml.out \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+# Proceed to the XML file generation.
+
+${MSGFMT} --xml --template=mf.appdata.xml -l fr fr.po -o mf.appdata.xml.out \
+ || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.appdata.xml.ok mf.appdata.xml.out
+result=$?
+test $result = 0 || exit $result
+
+# Test -L option.
+cp mf.appdata.xml mf.xml
+${MSGFMT} --xml --template=mf.xml -L AppData -l fr fr.po -o mf.appdata.xml.out \
+ || exit 1
+${DIFF} mf.appdata.xml.ok mf.appdata.xml.out
+result=$?
+test $result = 0 || exit $result
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-xml-2 b/gettext-tools/tests/msgfmt-xml-2
new file mode 100755
index 0000000..d10d21c
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-xml-2
@@ -0,0 +1,203 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test 'bulk' mode of msgfmt --xml.
+
+cat <<\EOF > mf.appdata.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+test -d po || mkdir po
+
+cat <<\EOF > po/fr.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-03-17 07:36+0900\n"
+"PO-Revision-Date: 2014-03-17 08:40+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid ""
+"Characters is a simple utility application to find and insert unusual "
+"characters. It allows you to quickly find the character you are looking for "
+"by searching for keywords."
+msgstr ""
+"Caractères est un utilitaire pour chercher et insérer des caractères "
+"inhabituels. Il vous permet de trouver rapidement le caractère que vous "
+"cherchez par le biais de mots-clés."
+
+msgid ""
+"You can also browse characters by categories, such as Punctuation, Pictures, "
+"etc."
+msgstr ""
+"Vous pouvez aussi naviguer dans les caractères par catégories, comme par "
+"Ponctuation, Images, etc."
+EOF
+
+cat <<\EOF > po/de.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-03-17 07:36+0900\n"
+"PO-Revision-Date: 2014-03-17 08:40+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid ""
+"Characters is a simple utility application to find and insert unusual "
+"characters. It allows you to quickly find the character you are looking for by "
+"searching for keywords."
+msgstr ""
+"Zeichen ist ein einfaches Hilfsprogramm zum Auffinden und Einsetzen von selten "
+"verwendeten Zeichen. Sie können schnell das gesuchte Zeichen finden, indem Sie "
+"nach Schlüsselwörtern suchen."
+
+msgid ""
+"You can also browse characters by categories, such as Punctuation, Pictures, "
+"etc."
+msgstr ""
+"Sie können ebenfalls nach Kategorie suchen, wie z.B. nach Zeichensetzung oder "
+"Bildern."
+EOF
+
+cat <<\EOF > mf.appdata.xml.ok
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p xml:lang="fr">Caractères est un utilitaire pour chercher et insérer des caractères inhabituels. Il vous permet de trouver rapidement le caractère que vous cherchez par le biais de mots-clés.</p>
+ <p xml:lang="de">Zeichen ist ein einfaches Hilfsprogramm zum Auffinden und Einsetzen von selten verwendeten Zeichen. Sie können schnell das gesuchte Zeichen finden, indem Sie nach Schlüsselwörtern suchen.</p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ <p xml:lang="fr">Vous pouvez aussi naviguer dans les caractères par catégories, comme par Ponctuation, Images, etc.</p>
+ <p xml:lang="de">Sie können ebenfalls nach Kategorie suchen, wie z.B. nach Zeichensetzung oder Bildern.</p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+cat <<\EOF > mf.appdata.xml.desired.ok
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>org.gnome.Characters.desktop</id>
+ <name>GNOME Characters</name>
+ <summary>Character map application</summary>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ Characters is a simple utility application to find and insert
+ unusual characters. It allows you to quickly find the character
+ you are looking for by searching for keywords.
+ </p>
+ <p xml:lang="fr">Caractères est un utilitaire pour chercher et insérer des caractères inhabituels. Il vous permet de trouver rapidement le caractère que vous cherchez par le biais de mots-clés.</p>
+ <p>
+ You can also browse characters by categories, such as
+ Punctuation, Pictures, etc.
+ </p>
+ <p xml:lang="fr">Vous pouvez aussi naviguer dans les caractères par catégories, comme par Ponctuation, Images, etc.</p>
+ </description>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/CharacterMap</url>
+ <updatecontact>dueno_at_src.gnome.org</updatecontact>
+</component>
+EOF
+
+unset LINGUAS
+
+# Sanity checks for contradicting options.
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+test -d po/LINGUAS || mkdir po/LINGUAS
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+rm -fr po/LINGUAS
+
+cat <<\EOF > po/LINGUAS
+de
+fr
+EOF
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out -l fr \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out po/fr.po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+# Proceed to the .desktop file generation.
+
+${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.out || exit 1
+: ${DIFF=diff}
+${DIFF} mf.appdata.xml.ok mf.appdata.xml.out
+test $? = 0 || exit 1
+
+# Restrict the desired languages with the LINGUAS envvar.
+
+LINGUAS="fr ja" ${MSGFMT} --xml --template=mf.appdata.xml -d po -o mf.appdata.xml.desired.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.appdata.xml.desired.ok mf.appdata.xml.desired.out
+test $? = 0 || exit 1
diff --git a/gettext-tools/tests/msginit-4 b/gettext-tools/tests/msginit-4
new file mode 100755
index 0000000..369f152
--- /dev/null
+++ b/gettext-tools/tests/msginit-4
@@ -0,0 +1,85 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test filling Plural-Forms: with Unicode CLDR
+
+LC_ALL=C "$top_builddir/src/cldr-plurals" ru /dev/null 2>&1 | grep 'extraction is not supported' > /dev/null 2>&1
+test $? = 0 && {
+ echo "Skipping test: cldr-plurals was built without XML support"
+ exit 77
+}
+
+cat <<\EOF > mi-test4.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${MSGINIT=msginit}
+GETTEXTLIBDIR="$top_builddir"/src GETTEXTCLDRDIR="$abs_srcdir" ${MSGINIT} -l foo --no-translator --no-wrap -o mi-test4.tmp 2>mi-test4.err
+test $? = 0 || { cat mi-test4.err 1>&2; exit 1; }
+
+# The charset stored in the header entry is the locale encoding of the gl_IE
+# locale, which is system dependent, or ASCII if the locale does not exist.
+#
+# Project-Id-Version contains version constructed from a temporary
+# directory name
+sed -e '1,10d' -e 's/\(ISO-8859-1\|CP1252\|UTF-8\)/ASCII/g' < mi-test4.tmp | grep -v Project-Id-Version | LC_ALL=C tr -d '\r' > mi-test4.out || exit 1
+cat <<\EOF > mi-test4.ok
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: foo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\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<12 || n%100>14) ? 1 : 2);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mi-test4.ok mi-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/plural-1-prg.c b/gettext-tools/tests/plural-1-prg.c
index f0e7c81..9b32f7c 100644
--- a/gettext-tools/tests/plural-1-prg.c
+++ b/gettext-tools/tests/plural-1-prg.c
@@ -1,5 +1,5 @@
/* Test program, used by the plural-1 test.
- Copyright (C) 2001-2002, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2009, 2015 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
diff --git a/gettext-tools/tests/sentence b/gettext-tools/tests/sentence
new file mode 100755
index 0000000..481a20f
--- /dev/null
+++ b/gettext-tools/tests/sentence
@@ -0,0 +1,228 @@
+#! /bin/bash
+
+# sentence - temporary wrapper script for .libs/sentence
+# Generated by libtool (GNU libtool) 2.4.6
+#
+# The sentence program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# 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'
+
+# Be Bourne compatible
+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
+ # 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
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/ueno/devel/gettext/gettext-tools/tests; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/home/ueno/.local/bin:/home/ueno/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games; export PATH; gcc -std=gnu99 -O0 -g3 -Wall -o \$progdir/\$file sentence-sentence.o ../src/.libs/libgettextsrc.so -L/usr/lib/x86_64-linux-gnu /home/ueno/devel/gettext/gettext-tools/gnulib-lib/.libs/libgettextlib.so -lacl -lm -lcroco-0.6 -lglib-2.0 -lncurses ../intl/.libs/libgnuintl.so -lc -fopenmp -Wl,-rpath -Wl,/home/ueno/devel/gettext/gettext-tools/src/.libs -Wl,-rpath -Wl,/home/ueno/devel/gettext/gettext-tools/gnulib-lib/.libs -Wl,-rpath -Wl,/home/ueno/devel/gettext/gettext-tools/intl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='2.4.6'
+ notinst_deplibs=' ../src/libgettextsrc.la /home/ueno/devel/gettext/gettext-tools/gnulib-lib/libgettextlib.la ../intl/libgnuintl.la'
+else
+ # When we are sourced in execute mode, $file and $ECHO are already set.
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+ ECHO="printf %s\\n"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /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 that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=$0
+ shift
+ for lt_opt
+ do
+ case "$lt_opt" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+ test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+ lt_dump_F=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%^.*/%%'`
+ cat "$lt_dump_D/$lt_dump_F"
+ exit 0
+ ;;
+ --lt-*)
+ $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n "$lt_option_debug"; then
+ echo "sentence:sentence:$LINENO: libtool wrapper (GNU libtool) 2.4.6" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ $ECHO "sentence:sentence:$LINENO: newargv[$lt_dump_args_N]: $lt_arg"
+ lt_dump_args_N=`expr $lt_dump_args_N + 1`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+ if test -n "$lt_option_debug"; then
+ $ECHO "sentence:sentence:$LINENO: newargv[0]: $progdir/$program" 1>&2
+ func_lt_dump_args ${1+"$@"} 1>&2
+ fi
+ exec "$progdir/$program" ${1+"$@"}
+
+ $ECHO "$0: cannot exec $program $*" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case " $* " in
+ *\ --lt-*)
+ for lt_wr_arg
+ do
+ case $lt_wr_arg in
+ --lt-*) ;;
+ *) set x "$@" "$lt_wr_arg"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core ${1+"$@"}
+}
+
+ # Parse options
+ func_parse_lt_options "$0" ${1+"$@"}
+
+ # Find the directory that this script lives in.
+ thisdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
+ test "x$thisdir" = "x$file" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+ while test -n "$file"; do
+ destdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
+
+ # If there was a directory component, then change thisdir.
+ if test "x$destdir" != "x$file"; then
+ case "$destdir" in
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+ *) thisdir="$thisdir/$destdir" ;;
+ esac
+ fi
+
+ file=`$ECHO "$file" | /bin/sed 's%^.*/%%'`
+ file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+ if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+ # special case for '.'
+ if test "$thisdir" = "."; then
+ thisdir=`pwd`
+ fi
+ # remove .libs from thisdir
+ case "$thisdir" in
+ *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /bin/sed 's%[\\/][^\\/]*$%%'` ;;
+ .libs ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=`cd "$thisdir" && pwd`
+ test -n "$absdir" && thisdir="$absdir"
+
+ program=lt-'sentence'
+ progdir="$thisdir/.libs"
+
+ if test ! -f "$progdir/$program" ||
+ { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+ test "X$file" != "X$progdir/$program"; }; then
+
+ file="$$-$program"
+
+ if test ! -d "$progdir"; then
+ mkdir "$progdir"
+ else
+ rm -f "$progdir/$file"
+ fi
+
+ # relink executable if necessary
+ if test -n "$relink_command"; then
+ if relink_command_output=`eval $relink_command 2>&1`; then :
+ else
+ $ECHO "$relink_command_output" >&2
+ rm -f "$progdir/$file"
+ exit 1
+ fi
+ fi
+
+ mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+ { rm -f "$progdir/$program";
+ mv -f "$progdir/$file" "$progdir/$program"; }
+ rm -f "$progdir/$file"
+ fi
+
+ if test -f "$progdir/$program"; then
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ # Run the actual program with our arguments.
+ func_exec_program ${1+"$@"}
+ fi
+ else
+ # The program doesn't exist.
+ $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2
+ $ECHO "This script is just a wrapper for $program." 1>&2
+ $ECHO "See the libtool documentation for more information." 1>&2
+ exit 1
+ fi
+fi
diff --git a/gettext-tools/tests/sentence.c b/gettext-tools/tests/sentence.c
new file mode 100644
index 0000000..839f6c8
--- /dev/null
+++ b/gettext-tools/tests/sentence.c
@@ -0,0 +1,85 @@
+/* Test of sentence handling.
+ Copyright (C) 2015 Free Software Foundation, Inc.
+ Written by Daiki Ueno <ueno@gnu.org>, 2015.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "sentence.h"
+
+#include <assert.h>
+#include <string.h>
+
+#define PRIMARY "This is a primary sentence"
+#define SECONDARY "This is a secondary sentence"
+
+#define SIZEOF(x) (sizeof (x) / sizeof (*x))
+
+struct data
+{
+ int required_spaces;
+ const char *input;
+
+ const char *expected_prefix;
+ ucs4_t expected_ending_char;
+};
+
+const struct data data[] =
+ {
+ { 1, PRIMARY, PRIMARY, 0xfffd },
+ { 1, PRIMARY ".", PRIMARY, '.' },
+ { 1, PRIMARY ".x", PRIMARY ".x", 0xfffd },
+ { 2, PRIMARY ". " SECONDARY, PRIMARY, '.' },
+ { 1, PRIMARY ". " SECONDARY, PRIMARY, '.' },
+ { 1, PRIMARY ".' " SECONDARY, PRIMARY, '.' },
+ { 3, PRIMARY ". " SECONDARY, PRIMARY ". " SECONDARY, 0xfffd },
+ { 2, PRIMARY ".' " SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ".'x " SECONDARY, PRIMARY ".'x " SECONDARY, 0xfffd },
+ { 2, PRIMARY ".''x " SECONDARY, PRIMARY ".''x " SECONDARY, 0xfffd },
+ { 2, PRIMARY ".\n" SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ". \n" SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ".\xc2\xa0\n" SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ".\t" SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ".'\t" SECONDARY, PRIMARY, '.' },
+ { 2, PRIMARY ".'\n" SECONDARY, PRIMARY, '.' }
+ };
+
+static void
+check_sentence_end (const struct data *d)
+{
+ int saved_required_spaces = sentence_end_required_spaces;
+ const char *result;
+ ucs4_t ending_char;
+
+ sentence_end_required_spaces = d->required_spaces;
+ result = sentence_end (d->input, &ending_char);
+ sentence_end_required_spaces = saved_required_spaces;
+
+ assert (result == d->input + strlen (d->expected_prefix));
+ assert (ending_char == d->expected_ending_char);
+}
+
+int
+main (int argc, char **argv)
+{
+ int i;
+
+ for (i = 0; i < SIZEOF (data); i++)
+ check_sentence_end (&data[i]);
+
+ return 0;
+}
diff --git a/gettext-tools/tests/setlocale.c b/gettext-tools/tests/setlocale.c
index 7e4fdd8..fd92909 100644
--- a/gettext-tools/tests/setlocale.c
+++ b/gettext-tools/tests/setlocale.c
@@ -1,5 +1,5 @@
/* Fake setlocale - platform independent, for testing purposes.
- Copyright (C) 2001-2002 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2015 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
diff --git a/gettext-tools/tests/testlocale.c b/gettext-tools/tests/testlocale.c
index 843dedf..5573e34 100644
--- a/gettext-tools/tests/testlocale.c
+++ b/gettext-tools/tests/testlocale.c
@@ -1,5 +1,5 @@
/* testlocale - test whether the locale given by the environment is installed.
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006, 2015 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
diff --git a/gettext-tools/tests/tstgettext.c b/gettext-tools/tests/tstgettext.c
index 8c2020e..f59e61f 100644
--- a/gettext-tools/tests/tstgettext.c
+++ b/gettext-tools/tests/tstgettext.c
@@ -1,5 +1,6 @@
/* gettext - retrieve text string from message catalog and print it.
- Copyright (C) 1995-1997, 2000-2007, 2012 Free Software Foundation, Inc.
+ Copyright (C) 1995-1997, 2000-2007, 2012, 2015 Free Software
+ Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, May 1995.
This program is free software: you can redistribute it and/or modify
diff --git a/gettext-tools/tests/tstngettext.c b/gettext-tools/tests/tstngettext.c
index 097748b..2e039a0 100644
--- a/gettext-tools/tests/tstngettext.c
+++ b/gettext-tools/tests/tstngettext.c
@@ -1,5 +1,6 @@
/* ngettext - retrieve plural form strings from message catalog and print them.
- Copyright (C) 1995-1997, 2000-2007, 2012 Free Software Foundation, Inc.
+ Copyright (C) 1995-1997, 2000-2007, 2012, 2015 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
diff --git a/gettext-tools/tests/xg-c-1.ok.po b/gettext-tools/tests/xg-c-1.ok.po
index dd51559..5299d6f 100644
--- a/gettext-tools/tests/xg-c-1.ok.po
+++ b/gettext-tools/tests/xg-c-1.ok.po
@@ -5,6 +5,14 @@ msgstr ""
msgid "'%s' is not a valid encoding name. Using ASCII as fallback.\n"
msgstr ""
+#, c-format
+msgid "syntax check '%s' unknown"
+msgstr ""
+
+#, c-format
+msgid "sentence end type '%s' unknown"
+msgstr ""
+
#, c-format, no-wrap
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
@@ -43,10 +51,25 @@ msgid ""
msgstr ""
#, c-format
+msgid "warning: ITS rule file '%s' does not exist"
+msgstr ""
+
+#, c-format
+msgid ""
+"warning: ITS rule file '%s' does not exist; check your gettext installation"
+msgstr ""
+
+#, c-format
msgid "warning: file '%s' extension '%s' is unknown; will try C"
msgstr ""
#, c-format
+msgid "found %d fatal error"
+msgid_plural "found %d fatal errors"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr ""
@@ -170,6 +193,20 @@ msgid ""
msgstr ""
#, c-format
+msgid ""
+" --check=NAME perform syntax check on messages\n"
+" (ellipsis-unicode, space-ellipsis,\n"
+" quote-unicode)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --sentence-end=TYPE type describing the end of sentence\n"
+" (single-space, which is the default, \n"
+" or double-space)\n"
+msgstr ""
+
+#, c-format
msgid "Language specific options:\n"
msgstr ""
@@ -304,6 +341,14 @@ msgid ""
msgstr ""
#, c-format
+msgid " --its=FILE apply ITS rules from FILE\n"
+msgstr ""
+
+#, c-format
+msgid " --itstool write out itstool comments\n"
+msgstr ""
+
+#, c-format
msgid " -w, --width=NUMBER set output page width\n"
msgstr ""
@@ -505,10 +550,8 @@ msgid "%s is only valid with %s, %s or %s"
msgstr ""
#, c-format
-msgid "found %d fatal error"
-msgid_plural "found %d fatal errors"
-msgstr[0] ""
-msgstr[1] ""
+msgid "cannot locate ITS rules for %s"
+msgstr ""
#, c-format
msgid "%s: "
@@ -581,6 +624,10 @@ msgid ""
msgstr ""
#, c-format
+msgid " --xml XML mode: generate XML file\n"
+msgstr ""
+
+#, c-format
msgid " -o, --output-file=FILE write output to specified file\n"
msgstr ""
@@ -671,6 +718,18 @@ msgid ""
msgstr ""
#, c-format
+msgid "XML mode options:\n"
+msgstr ""
+
+#, c-format
+msgid " -L, --language=NAME recognise the specified XML language\n"
+msgstr ""
+
+#, c-format
+msgid " --template=TEMPLATE an XML file used as a template\n"
+msgstr ""
+
+#, c-format
msgid "Input file syntax:\n"
msgstr ""
diff --git a/gettext-tools/tests/xg-c-21.c b/gettext-tools/tests/xg-c-21.c
new file mode 100644
index 0000000..d49b6f0
--- /dev/null
+++ b/gettext-tools/tests/xg-c-21.c
Binary files differ
diff --git a/gettext-tools/tests/xgettext-13 b/gettext-tools/tests/xgettext-13
new file mode 100755
index 0000000..dcd1004
--- /dev/null
+++ b/gettext-tools/tests/xgettext-13
@@ -0,0 +1,59 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test wrapping long lines.
+# Both msgid and location comments should wrap at the same column.
+
+cat <<\EOF > xg-test13.c
+/* With --width=30, the following 10 gettext calls will produce:
+
+ #: x:1 x:2 x:3 x:4 x:5 x:6 x:7
+ #: x:8 x:9 x:10
+ msgid "a"
+
+ because strlen("#:") + strlen(" x:N") * 7 = 30. */
+#line 1 "x"
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+gettext ("a");
+
+/* And the following gettext call will produce:
+
+ msgid ""
+ "x:1 x:2 x:3 x:4 x:5 x:6 x:7 "
+ "x:8 x:9 x:10"
+
+ because strlen("\"") + strlen("x:N ") * 7 + strlen("\"") = 30. */
+gettext ("x:1 x:2 x:3 x:4 x:5 x:6 x:7 x:8 x:9 x:10");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --add-location --width=30 -d xg-test13.tmp \
+ xg-test13.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test13.tmp.po > xg-test13.po || exit 1
+
+cat <<\EOF > xg-test13.ok
+#: x:1 x:2 x:3 x:4 x:5 x:6 x:7
+#: x:8 x:9 x:10
+msgid "a"
+msgstr ""
+
+#: x:19
+msgid ""
+"x:1 x:2 x:3 x:4 x:5 x:6 x:7 "
+"x:8 x:9 x:10"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test13.ok xg-test13.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-14 b/gettext-tools/tests/xgettext-14
new file mode 100755
index 0000000..b769b2f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-14
@@ -0,0 +1,98 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test for --check option.
+
+# --check=ellipsis-unicode
+cat <<\EOF > xg-ellipsis-u.c
+gettext ("This is a sentence...");
+
+ngettext ("This is a sentence", "These are sentences...", 2);
+
+/* xgettext: no-ellipsis-unicode-check */
+gettext ("This is another sentence...");
+
+gettext ("This is a multi-sentence example. This is the first sentence. "
+ "This is the second..., no it's not, this is the second sentence...\n"
+ "This is the third sentence...? Perhaps.\n");
+EOF
+
+: ${XGETTEXT=xgettext}
+LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=ellipsis-unicode -d xg-ellipsis-u.tmp xg-ellipsis-u.c 2>xg-ellipsis-u.err
+
+test `grep -c 'ASCII ellipsis' xg-ellipsis-u.err` = 4 || exit 1
+
+LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=ellipsis-unicode --sentence-end=double-space -d xg-ellipsis-ud.tmp xg-ellipsis-u.c 2>xg-ellipsis-ud.err
+
+test `grep -c 'ASCII ellipsis' xg-ellipsis-ud.err` = 3 || exit 1
+
+# --check=space-ellipsis
+cat <<\EOF > xg-space-e.c
+gettext ("This is a sentence ...");
+
+/* xgettext: no-space-ellipsis-check, no-ellipsis-unicode-check */
+gettext ("This is another sentence ...");
+
+gettext ("This is a multi-sentence example. This is the first sentence. "
+ "This is the second..., no it's not, this is the second sentence ...\n"
+ "This is the third sentence \u2026? Perhaps.\n");
+EOF
+
+LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=space-ellipsis -d xg-space-e.tmp xg-space-e.c 2>xg-space-e.err
+
+test `grep -c 'space before ellipsis' xg-space-e.err` = 3 || exit 1
+
+# --check=quote-unicode
+cat <<\EOF > xg-quote-u.c
+gettext ("\"double quoted\"");
+
+/* xgettext: no-quote-unicode-check */
+gettext ("\"double quoted but ignored\"");
+
+gettext ("double quoted but empty \"\"");
+
+gettext ("\"\" double quoted but empty");
+
+gettext ("\"foo\" \"bar\" \"baz\"");
+
+gettext ("'single quoted'");
+
+/* xgettext: no-quote-unicode-check */
+gettext ("'single quoted but ignored'");
+
+gettext ("'foo' 'bar' 'baz'");
+
+gettext ("prefix'single quoted without surrounding spaces'suffix");
+
+gettext ("prefix 'single quoted with surrounding spaces' suffix");
+
+gettext ("single quoted with apostrophe, empty '' ");
+
+gettext ("'single quoted at the beginning of string' ");
+
+gettext (" 'single quoted at the end of string'");
+
+gettext ("line 1\n"
+"'single quoted at the beginning of line' \n"
+"line 3");
+
+gettext ("line 1\n"
+" 'single quoted at the end of line'\n"
+"line 3");
+
+gettext ("`single quoted with grave'");
+
+/* xgettext: no-quote-unicode-check */
+gettext ("`single quoted with grave but ignored'");
+
+gettext ("single quoted with grave, empty `'");
+
+gettext ("`' single quoted with grave, empty");
+
+gettext ("`double grave`");
+EOF
+
+LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=quote-unicode -d xg-quote-u.tmp xg-quote-u.c 2>xg-quote-u.err
+
+test `grep -c 'ASCII double quote' xg-quote-u.err` = 4 || exit 1
+test `grep -c 'ASCII single quote' xg-quote-u.err` = 12 || exit 1
diff --git a/gettext-tools/tests/xgettext-appdata-1 b/gettext-tools/tests/xgettext-appdata-1
new file mode 100755
index 0000000..47a8884
--- /dev/null
+++ b/gettext-tools/tests/xgettext-appdata-1
@@ -0,0 +1,127 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of AppData support.
+
+cat <<EOF > xg-gs-1-empty.appdata.xml
+<?xml version="1.0"?>
+<component type="desktop"/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gs-1.pot xg-gs-1-empty.appdata.xml 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without AppData support"
+ exit 77
+}
+
+cat <<EOF > xg-gs-1.appdata.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2013 First Lastname <your@email.com> -->
+<component type="desktop">
+ <id>gnome-power-statistics.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+ and GFDL-1.3</project_license>
+ <name>Power Statistics</name>
+ <summary>Observe power management</summary>
+ <description>
+ <p>
+ Power Statistics is a program used to view historical and current battery
+ information and will show programs running on your computer using power.
+ </p>
+ <p>Example list:</p>
+ <ul>
+ <li>First item</li>
+ <li>Second item</li>
+ </ul>
+ <p>
+ You probably only need to install this application if you are having problems
+ with your laptop battery, or are trying to work out what programs are using
+ significant amounts of power.
+ </p>
+ </description>
+ <screenshots>
+ <screenshot type="default">
+ <image>http://www.hughsie.com/en_US/main.png</image>
+ <caption>The main window showing the application in action</caption>
+ </screenshot>
+ <screenshot>
+ <image>http://www.hughsie.com/en_US/preferences.png</image>
+ <caption>The preferences window where you can change the defaults</caption>
+ </screenshot>
+ </screenshots>
+ <url type="homepage">http://www.gnome.org/projects/en_US/gnome-power-manager</url>
+ <updatecontact>gnome-power-manager-list@gnome.org</updatecontact>
+ <project_group>GNOME</project_group>
+</component>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments -o - xg-gs-1.appdata.xml | grep -v 'POT-Creation-Date' > xg-gs-1.pot || exit 1
+
+cat <<EOF > xg-gs-1.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gs-1.appdata.xml:7
+msgid "Power Statistics"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:8
+msgid "Observe power management"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:10
+msgid ""
+"Power Statistics is a program used to view historical and current battery "
+"information and will show programs running on your computer using power."
+msgstr ""
+
+#: xg-gs-1.appdata.xml:14
+msgid "Example list:"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:16
+msgid "First item"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:17
+msgid "Second item"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:19
+msgid ""
+"You probably only need to install this application if you are having "
+"problems with your laptop battery, or are trying to work out what programs "
+"are using significant amounts of power."
+msgstr ""
+
+#: xg-gs-1.appdata.xml:28
+msgid "The main window showing the application in action"
+msgstr ""
+
+#: xg-gs-1.appdata.xml:32
+msgid "The preferences window where you can change the defaults"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gs-1.ok xg-gs-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-19 b/gettext-tools/tests/xgettext-c-19
index 09a227a..674af4f 100755
--- a/gettext-tools/tests/xgettext-c-19
+++ b/gettext-tools/tests/xgettext-c-19
@@ -33,7 +33,7 @@ iconv -f UTF-8 -t EUC-JP < xg-c-19.in.c > xg-c-19.c \
${XGETTEXT} --from-code=EUC-JP --add-comments --no-location --no-wrap \
-o - xg-c-19.c | grep -v 'POT-Creation-Date' > xg-c-19.tmp.po \
- || { cp core* ..; exit 1; }
+ || exit 1
LC_ALL=C tr -d '\r' < xg-c-19.tmp.po > xg-c-19.po || exit 1
cat <<\EOF > xg-c-19.ok
diff --git a/gettext-tools/tests/xgettext-c-20 b/gettext-tools/tests/xgettext-c-20
index 73e4442..283f8d0 100755
--- a/gettext-tools/tests/xgettext-c-20
+++ b/gettext-tools/tests/xgettext-c-20
@@ -5,26 +5,44 @@
: ${XGETTEXT=xgettext}
-cat <<\EOF > err0.c
+cat <<\EOF > err0.cc
gettext ("aaa(
bbb
)ccc");
EOF
-(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err0.c 2>&1; exit) | grep 'unterminated string literal' || exit 1
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err0.cc 2>&1; exit) | grep 'unterminated string literal' || exit 1
-cat <<\EOF > err1.c
+cat <<\EOF > err1.cc
gettext (R"aaa(
bbb
)ccc");
EOF
-(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err1.c 2>&1; exit) | grep 'unterminated string literal' || exit 1
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err1.cc 2>&1; exit) | grep 'unterminated string literal' || exit 1
cat <<\EOF > xg-c-20.cc
#define X ""
gettext (X"This is a concatenation of a macro and a string");
+#define RR ""
+gettext (RR"This (is NOT a raw string");
+
+#define u8RR ""
+gettext (u8RR"This (is NOT a raw string");
+
+#define uRR ""
+gettext (uRR"This (is NOT a raw string");
+
+#define URR ""
+gettext (URR"This (is NOT a raw string");
+
+#define LRR ""
+gettext (LRR"This (is NOT a raw string");
+
+#define uX ""
+gettext (uX"This (is NOT a raw string");
+
gettext (u8"This is a UTF-8 string");
u88"This is not a UTF-8 string";
@@ -51,14 +69,6 @@ LR"aaa(
This is a wide raw string
)aaa";
-// Missing opening parenthesis; be tolerate and treat it as a normal string.
-gettext (u8R"bar)
-aaa");
-
-// Missing closing parenthesis; be tolerate and treat it as a normal string.
-gettext (u8R"aaa(
-bar");
-
// 'LR' prefixed raw string should be skipped.
LR"(
@@ -70,7 +80,7 @@ EOF
${XGETTEXT} --add-comments --no-location --no-wrap \
-o - xg-c-20.cc | grep -v 'POT-Creation-Date' > xg-c-20.tmp.po \
- || { cp core* ..; exit 1; }
+ || exit 1
LC_ALL=C tr -d '\r' < xg-c-20.tmp.po > xg-c-20.po || exit 1
cat <<\EOF > xg-c-20.ok
@@ -95,6 +105,9 @@ msgstr ""
msgid "This is a concatenation of a macro and a string"
msgstr ""
+msgid "This (is NOT a raw string"
+msgstr ""
+
msgid "This is a UTF-8 string"
msgstr ""
@@ -107,22 +120,45 @@ msgid ""
"\n"
"This is a raw UTF-8 string\n"
msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-20.ok xg-c-20.po || exit 1
+
+cat <<\EOF > xg-c-20.c
+gettext (R"aaa(This is NOT a raw string");
+
+gettext (u8R"aaa(This is NOT a raw string");
+
+uR"aaa(This is NOT a raw string";
+EOF
+
+${XGETTEXT} --add-comments --no-location --no-wrap \
+ -o - xg-c-20.c | grep -v 'POT-Creation-Date' > xg-c-20c.tmp.po \
+ || exit 1
+LC_ALL=C tr -d '\r' < xg-c-20c.tmp.po > xg-c-20c.po || exit 1
-#. Missing opening parenthesis; be tolerate and treat it as a normal string.
+cat <<\EOF > xg-c-20c.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
msgid ""
-"bar)\n"
-"aaa"
msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
-#. Missing closing parenthesis; be tolerate and treat it as a normal string.
-msgid ""
-"aaa(\n"
-"bar"
+msgid "aaa(This is NOT a raw string"
msgstr ""
EOF
-: ${DIFF=diff}
-${DIFF} xg-c-20.ok xg-c-20.po
-result=$?
-
-exit $result
+${DIFF} xg-c-20c.ok xg-c-20c.po || exit 1
diff --git a/gettext-tools/tests/xgettext-c-21 b/gettext-tools/tests/xgettext-c-21
new file mode 100755
index 0000000..4fdcfe9
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-21
@@ -0,0 +1,49 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: invalid NUL termination
+
+: ${XGETTEXT=xgettext}
+
+${XGETTEXT} --add-comments --no-location --no-wrap \
+ -o - "$abs_srcdir"/xg-c-21.c \
+ | grep -v 'POT-Creation-Date' > xg-c-21.tmp.po || exit 1
+LC_ALL=C tr -d '\r' < xg-c-21.tmp.po > xg-c-21.po || exit 1
+
+cat <<\EOF > xg-c-21.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "\n"
+msgstr ""
+
+msgid "\\u"
+msgstr ""
+
+msgid "\\U"
+msgstr ""
+
+msgid "\\u3"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-21.ok xg-c-21.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-desktop-1 b/gettext-tools/tests/xgettext-desktop-1
index ae90879..c6f9df1 100755
--- a/gettext-tools/tests/xgettext-desktop-1
+++ b/gettext-tools/tests/xgettext-desktop-1
@@ -26,6 +26,19 @@ EOF
(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - err3.desktop 2>&1; exit) | grep "invalid non-blank line" || exit 1
+cat <<\EOF >err4.desktop
+[Desktop Entry]a
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - err4.desktop 2>&1; exit) | grep "invalid non-blank character" || exit 1
+
+# gettext 0.19.4 issued an baseless warning of this.
+cat <<\EOF >ok4.desktop
+[Desktop Entry]
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - ok4.desktop 2>&1; exit) | grep "invalid non-blank character" && exit 1
+
cat <<\EOF > xg.desktop
[Desktop Entry]
Type=Application
diff --git a/gettext-tools/tests/xgettext-its-1 b/gettext-tools/tests/xgettext-its-1
new file mode 100755
index 0000000..9e3cac5
--- /dev/null
+++ b/gettext-tools/tests/xgettext-its-1
@@ -0,0 +1,276 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of ITS support.
+
+: ${XGETTEXT=xgettext}
+
+GETTEXTDATADIR=.
+export GETTEXTDATADIR
+
+cat <<\EOF > empty.xml
+<?xml version="1.0"?>
+<empty></empty>
+EOF
+
+${XGETTEXT} --itstool -o empty.pot empty.xml 2>empty.err || { cat empty.err; exit 1; }
+
+test -d its || mkdir its
+
+cat <<\EOF > its/empty-1.loc
+<?xml version="1.0"?>
+<locatingRules/>
+EOF
+
+${XGETTEXT} --itstool -o empty.pot empty.xml 2>empty.err || { cat empty.err; exit 1; }
+
+cat <<\EOF > its/empty-2.loc
+<?xml version="1.0"?>
+<locatingRules>
+ <locatingRule pattern="*.xml">
+ <documentRule prefix="" localName="empty" target="empty.its"/>
+ </locatingRule>
+</locatingRules>
+EOF
+
+${XGETTEXT} --itstool -o empty.pot empty.xml 2>empty.err || { cat empty.err; exit 1; }
+
+cat <<\EOF > its/empty.its
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
+</its:rules>
+EOF
+
+${XGETTEXT} --itstool -o empty.pot empty.xml 2>empty.err || { cat empty.err; exit 1; }
+
+cat <<\EOF > its/messages.loc
+<?xml version="1.0"?>
+<locatingRules>
+ <locatingRule pattern="*.xml">
+ <documentRule localName="messages" target="messages.its"/>
+ </locatingRule>
+ <locatingRule pattern="*.msg">
+ <documentRule localName="messages" target="messages.its"/>
+ </locatingRule>
+</locatingRules>
+EOF
+
+cat <<\EOF > its/messages.its
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0"
+ xmlns:msg="http://www.gnu.org/s/gettext/ns/messages/1.0"
+ version="1.0">
+ <!-- Invalid: no selector -->
+ <its:translateRule translate="yes"/>
+ <!-- Invalid: no translate -->
+ <its:translateRule selector="/"/>
+
+ <its:translateRule selector="//msg:message/@comment" translate="yes"/>
+ <its:translateRule selector="//msg:note" translate="no"/>
+ <its:translateRule selector="//msg:p[@translatable = 'no']"
+ translate="no"/>
+
+ <!-- Invalid: no selector -->
+ <its:locNoteRule locNoteType="alert"/>
+ <!-- Invalid: no locNoteType -->
+ <its:locNoteRule selector="/"/>
+ <its:locNoteRule selector="//msg:message/*" locNoteType="alert"
+ locNotePointer="../msg:note"/>
+ <its:locNoteRule selector="//msg:code" locNoteType="alert">
+ <its:locNote>This is code</its:locNote>
+ </its:locNoteRule>
+ <its:locNoteRule selector="//msg:message/@comment" locNoteType="alert">
+ <its:locNote>This is a comment</its:locNote>
+ </its:locNoteRule>
+
+ <!-- Invalid: no selector -->
+ <its:withinTextRule withinText="yes"/>
+ <!-- Invalid: no withinText -->
+ <its:withinTextRule selector="/"/>
+ <its:withinTextRule selector="//msg:span | //msg:link" withinText="yes"/>
+
+ <!-- Invalid: no selector -->
+ <its:preserveSpaceRule space="preserve"/>
+ <!-- Invalid: no space -->
+ <its:preserveSpaceRule selector="/"/>
+ <its:preserveSpaceRule selector="//msg:code" space="preserve"/>
+
+ <gt:contextRule selector="//msg:p[@context = 'yes']"
+ contextPointer="substring-before(., '|')"
+ textPointer="substring-after(., '|')"/>
+
+ <gt:escapeRule selector="//msg:message/*[@unescape = 'yes']" escape="no"/>
+
+ <its:translateRule selector="//msg:message/@unescaped" translate="yes"/>
+ <gt:escapeRule selector="//msg:message/@unescaped" escape="no"/>
+</its:rules>
+EOF
+
+cat <<\EOF >messages.xml
+<?xml version="1.0"?>
+<!DOCTYPE messages PUBLIC "" "" [
+<!ENTITY foo "bar">
+]>
+<messages xmlns="http://www.gnu.org/s/gettext/ns/messages/1.0"
+ xmlns:its="http://www.w3.org/2005/11/its">
+ <message>
+ <p>This is a test message &foo;&gt;&lt;&amp;&quot;"</p>
+ </message>
+ <message>
+ <p its:translate="no">This is a non-translatable message</p>
+ </message>
+ <message>
+ <p>This is a test message, with an <span>element</span> in a <link href="http://www.gnu.org/s/gettext">text</link></p>
+ </message>
+ <message>
+ <code> $ echo ' ' &gt;&gt; /dev/null
+ $ cat &lt; /dev/yes
+ $ sleep 10 &amp;
+</code>
+ </message>
+ <message comment="This is a comment &lt;&gt;&amp;&quot;">
+ <p>This is a test message, with an attribute</p>
+ </message>
+ <message>
+ <note>
+ This is a localization note
+ </note>
+ <p>This is a test message, with a localization note</p>
+ </message>
+ <message>
+ <p its:locNote="This is a local localization note" its:locNoteType="alert">
+ This is a test message, with a local localization note
+ </p>
+ </message>
+ <message>
+ <!-- empty element, which shouldn't be extracted -->
+ <p></p>
+ </message>
+ <message>
+ <p xml:space="preserve"> This is a message with space preserved</p>
+ </message>
+ <message>
+ <p translatable="no">This is a non-translatable string</p>
+ </message>
+ <message its:translate="no">
+ <p>This is a non-translatable string</p>
+ </message>
+ <message>
+ <!-- This is a comment -->
+ <p context="yes">context|A translatable string with a context prefixed</p>
+ </message>
+ <message>
+ <p xml:space="trim"> Leading/trailing whitespaces are removed,
+ but not middle
+ </p>
+ </message>
+ <message>
+ <p unescape="yes">This is an unescaped element &lt;&gt;&amp;&quot;</p>
+ </message>
+ <message unescaped="This is an unescaped attribute &lt;&gt;&amp;&quot;">
+ <p></p>
+ </message>
+</messages>
+EOF
+
+cat <<\EOF >messages.ok
+#. (itstool) path: message/p
+#: messages.xml:8
+msgid "This is a test message &foo;&gt;&lt;&amp;\"\""
+msgstr ""
+
+#. (itstool) path: message/p
+#: messages.xml:14
+msgid "This is a test message, with an <span>element</span> in a <link href=\"http://www.gnu.org/s/gettext\">text</link>"
+msgstr ""
+
+#. This is code
+#. (itstool) path: message/code
+#: messages.xml:17
+#, no-wrap
+msgid ""
+" $ echo ' ' &gt;&gt; /dev/null\n"
+" $ cat &lt; /dev/yes\n"
+" $ sleep 10 &amp;\n"
+msgstr ""
+
+#. This is a comment
+#. (itstool) path: messages/message@comment
+#: messages.xml:22
+msgid "This is a comment &lt;&gt;&amp;&quot;"
+msgstr ""
+
+#. (itstool) path: message/p
+#: messages.xml:23
+msgid "This is a test message, with an attribute"
+msgstr ""
+
+#. This is a localization note
+#. (itstool) path: message/p
+#: messages.xml:29
+msgid "This is a test message, with a localization note"
+msgstr ""
+
+#. This is a local localization note
+#. (itstool) path: message/p
+#: messages.xml:32
+msgid "This is a test message, with a local localization note"
+msgstr ""
+
+#. (itstool) path: message/p
+#: messages.xml:41
+#, no-wrap
+msgid " This is a message with space preserved"
+msgstr ""
+
+#. This is a comment
+#. (itstool) path: message/p
+#: messages.xml:51
+msgctxt "context"
+msgid "A translatable string with a context prefixed"
+msgstr ""
+
+#. (itstool) path: message/p
+#: messages.xml:54
+msgid ""
+"Leading/trailing whitespaces are removed,\n"
+" but not middle"
+msgstr ""
+
+#. (itstool) path: message/p
+#: messages.xml:59
+msgid "This is an unescaped element <>&\""
+msgstr ""
+
+#. (itstool) path: messages/message@unescaped
+#: messages.xml:61
+msgid "This is an unescaped attribute <>&\""
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+
+${XGETTEXT} --itstool --no-wrap --omit-header -o messages.pot messages.xml 2>messages.err || { cat messages.err; exit 1; }
+${DIFF} messages.ok messages.pot
+result=$?
+test $result = 0 || exit $result
+
+# Check if locating rules can work with --directory, and extra ".in"
+# file name extension.
+test -d data || mkdir data
+test -d po || mkdir po
+
+cp messages.xml data/messages.msg.in
+
+cd po
+GETTEXTDATADIR=..
+export GETTEXTDATADIR
+
+${XGETTEXT} --itstool --no-wrap --omit-header --directory=.. -o messages.pot.in data/messages.msg.in 2>messages.err || { cat messages.err; exit 1; }
+sed -e 's!^#: data/messages.msg.in!#: messages.xml!' \
+ < messages.pot.in > messages.pot
+
+${DIFF} ../messages.ok messages.pot
+result=$?
+test $result = 0 || exit $result