# HG changeset patch # User Bruno Haible # Date 1327955517 -3600 # Node ID 04de064f29e03bbcb46098a6c55ec93fd3f4d0c7 # Parent 1f8299e68189d32bf43f2468e19980376ca4872b wcwidth: Work around bug in UTF-8 locale on OpenBSD 5.0. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also wcwidth of U+05B0. * doc/posix-functions/wcwidth.texi: Mention the OpenBSD 5.0 bug. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-01-29 Bruno Haible + + wcwidth: Work around bug in UTF-8 locale on OpenBSD 5.0. + * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also wcwidth of U+05B0. + * doc/posix-functions/wcwidth.texi: Mention the OpenBSD 5.0 bug. + 2012-01-29 Bruno Haible quotearg: Fix test failure on MacOS X 10.5. diff --git a/doc/posix-functions/wcwidth.texi b/doc/posix-functions/wcwidth.texi --- a/doc/posix-functions/wcwidth.texi +++ b/doc/posix-functions/wcwidth.texi @@ -17,7 +17,7 @@ @item This function handles combining characters in UTF-8 locales incorrectly on some platforms: -MacOS X 10.3. +MacOS X 10.3, OpenBSD 5.0. @end itemize Portability problems not fixed by Gnulib: diff --git a/m4/wcwidth.m4 b/m4/wcwidth.m4 --- a/m4/wcwidth.m4 +++ b/m4/wcwidth.m4 @@ -1,4 +1,4 @@ -# wcwidth.m4 serial 21 +# wcwidth.m4 serial 22 dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -37,6 +37,7 @@ if test $ac_cv_func_wcwidth = yes; then HAVE_WCWIDTH=1 dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1. + dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1. dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1. dnl This leads to bugs in 'ls' (coreutils). AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales], @@ -69,8 +70,10 @@ { if (wcwidth (0x0301) > 0) result |= 1; + if (wcwidth (0x05B0) > 0) + result |= 2; if (wcwidth (0x200B) > 0) - result |= 2; + result |= 4; } return result; }]])],