This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Locale control of ambiguous-width character properties
- From: Thomas Wolff <towo at towo dot net>
- To: cygwin at cygwin dot com, newlib at sourceware dot org
- Date: Sun, 25 Feb 2018 19:12:19 +0100
- Subject: Locale control of ambiguous-width character properties
- Authentication-results: sourceware.org; auth=none
It had been discussed how to reflect ambiguous character widths in
cygwin locales, with the result of an implicit wide property assumed for
the CJK locales, and an overriding @cjknarrow modifier:
https://sourceware.org/ml/cygwin/2009-06/msg00240.html
https://sourceware.org/ml/cygwin/2009-06/msg00521.html
https://sourceware.org/ml/cygwin/2009-06/msg00616.html
Now I’m getting occasional complaints about mintty support for wide
display of certain symbol characters, particularly as used for some
fancy “Powerline” add-on, and it seems that other terminals apply
“ambiguous wide mode” (e.g. xterm -cjk_width) in order to enable Powerline.
While mintty has an option Charwidth=ambig-wide meanwhile, using this
option clearly has the drawback that it makes character width handling
inconsistent with the locale model as used by wcwidth.
Actually for mintty, the desired behaviour can be achieved in a
locale-consistent way by selecting one of the CJK locales for LC_CTYPE;
that’s not what most people would expect, however, and if they do it the
easy way, using LANG or LC_ALL, they are baffled by also getting
their message language obscured.
So I would prefer the option to use ambiguous wide mode in combination
with non-CJK locales in a locale-compatible way.
For that matter, I’m asking to revisit the proposal of another generic
modifier, @cjkwide, applicable to non-CJK locales. I’m providing a patch
for that purpose, available for download here:
http://towo.net/cygwin/newlib/000-locale.zip
Thomas