http://www.unicode.org/charts/
They are classified as PUNCT, which is historically used for characters other
than blank, alphabetic, or digit ones.
Glyph widths are taken from "East Asian Width":
https://www.unicode.org/Public/10.0.0/ucd/EastAsianWidth.txt
Characters of "F" or "W" are classified to SWIDTH2, and others are classified
to SWIDTH1, as implicitly done in the previous revisions.
Should address problems like PR bin/53323.
Discussed with soda@. We thank Takuya SHIOZAKI (tshiozak@) for useful comments.
from the Unicode Common Locale Data Repository.
Convert non-UTF-8 versions from the UTF-8 version using iconv and some
ad-hoc transliterations using sed.
Use EUR as currency_symbol in ISO8859-1.
Invert the Norwegian handling. no_NO is an alias for nb_NO as the latter
is used e.g. in CLDR.
Provide the Serbian locales in both Cyrilic and Latin script versions.
The alias is choosen based on the character set for the non-UTF-8 case
and Cyrillic is the default for UTF-8.
ok'ed by core and releng.
(thanks for agc@, snj@ and i'm sorry for long time patience).
[libc]
- localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by
new locale-db implementation using citrus_db backend,
see src/lib/libc/citrus/citrus_lc_*.[ch].
- add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation
internally, because they're locale-aware function.
- add some stubs for multi-locale issue, see {current,global}_locale.c.
- remove some obsolete file, setrunelocale.c, ___runetype_mb.c.
- remove __savectype() from ctypeio.[ch].
[tools]
- mklocale(1): add new option ``-t'' that generates new style
LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format.
- chrtbl(1): added ctypeio.[ch] for __savectype().
[locale-db]
- added en_US.US-ASCII locale.
- removed some shareable locale definition file:
en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8
zh_CN.eucCN -> zh_CN.GB18030
and more...see src/share/locale/*/Makefile.
- remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS.
- change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP*
for X11's locale.alias file alignments.
- fix regression test, wrong wcs?width(3), NAN/INF usage.
i tested release-build following arch:
i386, amd64, hpc{mips,arm,sh}, sparc64, vax.
citrus_lc_*.[ch] also can read old-plain-text style locale-db.
so that backward compatibility is keeped, but lc*.[ch] can't read
new citrus_db'ed locale-db and localeio.c never check sanity,
so forward compatibility is broken ;-<
old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
with modifications to the comments and sorted properly for NetBSD.
Additional Makefile work is still needed to generate the links for locales
with shared category files.
* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.
* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.