I wrote: > This should detect this bug: > > > 2008-01-08 Bruno Haible <[EMAIL PROTECTED]> > > * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also U+3000. Needed to > detect bug on OpenBSD 4.0. > * doc/functions/wcwidth.texi: Document the OpenBSD bug.
Well, it did not fix the testsuite failure. So I undid this commit and instead applied this: 2008-01-09 Bruno Haible <[EMAIL PROTECTED]> * 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. *** tests/test-wcwidth.c.orig 2008-01-10 02:32:49.000000000 +0100 --- tests/test-wcwidth.c 2008-01-10 02:32:19.000000000 +0100 *************** *** 23,28 **** --- 23,31 ---- #include <locale.h> #include <stdio.h> #include <stdlib.h> + #include <string.h> + + #include "localcharset.h" #define ASSERT(expr) \ do \ *************** *** 45,51 **** ASSERT (wcwidth (wc) == 1); /* Switch to an UTF-8 locale. */ ! if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL) { /* Test width of ASCII characters. */ for (wc = 0x20; wc < 0x7F; wc++) --- 48,60 ---- ASSERT (wcwidth (wc) == 1); /* Switch to an UTF-8 locale. */ ! 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++) *** modules/wcwidth-tests.orig 2008-01-10 02:32:49.000000000 +0100 --- modules/wcwidth-tests 2008-01-10 02:25:32.000000000 +0100 *************** *** 2,7 **** --- 2,8 ---- tests/test-wcwidth.c Depends-on: + localcharset configure.ac: