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],
[ISO-8859-1], [UTF-8],
[Tsch\374\337!], [Tsch\303\274\303\237!])
+
+AT_SETUP([convert unknown encoding])
+AT_KEYWORDS([i18n])
+AT_CHECK([i18n-test recode nonexistent1 nonexistent2 asdf], [0], [asdf
+],
+ [Warning: cannot create a converter for `nonexistent1' to `nonexistent2': Invalid argument
+])
+AT_CLEANUP
\f
AT_BANNER([i18n concatenation])
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'`