]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix generation of colldef source files for non-UTF-8 locales
authorHiroki Sato <hrs@FreeBSD.org>
Tue, 29 Dec 2020 19:21:19 +0000 (04:21 +0900)
committerHiroki Sato <hrs@FreeBSD.org>
Tue, 29 Dec 2020 19:40:27 +0000 (04:40 +0900)
commit916806472a8a245e8f2ddfeea4a1db652879a6f6
treef09d8f1c2511840bdb1ffea2aedc155597b21820
parentf3f16c31fea258b2b1ec51ddd1bceb6207b66198
Fix generation of colldef source files for non-UTF-8 locales

- Files for colldef were generated by duplicating UTF-8 collation files
  for each language and included invalid characters in the non-UTF-8
  encodings.  localedef(1) does not allow those characters.
  cldr2def.pl now checks if the characters are valid based on charmap files.

  TODO: ja_JP.UTF-8 locale should not be generated solely from CLDR because
  it was standardized in a document "UI-OSF Application Platform Profile for
  Japanese Environment" which was incompatible with information in CLDR.
  Most of commercial Unix vendors adopt this pre-Unicode-era document
  as the reference even for UTF-8 locale.  Newer versions of Solaris have
  added a CLDR version as ja_JP.UTF-8@cldr, and IBM AIX has used
  JA_JP.UTF-8 for the UI-OSF specification and ja_JP.UTF-8 for CLDR.

  Note that this commit does not change generation of ja_JP.UTF-8.
  Changes related to this issue will be committed separately later.

- Generate POSIX charamap UTF-32 as a reference.  It was confusing that
  charmap.xml used Unicode names defined in UnicodeData.txt though POSIX
  charmap used slightly different names for the same code points.
  cldr2def.pl now uses UTF-32.cm as single information source for Unicode
  symbol names and code points.  Charset.xml is also updated to use them.

- Fix a bug in get_encodings() in cldr2def.pl which did not understand
  0x00+0x00 notation correctly in charmaps/ISCII-DEV.TXT.

- Do not regenerate posix/xx_Comm_C.UTF-8.src every time when doing
  "make build".

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27809
tools/tools/locale/Makefile
tools/tools/locale/README
tools/tools/locale/etc/charmaps.xml
tools/tools/locale/tools/cldr2def.pl