diff options
-rw-r--r-- | gettext-tools/src/xg-encoding.c | 12 | ||||
-rw-r--r-- | gettext-tools/tests/Makefile.am | 2 | ||||
-rwxr-xr-x | gettext-tools/tests/xgettext-javascript-8 | 31 |
3 files changed, 44 insertions, 1 deletions
diff --git a/gettext-tools/src/xg-encoding.c b/gettext-tools/src/xg-encoding.c index d06587c85..b36fe148f 100644 --- a/gettext-tools/src/xg-encoding.c +++ b/gettext-tools/src/xg-encoding.c @@ -73,6 +73,7 @@ non_ascii_error_message (lexical_context_ty lcontext, switch (lcontext) { case lc_outside: + case lc_xml_content: errmsg = xasprintf (_("Non-ASCII character at %s%s."), file_name, buffer); break; @@ -85,6 +86,11 @@ non_ascii_error_message (lexical_context_ty lcontext, errmsg = xasprintf (_("Non-ASCII string at %s%s."), file_name, buffer); break; + case lc_xml_open_tag: + case lc_xml_close_tag: + errmsg = + xasprintf (_("Non-ASCII XML tag at %s%s."), file_name, buffer); + break; default: abort (); } @@ -107,6 +113,7 @@ non_utf8_error_message (lexical_context_ty lcontext, switch (lcontext) { case lc_outside: + case lc_xml_content: errmsg = xasprintf (_("Character at %s%s is not UTF-8 encoded."), file_name, buffer); @@ -121,6 +128,11 @@ non_utf8_error_message (lexical_context_ty lcontext, xasprintf (_("String at %s%s is not UTF-8 encoded."), file_name, buffer); break; + case lc_xml_open_tag: + case lc_xml_close_tag: + errmsg = + xasprintf (_("XML tag at %s%s is not UTF-8 encoded."), file_name, buffer); + break; default: abort (); } diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index b4bb3eba3..83e5ef17b 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -113,7 +113,7 @@ TESTS = gettext-1 gettext-2 \ xgettext-java-stackovfl-3 xgettext-java-stackovfl-4 \ xgettext-javascript-1 xgettext-javascript-2 xgettext-javascript-3 \ xgettext-javascript-4 xgettext-javascript-5 xgettext-javascript-6 \ - xgettext-javascript-7 \ + xgettext-javascript-7 xgettext-javascript-8 \ xgettext-javascript-stackovfl-1 xgettext-javascript-stackovfl-2 \ xgettext-javascript-stackovfl-3 xgettext-javascript-stackovfl-4 \ xgettext-javascript-stackovfl-5 xgettext-javascript-stackovfl-6 \ diff --git a/gettext-tools/tests/xgettext-javascript-8 b/gettext-tools/tests/xgettext-javascript-8 new file mode 100755 index 000000000..d6a530ec7 --- /dev/null +++ b/gettext-tools/tests/xgettext-javascript-8 @@ -0,0 +1,31 @@ +#! /bin/sh +. "${srcdir=.}/init.sh"; path_prepend_ . ../src + +# Test JavaScript support: non-ASCII characters in XML tags or content. + +printf '<a\340' > xg-js-8a.js +printf '<a></a\340' > xg-js-8b.js +printf '<a>\340</a>' > xg-js-8c.js + +: ${XGETTEXT=xgettext} +LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -d xg-js-8.tmp xg-js-8a.js 2>xg-js-8.err +result=$? +cat xg-js-8.err +test $result = 1 || Exit 1 +grep 'Non-ASCII' xg-js-8.err >/dev/null || Exit 1 + +: ${XGETTEXT=xgettext} +LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -d xg-js-8.tmp xg-js-8b.js 2>xg-js-8.err +result=$? +cat xg-js-8.err +test $result = 1 || Exit 1 +grep 'Non-ASCII' xg-js-8.err >/dev/null || Exit 1 + +: ${XGETTEXT=xgettext} +LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -d xg-js-8.tmp xg-js-8c.js 2>xg-js-8.err +result=$? +cat xg-js-8.err +test $result = 1 || Exit 1 +grep 'Non-ASCII' xg-js-8.err >/dev/null || Exit 1 + +exit 0 |