| @node wcwidth | |
| @subsection @code{wcwidth} | |
| @findex wcwidth | |
| POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcwidth.html} | |
| Gnulib module: wcwidth | |
| @mindex wcwidth | |
| Portability problems fixed by Gnulib: | |
| @itemize | |
| @item | |
| This function is missing on some platforms: | |
| Minix 3.1.8, mingw, MSVC 14. | |
| @item | |
| This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms: | |
| glibc 2.8. | |
| @item | |
| This function handles combining characters in UTF-8 locales incorrectly on some | |
| platforms: | |
| macOS 14, NetBSD 9.3, OpenBSD 5.8, MidnightBSD 1.1. | |
| @item | |
| This function returns 2 for characters with ambiguous east asian width, even in | |
| Western locales, on some platforms: | |
| Solaris 11.4. | |
| @end itemize | |
| Portability problems not fixed by Gnulib: | |
| @itemize | |
| @item | |
| On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot | |
| accommodate all Unicode characters. | |
| @mindex c32width | |
| However, the Gnulib function @code{c32width}, provided by Gnulib module | |
| @code{c32width}, operates on 32-bit wide characters and therefore does not | |
| have this limitation. | |
| @item | |
| This function treats zero-width spaces like control characters on some | |
| platforms: | |
| AIX 7.2. | |
| @end itemize |