[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
wcwidth on OpenBSD 4.0
From: |
Bruno Haible |
Subject: |
wcwidth on OpenBSD 4.0 |
Date: |
Tue, 8 Jan 2008 17:42:20 +0100 |
User-agent: |
KMail/1.9.1 |
Hi,
test-wcwidth fails on OpenBSD 4.0, because wcwidth returns 0 instead of 2
for many CJK characters. This should detect this bug:
2008-01-08 Bruno Haible <address@hidden>
* 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.
*** doc/functions/wcwidth.texi.orig 2008-01-08 17:39:24.000000000 +0100
--- doc/functions/wcwidth.texi 2008-01-08 17:39:15.000000000 +0100
***************
*** 15,20 ****
--- 15,24 ----
This function handles combining characters in UTF-8 locales incorrectly on
some
platforms:
MacOS X 10.3.
+ @item
+ This function handles double-width CJK characters in UTF-8 locales incorrectly
+ on some platforms:
+ OpenBSD 4.0.
@end itemize
Portability problems not fixed by Gnulib:
*** m4/wcwidth.m4.orig 2008-01-08 17:39:24.000000000 +0100
--- m4/wcwidth.m4 2008-01-08 17:27:26.000000000 +0100
***************
*** 1,5 ****
! # wcwidth.m4 serial 13
! dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- 1,5 ----
! # wcwidth.m4 serial 14
! dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
***************
*** 38,43 ****
--- 38,44 ----
else
dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
+ dnl On OpenBSD 4.0, wcwidth(0x3000) (IDEOGRAPHIC SPACE) returns 0.
dnl This leads to bugs in 'ls' (coreutils).
AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
[gl_cv_func_wcwidth_works],
***************
*** 64,70 ****
int main ()
{
if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
! if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
return 1;
return 0;
}], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no],
--- 65,71 ----
int main ()
{
if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
! if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0 || wcwidth (0x3000) <= 1)
return 1;
return 0;
}], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no],
- wcwidth on OpenBSD 4.0,
Bruno Haible <=