Mercurial > hg > octave-lyh > gnulib-hg
changeset 9594:bccf3db4f766
Fix test failure on OpenBSD 4.0.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Thu, 10 Jan 2008 02:36:58 +0100 |
parents | a117ec6f4c01 |
children | 53dc0fa4233a |
files | ChangeLog modules/wcwidth-tests tests/test-wcwidth.c |
diffstat | 3 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -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.
--- a/modules/wcwidth-tests +++ b/modules/wcwidth-tests @@ -2,6 +2,7 @@ tests/test-wcwidth.c Depends-on: +localcharset configure.ac:
--- 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 @@ 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++)