zsh-workers
 help / color / mirror / code / Atom feed
* Combining characters and MacOSX
@ 2008-04-18 15:52 Jun T.
  2008-04-18 16:06 ` Peter Stephenson
  2008-04-19  1:02 ` Vincent Lefevre
  0 siblings, 2 replies; 3+ messages in thread
From: Jun T. @ 2008-04-18 15:52 UTC (permalink / raw)
  To: zsh-workers

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Combining characters and MacOSX
  2008-04-18 15:52 Combining characters and MacOSX Jun T.
@ 2008-04-18 16:06 ` Peter Stephenson
  2008-04-19  1:02 ` Vincent Lefevre
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 2008-04-18 16:06 UTC (permalink / raw)
  To: zsh-workers

"Jun T." wrote:
> 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.
>
> 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

Yes, that should be usable.  Presumably it shouldn't be too difficult to
craft a configure test for whether the system's wcwidth() returns
something sensible on a standard zero-width character.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Combining characters and MacOSX
  2008-04-18 15:52 Combining characters and MacOSX Jun T.
  2008-04-18 16:06 ` Peter Stephenson
@ 2008-04-19  1:02 ` Vincent Lefevre
  1 sibling, 0 replies; 3+ messages in thread
From: Vincent Lefevre @ 2008-04-19  1:02 UTC (permalink / raw)
  To: zsh-workers

On 2008-04-19 00:52:19 +0900, Jun T. wrote:
> 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?

If you replace the whole wcwidth() function, make sure that it doesn't
become inconsistant with the other wc functions. For instance, the LRM
behavior is system-dependent:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=457634#13

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-04-19  1:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-18 15:52 Combining characters and MacOSX Jun T.
2008-04-18 16:06 ` Peter Stephenson
2008-04-19  1:02 ` Vincent Lefevre

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).