+dnl PSPP - a program for statistical analysis.
+dnl Copyright (C) 2017 Free Software Foundation, Inc.
+dnl
+dnl This program is free software: you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation, either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
+dnl
AT_BANNER([i18n recoding])
-m4_divert_push([PREPARE_TESTS])
-supports_encodings () {
- case "$host" in
- *-*-linux* | *-*-*-gnu*)
- dnl GNU/Linux always has the encodings we want. We can't ask
- dnl config.charset about them because it has a special case here
- dnl too and won't tell us.
- return 0
- ;;
- *)
- for encoding in "$@"; do
- $SHELL $top_srcdir/gl/config.charset "$host" | grep '$2' || return 77
- done
- ;;
- esac
-}
-m4_divert_pop([PREPARE_TESTS])
-
# CHECK_I18N_RECODE([TITLE], [FROM-CODING], [TO-CODING],
# [FROM-TEXT], [TO-TEXT])
#
AT_KEYWORDS([i18n])
dnl Skip the test if this host doesn't know the source and target encodings.
- AT_CHECK([supports_encodings '$2' '$3'])
+ AT_CHECK([i18n-test supports_encodings '$2' '$3'])
AT_CHECK_UNQUOTED([i18n-test recode '$2' '$3' `printf '$4'`], [0], [`printf '$5'`
])
AT_CLEANUP])
CHECK_I18N_RECODE([truncated UTF-8 to ISO-8559-1], [UTF-8], [ISO-8859-1],
[xy\302], [xy?])
+# Checks for a bug that caused the last character to be dropped in conversions
+# from encodings that have combining diacritics (e.g. windows-1258).
+CHECK_I18N_RECODE([dropped final character in windows-1258], [windows-1258],
+ [UTF-8], [aeiou], [aeiou])
+
dnl The input to this test is 7 bytes long and the expected output is 9 bytes.
dnl So it should exercise the E2BIG case
CHECK_I18N_RECODE([from ISO-8859-1 to UTF-8 with overflow],
AT_KEYWORDS([i18n])
dnl Skip the test if this host doesn't know the encoding.
- AT_CHECK([supports_encodings '$3'])
+ AT_CHECK([i18n-test supports_encodings '$3'])
AT_CHECK_UNQUOTED(
[i18n-test concat "`printf '$1'`" "`printf '$2'`" '$3' '$4'], [0],
[`printf '$5'`