diff options
author | Bruno Haible <bruno@clisp.org> | 2008-01-10 02:36:58 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2008-01-10 02:36:58 +0100 |
commit | 2bb843dfd0f710cef829c2da4967c7dd36e3d775 (patch) | |
tree | 7e4fe98990eb53a0dea5543db20e8c1544e69c27 | |
parent | 2c18ba6d7d4466fb2f312c16e3b3f2b280bf5b58 (diff) | |
download | gnulib-2bb843dfd0f710cef829c2da4967c7dd36e3d775.tar.gz |
Fix test failure on OpenBSD 4.0.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | modules/wcwidth-tests | 1 | ||||
-rw-r--r-- | tests/test-wcwidth.c | 11 |
3 files changed, 18 insertions, 1 deletions
@@ -1,3 +1,10 @@ +2008-01-09 Bruno Haible <bruno@clisp.org> + + * tests/test-wcwidth.c: Include <string.h> and localcharset.h. + (main): Don't perform the tests if setlocale did not install a UTF-8 + locale. Needed on OpenBSD 4.0. + * modules/wcwidth-tests (Depends-on): Add localcharset. + 2008-01-09 Paul Eggert <eggert@cs.ucla.edu> gl_FUNC_ALLOCA no longer defines HAVE_ALLOCA_H unconditionally. diff --git a/modules/wcwidth-tests b/modules/wcwidth-tests index 91ae1b5e3a..956072f603 100644 --- a/modules/wcwidth-tests +++ b/modules/wcwidth-tests @@ -2,6 +2,7 @@ Files: tests/test-wcwidth.c Depends-on: +localcharset configure.ac: diff --git a/tests/test-wcwidth.c b/tests/test-wcwidth.c index fe1094f024..5b4affe1b4 100644 --- a/tests/test-wcwidth.c +++ b/tests/test-wcwidth.c @@ -23,6 +23,9 @@ #include <locale.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> + +#include "localcharset.h" #define ASSERT(expr) \ do \ @@ -45,7 +48,13 @@ main () ASSERT (wcwidth (wc) == 1); /* Switch to an UTF-8 locale. */ - if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) + if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL + /* Check whether it's really an UTF-8 locale. + On OpenBSD 4.0, the setlocale call succeeds only for the LC_CTYPE + category and therefore returns "C/fr_FR.UTF-8/C/C/C/C", but the + LC_CTYPE category is effectively set to an ASCII LC_CTYPE category; + in particular, locale_charset() returns "ASCII". */ + && strcmp (locale_charset (), "UTF-8") == 0) { /* Test width of ASCII characters. */ for (wc = 0x20; wc < 0x7F; wc++) |