# HG changeset patch # User Bruno Haible # Date 1199929018 -3600 # Node ID bccf3db4f766607f2d1617eabd54eda592b87fff # Parent a117ec6f4c019fc709ff4802f33af625efa62014 Fix test failure on OpenBSD 4.0. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-01-09 Bruno Haible + + * tests/test-wcwidth.c: Include 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 gl_FUNC_ALLOCA no longer defines HAVE_ALLOCA_H unconditionally. diff --git a/modules/wcwidth-tests b/modules/wcwidth-tests --- a/modules/wcwidth-tests +++ b/modules/wcwidth-tests @@ -2,6 +2,7 @@ tests/test-wcwidth.c Depends-on: +localcharset configure.ac: diff --git a/tests/test-wcwidth.c b/tests/test-wcwidth.c --- a/tests/test-wcwidth.c +++ b/tests/test-wcwidth.c @@ -23,6 +23,9 @@ #include #include #include +#include + +#include "localcharset.h" #define ASSERT(expr) \ do \ @@ -45,7 +48,13 @@ 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++)