Mercurial > hg > octave-lyh > gnulib-hg
changeset 16333:04de064f29e0
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.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 30 Jan 2012 21:31:57 +0100 |
parents | 1f8299e68189 |
children | 1ec7f32bf1ef |
files | ChangeLog doc/posix-functions/wcwidth.texi m4/wcwidth.m4 |
diffstat | 3 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-01-29 Bruno Haible <bruno@clisp.org> + + 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 <bruno@clisp.org> quotearg: Fix test failure on MacOS X 10.5.
--- 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:
--- 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; }]])],