Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Combining characters and MacOSX



Since all the filenames are decomposed in MacOSX, I guess
many Mac users (including me) have been waiting for the
combining character support eagerly.

But the recent "combining character patch" does not work
on MacOSX, just because wcwidth() on MacOSX is broken.
For example,

wchar_t w = 0x0301; /* COMBINING ACUTE ACCENT */
printf("%d %d\n", wcwidth(w), iswpunct(w) );

this will print "0 1" on Linux but "1 0" on MacOSX. I think
this is a serious bug of MacOSX, but I don't know whether Apple
will fix this or not; maybe they won't at least in a near future.

Is it possible to include a working version of wcwidth()
in the zsh source tree and use it if the system's wcwidth()
is broken?
For example, a version written by Markus Kuhn can be found in:
http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
Gnulib also has wcwidth(), but I guess the above one is much
easier to include into the zsh source.

As I wrote in another post, use of iswpunct() can be avoided
if the combining character is defined solely by wcwidth(wc)==0.

Jun



Messages sorted by: Reverse Date, Date, Thread, Author