diff --git a/tools/tools/locale/Makefile b/tools/tools/locale/Makefile index 72eff91f6a0..d54167ce864 100644 --- a/tools/tools/locale/Makefile +++ b/tools/tools/locale/Makefile @@ -27,6 +27,7 @@ LC:= --lc=${LC} .endif all: + cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src .for t in ${TYPES} . if ${KNOWN:M${t}} test -d ${t} || mkdir ${t} @@ -64,13 +65,24 @@ build-${t}: env ${PASSON} tools/finalize ${t} .endfor +build-ctypedef: transfer-rollup + +transfer-rollup: + cp ${ETCDIR}/common.UTF-8.src ${CLDRDIR}/posix/xx_Comm_US.UTF-8.src + +rollup: + perl -I tools tools/utf8-rollup.pl \ + --cldr=$$(realpath ${CLDRDIR}) \ + --etc=$$(realpath ${ETCDIR}) + clean: .for t in ${TYPES} rm -rf ${t} ${t}.draft .endfor BASE_LOCALES_OF_INTEREST?= \ - af_ZA am_ET be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \ + af_ZA am_ET ar_AE ar_EG ar_JO ar_MA ar_QA ar_SA \ + be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \ cs_CZ da_DK de_AT de_CH de_DE el_GR en_AU en_CA \ en_GB en_HK en_IE en_NZ en_PH en_SG en_US en_ZA \ es_AR es_CR es_ES es_MX et_EE eu_ES fi_FI fr_BE \ @@ -80,7 +92,12 @@ BASE_LOCALES_OF_INTEREST?= \ ru_RU se_FI se_NO sk_SK sl_SI sv_FI sv_SE tr_TR \ uk_UA \ kk_Cyrl_KZ mn_Cyrl_MN sr_Cyrl_RS sr_Latn_RS \ - zh_Hans_CN zh_Hant_HK zh_Hant_TW + zh_Hans_CN zh_Hant_HK zh_Hant_TW \ + \ + \ + bn_IN gu_IN or_IN ta_IN te_IN kn_IN ml_IN si_LK \ + th_TH lo_LA bo_IN my_MM pa_Guru_IN ka_GE chr_US \ + km_KH shi_Tfng_MA ii_CN vai_Vaii_LR vi_VN POSIX: .if exists (${CLDRDIR}/tools/java/cldr.jar) diff --git a/tools/tools/locale/etc/charmaps.xml b/tools/tools/locale/etc/charmaps.xml index 0265bf4a661..052ccefdf75 100644 --- a/tools/tools/locale/etc/charmaps.xml +++ b/tools/tools/locale/etc/charmaps.xml @@ -28,10 +28,12 @@ --> + @@ -40,46 +42,57 @@ countries="BG" /> + encoding="ISO8859-15 US-ASCII" + countries="GB" /> + + countries="HK SG" /> + + + countries="AR MX" /> + encoding="ISO8859-15" + countries="BE CH FR" /> + + encoding="ISO8859-15" + countries="PT" /> + @@ -157,7 +173,7 @@ encoding="ISO8859-5" countries="RS" /> ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;...; +lower ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +alpha ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...; +space ;...;;/ + +cntrl ;...;;/ + +graph ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...; +punct ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + +digit ;...; +xdigit ;...;;/ + ;...;;/ + ;...; +blank ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (

,

,

);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0370 - 0x03FF Greek (No Coptic!) +* 0x1F00 - 0x1FFF Greek Extended +********************************************************************** +upper ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + +lower ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + +graph ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0400 - 0x04FF Cyrillic +* 0x0500 - 0x052F Cyrillic Supplementary +* 0x2DE0 - 0x2DFF Cyrillic Extended-A +* 0xA640 - 0xA69F Cyrillic Extended-B +********************************************************************** +upper ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +lower ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...; +alpha ;...;;/ + ;/ + ;...;;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + +punct ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0530 - 0x058F Armenian +* 0xFB00 - 0xFF4F Alphabetic Presentation Forms (partial) +********************************************************************** +upper ;...;;/ + ;...; +lower ;...;;/ + ;...;;/ + ;...; +alpha +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +punct ;...;;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0590 - 0x05FF Hebrew +* 0xFB00 - 0xFF4F Alphabetic Presentation Forms (partial) +********************************************************************** +alpha ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...; +punct ;/ + ;/ + ;/ + ;/ + ;/ + + +********************************************************************** +* 0x0600 - 0x06FF Arabic +* 0x0750 - 0x074F Arabic Supplement +* 0x08A0 - 0x08FF Arabic Extended-A +* 0xFB50 - 0xFDFF Arabic Presentation Forms (partial) +* 0xFE70 - 0xFEFF Arabic Presentation Forms-B (partial) +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;/ + ;/ + ;/ + ;/ + ;...;;/ + + +********************************************************************** +* 0x0900 - 0x097F Devanagari +* 0xA8E0 - 0xA8FF Devanagari Extended +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;/ + ;...; + +********************************************************************** +* 0x0900 - 0x097F Bengali +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x0A00 - 0x0A7F Gurmukhi +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...; +graph ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;...; + +********************************************************************** +* 0x0A80 - 0x0AFF Gujarati +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +punct + +********************************************************************** +* 0x0B00 - 0x0B7F Oriya +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + +graph ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x0B80 - 0x0BFF Tamil +********************************************************************** +alpha ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + +graph ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...; + +********************************************************************** +* 0x0C00 - 0x0C7F Telugu +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x0C80 - 0x0CFF Kannada +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + + +********************************************************************** +* 0x0D00 - 0x0D7F Malayalam +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x0D80 - 0x0DFF Sinhala +********************************************************************** +alpha ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + +graph ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...; +punct + +********************************************************************** +* 0x0E00 - 0x0E7F Thai +********************************************************************** +alpha ;...;;/ + ;...;;/ + +graph ;...;;/ + ;...; +punct ;/ + ;/ + + +********************************************************************** +* 0x0E80 - 0x0EFF Lao +********************************************************************** +alpha ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...; +graph ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x0F00 - 0x0FFF Tibetan +********************************************************************** +alpha ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + +punct ;...;;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + + +********************************************************************** +* 0x1000 - 0x109F Myanmar +* 0xA9E0 - 0xA9FF Myanmar Extended-B +* 0xAA60 - 0xAA7F Myanmar Extended-A +********************************************************************** +alpha ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;...; + +********************************************************************** +* 0x10A0 - 0x10FF Georgia +* 0x2D00 - 0x2D2F Georgian Supplement +********************************************************************** +upper ;...;;/ + ;...;;/ + ;/ + +lower ;...;;/ + ;/ + +alpha ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x1100 - 0x11FF Hangul Jamo +* 0x3000 - 0x30FF CJK Symbols and Punctuation (partial) +* 0x3040 - 0x309F Hiragana +* 0x30A0 - 0x30FF Katakana +* 0x31F0 - 0x31FF Katakana Phonetic Extensions +* 0x3130 - 0x318F Hangul Compatibility Jamo (partial) +* 0x3200 - 0x32FF Enclosed CJK Letters and Months (partial) +* 0x3300 - 0x33FF CJK Compatibility +* 0x3400 - 0x4DB5 CJK Unified Ideographs Extension-A (added) +* 0x4E00 - 0x9FCC CJK Unified Ideographs (overridden) +* 0xAC00 - 0xA7A3 Hangul Syllables (partial) +* 0xD7B0 - 0xD7FF Hangul Jamo Extended-B +* 0xF900 - 0xFAFF CJK Compatibility Ideographs (partial) +* 0xFF00 - 0xFFEF Halfwidth and Fullwidth Forms (partial) +********************************************************************** +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +alpha ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; + +********************************************************************** +* 0x1200 - 0x137F Ethiopic +* 0x1380 - 0x139F Ethiopic Supplement +* 0x2D80 - 0x2DDF Ethiopic Extended +* 0xAB00 - 0xAB2F Ethiopic Extended-A +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;...; + +********************************************************************** +* 0x13A0 - 0x13FF Cherokee +********************************************************************** +alpha ;...;;/ + ;...; +graph ;...;;/ + ;...; + +********************************************************************** +* 0x1780 - 0x17FF Khmer +* 0x19E0 - 0x19FF Khmer Symbols +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;...;;/ + ;...; + +********************************************************************** +* 0x2D30 - 0x2D2F Tifinagh +********************************************************************** +alpha ;...;;/ + ;...;;/ + +graph ;...;;/ + ;...;;/ + ;/ + ;/ + +punct + +********************************************************************** +* 0xA000 - 0xA48F Yi Syllables +* 0xA490 - 0xA4CF Yi Radicals +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; + +********************************************************************** +* 0xA500 - 0xA63F Vai +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +punct ;...; + +********************************************************************** +* 0x3130 - 0x318F Hangul Compatibility Jamo (partial) +* 0xA960 - 0xA97F Hangul Jamo Extended-A +* 0xAC00 - 0xA7A3 Hangul Syllables (partial) +* 0xFF00 - 0xFFEF Halfwidth and Fullwidth Forms (partial) +********************************************************************** +alpha ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; +graph ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...; + +******* REMAINING DEFINITIONS ARE MANUALLY ASSEMBLED ******* + +blank +digit ;; +punct ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +number ;...; +cntrl ;...; +graph ;...; + +punct ; +graph ; + +********************************************************************** +* Complete set of "special" characters +********************************************************************** + +special ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...; + +********************************************************************** +* Supplement generated sections with "number" classification +********************************************************************** + +digit ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +number ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x02B0 - 0x02FF Spacing Modification Letters +********************************************************************** + +graph ;...; +punct ;...;;/ + ;...;;/ + ;...;/ + +lower ;...;;/ + ;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x0300 - 0x036F Combining Diacritical Marks +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0300 - 0x0370 Coptic (Automatic section skips it) +********************************************************************** + +graph ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +upper ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +lower ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0700 - 0x074F Syriac +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0780 - 0x07BF Thaana +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x07C0 - 0x07FF Nko +********************************************************************** + +digit ;...; +graph ;...; + +********************************************************************** +* 0x0800 - 0x083F Samaritan +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0840 - 0x085F Mandaic +********************************************************************** + +graph ;...;;/ + + +********************************************************************** +* 0x1400 - 0x167F Unified Canadian Aboriginal Syllabics +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1680 - 0x169F Ogham +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x16A0 - 0x16FF Runic +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0x1700 - 0x171F Tagalog +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1720 - 0x173F Hanunoo +********************************************************************** + +graph ;...; + +*********************************************************************** +* 0x1740 - 0x175F Buhid +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1760 - 0x177F Tagbanwa +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1800 - 0x18AF Mongolian +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...;/ + +digit ;...; + +********************************************************************** +* 0x18B0 - 0x18FF Unified CA Aboriginal Syllabics Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1900 - 0x194F Limbu +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x1950 - 0x197F Tai Le +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0x1980 - 0x19DF New Tai Le +********************************************************************** + +graph ;...;;/ + ;...;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x1A00 - 0x1A1F Buginese +********************************************************************** + +graph ;...;;/ + ;/ + + +********************************************************************** +* 0x1A20 - 0x1AAF Tai Tham +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;/ + ;...; +digit ;...;;/ + ;...; + +********************************************************************** +* 0x1AB0 - 0x1AFF Combining Diacritical Marks Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1B00 - 0x1B7F Balinese +********************************************************************** + +graph ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0x1B80 - 0x1BBF Sundanese +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0x1BC0 - 0x1BFF Batak +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0x1C00 - 0x1C4F Lepcha +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0x1C50 - 0x1C7F Ol Chiki +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0x1CC0 - 0x1CCF Sundanese Supplement +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x1CD0 - 0x1CFF Vedic Extensions +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1DC0 - 0x1DFF Combining Diacritical Marks Supplement +********************************************************************** + +graph ;...;;/ + ;...;/ + + +********************************************************************** +* 0x2000 - 0x206F General Punctuation +********************************************************************** + +space ;...;;/ + ;...; +punct ;...;;/ + ;...; + +********************************************************************** +* 0x2070 - 0x209F Superscripts and Subscripts +********************************************************************** + +graph ;...; +digit +digit ;...; +digit ;...; +punct ;...; +punct ;...; +lower ;/ + ;/ + ;...; + +********************************************************************** +* 0x20A0 - 0x20CF Currency Symbols +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x20D0 - 0x20FF Combining Diacritical Marks for Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x2100 - 0x214F Letterlike Symbols +********************************************************************** + +graph ;...; +punct ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + +upper ;; +lower +alpha ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +tolower (,);/ + (,);/ + (,) +toupper (,) + +********************************************************************** +* 0x2150 - 0x218F Number Forms (differential) +********************************************************************** + +number ;...;;/ + + +********************************************************************** +* 0x2190 - 0x21FF Arrows +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2200 - 0x22FF Mathematical Operators +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2300 - 0x23FF Miscellaneous Technical +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2400 - 0x243F Control Pictures +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2440 - 0x245F Optical Character Recognition +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2460 - 0x24FF Enclosed Alphanumerics +********************************************************************** + +graph ;...; +digit ;...; +digit ;...; +digit ;...; +digit +digit ;...; +digit +xdigit ;...; +xdigit ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number +lower ;...; +upper ;...; +lower ;...; +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x2500 - 0x257F Box Drawing +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2580 - 0x259F Block Elements +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x25A0 - 0x25FF Geometric Shapes +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2600 - 0x26FF Miscellaneous symbols +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2700 - 0x27BF Dingbats +********************************************************************** + +graph ;...; +digit ;...; +number +digit ;...; +number +digit ;...; +number +punct ;...;;/ + ;...; + +********************************************************************** +* 0x27C0 - 0x27EF Miscellaneous Mathematical Symbols-A +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x27F0 - 0x27FF Supplemental Arrows-A +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2800 - 0x28FF Braille Patterns +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2900 - 0x297F Supplemental Arrows-B +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2980 - 0x29FF Miscellaneouis Mathematical Symbols-B +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2A00 - 0x2AFF Supplemental Mathematical Operators +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2B00 - 0x2BFF Miscellaneous Symbols and Arrows +********************************************************************** + +graph ;...;;/ + ;...;/ + ;/ + ;...;/ + ;/ + ;...; +punct ;...;;/ + ;...;/ + ;/ + ;...;/ + ;/ + ;...; + +********************************************************************** +* 0x2C00 - 0x2C5F Glagolitic +********************************************************************** + +graph ;...;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x2C80 - 0x2CFF Coptic +********************************************************************** + +graph ;...;;/ + ;...; +number + +********************************************************************** +* 0x2E00 - 0x2E7F Supplemental Punctuation +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2E80 - 0x2EFF CJK Radicals Supplement +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2F00 - 0x2FDF Kangxi Radicals +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2FF0 - 0x2FFF Ideographic Description Characters +********************************************************************** + +punct ;...;/ + + +********************************************************************** +* 0x3000 - 0x30FF CJK Symbols and Punctuation +********************************************************************** + +space +graph ;...; +number ;/ + ;...;;/ + ;...; +alpha ;/ + ;/ + +punct ;...;;/ + ;...;;/ + ;...;/ + ;/ + ;...; + +********************************************************************** +* 0x3100 - 0x312F Bopomofo +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x3190 - 0x319F Kanbun +********************************************************************** + +graph ;...;/ + +number ;...;/ + +punct ;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x31A0 - 0x31BF : Bopomofo Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x31C0 - 0x31EF : CJK Strokes +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x4DC0 - 0x4DFF Yijing Hexagram Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA4D0 - 0xA4FF Lisu +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA6A0 - 0xA6FF Bamum +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0xA700 - 0xA71F Modifier Tone Letters +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0xA800 - 0xA82F Syloti Nagri +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA830 - 0x083F Common Indic Number Forms +********************************************************************** + +number ;...; +graph ;...; + +********************************************************************** +* 0xA840 - 0xA87F Phags-pa +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA880 - 0xA8DF Saurashra +********************************************************************** + +graph ;...;;/ + ;/ + +digit ;...; + +********************************************************************** +* 0xA900 - 0xA92F Kayah Li +********************************************************************** + +digit ;...; +graph ;...; + +********************************************************************** +* 0xA930 - 0xA95F Rejang +********************************************************************** + +graph ;...;;/ + + +********************************************************************** +* 0xA980 - 0xA9DF Javanese +********************************************************************** + +graph ;...;;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0xAA00 - 0xAA5F Cham +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0xAA80 - 0xAADF Tal Viet +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0xAAE0 - 0xAAFF Meetei Mayek Extensions +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xABC0 - 0xABFF Meetei Mayek +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0xFB50 - 0xFDFF Arabic Presentation Forms (differential) +********************************************************************** + +punct ;/ + + +********************************************************************** +* 0xFE10 - 0xFE1F Vertical Forms +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0xFE20 - 0xFE2F Combining Half Marks +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xFE30 - 0xFE4F CJK Compatibility Forms +********************************************************************** + +punct ;...; + +********************************************************************** +* 0xFE50 - 0xFE6F Small Form Variants +********************************************************************** + +punct ;...; + +********************************************************************** +* 0xFE70 - 0xFEFF Arabic Presentation Forms-B (differential) +********************************************************************** + +blank + +********************************************************************** +* 0x10300 - 0x1032F Old Italic +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0x10330 - 0x1034F Gothic +********************************************************************** + +graph ;...; +number + +********************************************************************** +* 0x1D100 - 0x1D1FF Musical Symbols +********************************************************************** + +punct ;...;;/ + ;...;;/ + +cntrl ;...; +graph ;...; + +********************************************************************** +* 0x1D400 - 0x1D7FF Mathematical Alphanumeric Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F600 - 0x1F64F Emoticons (Emoji) +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F680 - 0x1F6FF Transport and Map Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F700 - 0x1F77F Alchemical Symbols +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x1F800 - 0x1F8FF Supplemental Arrows-C +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x20000 - 0x2A6D6 CJK Unified Ideographs Extension B +********************************************************************** + +alpha ;...; + +********************************************************************** +* 0x2A700 - 0x2B734 CJK Unified Ideographs Extension C +********************************************************************** + +alpha ;...; + +********************************************************************** +* 0x2B740 - 0x2B81D CJK Unified Ideographs Extension D +********************************************************************** + +alpha ;...; + +END LC_CTYPE diff --git a/tools/tools/locale/etc/manual-input.UTF-8 b/tools/tools/locale/etc/manual-input.UTF-8 new file mode 100644 index 00000000000..f234a9b711d --- /dev/null +++ b/tools/tools/locale/etc/manual-input.UTF-8 @@ -0,0 +1,989 @@ + +******* REMAINING DEFINITIONS ARE MANUALLY ASSEMBLED ******* + +blank +digit ;; +punct ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +number ;...; +cntrl ;...; +graph ;...; + +punct ; +graph ; + +********************************************************************** +* Complete set of "special" characters +********************************************************************** + +special ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;...;;/ + ;...; + +********************************************************************** +* Supplement generated sections with "number" classification +********************************************************************** + +digit ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +digit ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +digit ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +number ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x02B0 - 0x02FF Spacing Modification Letters +********************************************************************** + +graph ;...; +punct ;...;;/ + ;...;;/ + ;...;/ + +lower ;...;;/ + ;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x0300 - 0x036F Combining Diacritical Marks +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0300 - 0x0370 Coptic (Automatic section skips it) +********************************************************************** + +graph ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +upper ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +lower ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x0700 - 0x074F Syriac +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0780 - 0x07BF Thaana +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x07C0 - 0x07FF Nko +********************************************************************** + +digit ;...; +graph ;...; + +********************************************************************** +* 0x0800 - 0x083F Samaritan +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x0840 - 0x085F Mandaic +********************************************************************** + +graph ;...;;/ + + +********************************************************************** +* 0x1400 - 0x167F Unified Canadian Aboriginal Syllabics +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1680 - 0x169F Ogham +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x16A0 - 0x16FF Runic +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0x1700 - 0x171F Tagalog +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1720 - 0x173F Hanunoo +********************************************************************** + +graph ;...; + +*********************************************************************** +* 0x1740 - 0x175F Buhid +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1760 - 0x177F Tagbanwa +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1800 - 0x18AF Mongolian +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...;/ + +digit ;...; + +********************************************************************** +* 0x18B0 - 0x18FF Unified CA Aboriginal Syllabics Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1900 - 0x194F Limbu +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x1950 - 0x197F Tai Le +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0x1980 - 0x19DF New Tai Le +********************************************************************** + +graph ;...;;/ + ;...;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0x1A00 - 0x1A1F Buginese +********************************************************************** + +graph ;...;;/ + ;/ + + +********************************************************************** +* 0x1A20 - 0x1AAF Tai Tham +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;/ + ;...; +digit ;...;;/ + ;...; + +********************************************************************** +* 0x1AB0 - 0x1AFF Combining Diacritical Marks Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1B00 - 0x1B7F Balinese +********************************************************************** + +graph ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0x1B80 - 0x1BBF Sundanese +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0x1BC0 - 0x1BFF Batak +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0x1C00 - 0x1C4F Lepcha +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0x1C50 - 0x1C7F Ol Chiki +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0x1CC0 - 0x1CCF Sundanese Supplement +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x1CD0 - 0x1CFF Vedic Extensions +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1DC0 - 0x1DFF Combining Diacritical Marks Supplement +********************************************************************** + +graph ;...;;/ + ;...;/ + + +********************************************************************** +* 0x2000 - 0x206F General Punctuation +********************************************************************** + +space ;...;;/ + ;...; +punct ;...;;/ + ;...; + +********************************************************************** +* 0x2070 - 0x209F Superscripts and Subscripts +********************************************************************** + +graph ;...; +digit +digit ;...; +digit ;...; +punct ;...; +punct ;...; +lower ;/ + ;/ + ;...; + +********************************************************************** +* 0x20A0 - 0x20CF Currency Symbols +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x20D0 - 0x20FF Combining Diacritical Marks for Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x2100 - 0x214F Letterlike Symbols +********************************************************************** + +graph ;...; +punct ;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + +upper ;; +lower +alpha ;/ + ;/ + ;...;;/ + ;/ + ;...;;/ + ;/ + ;/ + ;/ + ;...;;/ + ;...;;/ + ;/ + ;...;;/ + ;...; +tolower (,);/ + (,);/ + (,) +toupper (,) + +********************************************************************** +* 0x2150 - 0x218F Number Forms (differential) +********************************************************************** + +number ;...;;/ + + +********************************************************************** +* 0x2190 - 0x21FF Arrows +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2200 - 0x22FF Mathematical Operators +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2300 - 0x23FF Miscellaneous Technical +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2400 - 0x243F Control Pictures +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2440 - 0x245F Optical Character Recognition +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2460 - 0x24FF Enclosed Alphanumerics +********************************************************************** + +graph ;...; +digit ;...; +digit ;...; +digit ;...; +digit +digit ;...; +digit +xdigit ;...; +xdigit ;...; +number ;...; +number ;...; +number ;...; +number ;...; +number +lower ;...; +upper ;...; +lower ;...; +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +********************************************************************** +* 0x2500 - 0x257F Box Drawing +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2580 - 0x259F Block Elements +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x25A0 - 0x25FF Geometric Shapes +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2600 - 0x26FF Miscellaneous symbols +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2700 - 0x27BF Dingbats +********************************************************************** + +graph ;...; +digit ;...; +number +digit ;...; +number +digit ;...; +number +punct ;...;;/ + ;...; + +********************************************************************** +* 0x27C0 - 0x27EF Miscellaneous Mathematical Symbols-A +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x27F0 - 0x27FF Supplemental Arrows-A +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2800 - 0x28FF Braille Patterns +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2900 - 0x297F Supplemental Arrows-B +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2980 - 0x29FF Miscellaneouis Mathematical Symbols-B +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2A00 - 0x2AFF Supplemental Mathematical Operators +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2B00 - 0x2BFF Miscellaneous Symbols and Arrows +********************************************************************** + +graph ;...;;/ + ;...;/ + ;/ + ;...;/ + ;/ + ;...; +punct ;...;;/ + ;...;/ + ;/ + ;...;/ + ;/ + ;...; + +********************************************************************** +* 0x2C00 - 0x2C5F Glagolitic +********************************************************************** + +graph ;...;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x2C80 - 0x2CFF Coptic +********************************************************************** + +graph ;...;;/ + ;...; +number + +********************************************************************** +* 0x2E00 - 0x2E7F Supplemental Punctuation +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2E80 - 0x2EFF CJK Radicals Supplement +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2F00 - 0x2FDF Kangxi Radicals +********************************************************************** + +punct ;...; + +********************************************************************** +* 0x2FF0 - 0x2FFF Ideographic Description Characters +********************************************************************** + +punct ;...;/ + + +********************************************************************** +* 0x3000 - 0x30FF CJK Symbols and Punctuation +********************************************************************** + +space +graph ;...; +number ;/ + ;...;;/ + ;...; +alpha ;/ + ;/ + +punct ;...;;/ + ;...;;/ + ;...;/ + ;/ + ;...; + +********************************************************************** +* 0x3100 - 0x312F Bopomofo +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x3190 - 0x319F Kanbun +********************************************************************** + +graph ;...;/ + +number ;...;/ + +punct ;/ + ;/ + ;...;/ + + +********************************************************************** +* 0x31A0 - 0x31BF : Bopomofo Extended +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x31C0 - 0x31EF : CJK Strokes +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x4DC0 - 0x4DFF Yijing Hexagram Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA4D0 - 0xA4FF Lisu +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA6A0 - 0xA6FF Bamum +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0xA700 - 0xA71F Modifier Tone Letters +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0xA800 - 0xA82F Syloti Nagri +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA830 - 0x083F Common Indic Number Forms +********************************************************************** + +number ;...; +graph ;...; + +********************************************************************** +* 0xA840 - 0xA87F Phags-pa +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xA880 - 0xA8DF Saurashra +********************************************************************** + +graph ;...;;/ + ;/ + +digit ;...; + +********************************************************************** +* 0xA900 - 0xA92F Kayah Li +********************************************************************** + +digit ;...; +graph ;...; + +********************************************************************** +* 0xA930 - 0xA95F Rejang +********************************************************************** + +graph ;...;;/ + + +********************************************************************** +* 0xA980 - 0xA9DF Javanese +********************************************************************** + +graph ;...;;/ + ;/ + ;/ + +digit ;...; + +********************************************************************** +* 0xAA00 - 0xAA5F Cham +********************************************************************** + +graph ;...;;/ + ;...;;/ + ;...; +digit ;...; + +********************************************************************** +* 0xAA80 - 0xAADF Tal Viet +********************************************************************** + +graph ;...;;/ + ;...; + +********************************************************************** +* 0xAAE0 - 0xAAFF Meetei Mayek Extensions +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xABC0 - 0xABFF Meetei Mayek +********************************************************************** + +graph ;...; +digit ;...; + +********************************************************************** +* 0xFB50 - 0xFDFF Arabic Presentation Forms (differential) +********************************************************************** + +punct ;/ + + +********************************************************************** +* 0xFE10 - 0xFE1F Vertical Forms +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0xFE20 - 0xFE2F Combining Half Marks +********************************************************************** + +graph ;...; + +********************************************************************** +* 0xFE30 - 0xFE4F CJK Compatibility Forms +********************************************************************** + +punct ;...; + +********************************************************************** +* 0xFE50 - 0xFE6F Small Form Variants +********************************************************************** + +punct ;...; + +********************************************************************** +* 0xFE70 - 0xFEFF Arabic Presentation Forms-B (differential) +********************************************************************** + +blank + +********************************************************************** +* 0x10300 - 0x1032F Old Italic +********************************************************************** + +graph ;...; +number ;...; + +********************************************************************** +* 0x10330 - 0x1034F Gothic +********************************************************************** + +graph ;...; +number + +********************************************************************** +* 0x1D100 - 0x1D1FF Musical Symbols +********************************************************************** + +punct ;...;;/ + ;...;;/ + +cntrl ;...; +graph ;...; + +********************************************************************** +* 0x1D400 - 0x1D7FF Mathematical Alphanumeric Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F600 - 0x1F64F Emoticons (Emoji) +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F680 - 0x1F6FF Transport and Map Symbols +********************************************************************** + +graph ;...; + +********************************************************************** +* 0x1F700 - 0x1F77F Alchemical Symbols +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x1F800 - 0x1F8FF Supplemental Arrows-C +********************************************************************** + +graph ;...;/ + + +********************************************************************** +* 0x20000 - 0x2A6D6 CJK Unified Ideographs Extension B +********************************************************************** + +alpha ;...; + +********************************************************************** +* 0x2A700 - 0x2B734 CJK Unified Ideographs Extension C +********************************************************************** + +alpha ;...; + +********************************************************************** +* 0x2B740 - 0x2B81D CJK Unified Ideographs Extension D +********************************************************************** + +alpha ;...; diff --git a/tools/tools/locale/tools/cldr2def.pl b/tools/tools/locale/tools/cldr2def.pl index 3fb1b5396cd..fec503ca3fa 100755 --- a/tools/tools/locale/tools/cldr2def.pl +++ b/tools/tools/locale/tools/cldr2def.pl @@ -58,7 +58,7 @@ my %FILESNAMES = ( "timedef" => "LC_TIME", "msgdef" => "LC_MESSAGES", "numericdef" => "LC_NUMERIC", - "colldef" => "LC_COLLATE", + "colldef" => "LC_COLLATE", "ctypedef" => "LC_CTYPE" ); @@ -348,19 +348,9 @@ sub transform_ctypes { $file .= $c; my $actfile = $file; - my $filename = "$CLDRDIR/posix/$file.$DEFENCODING.src"; - $filename = "$ETCDIR/$file.$DEFENCODING.src" - if (! -f $filename); - if (! -f $filename - && defined $languages{$l}{$f}{fallback}) { - $file = $languages{$l}{$f}{fallback}; - $filename = "$CLDRDIR/posix/$file.$DEFENCODING.src"; - } - $filename = "$CLDRDIR/posix/$file.$DEFENCODING.src" - if (! -f $filename); + my $filename = "$CLDRDIR/posix/xx_Comm_US.UTF-8.src"; if (! -f $filename) { - print STDERR - "Cannot open $file.$DEFENCODING.src or fallback\n"; + print STDERR "Cannot open $filename\n"; next; } open(FIN, "$filename"); @@ -370,34 +360,45 @@ sub transform_ctypes { my $shex; my $uhex; while () { - if ((/^comment_char\s/) || (/^escape_char\s/)){ - push @lines, $_; - } - if (/^LC_CTYPE/../^END LC_CTYPE/) { - push @lines, $_; - } + push @lines, $_; } close(FIN); $shex = sha1_hex(join("\n", @lines)); $languages{$l}{$f}{data}{$c}{$DEFENCODING} = $shex; $hashtable{$shex}{"${l}_${f}_${c}.$DEFENCODING"} = 1; open(FOUT, ">$TYPE.draft/$actfile.$DEFENCODING.src"); - print FOUT <) { + if ((/^comment_char\s/) || (/^escape_char\s/)){ + push @lines, $_; + } + if (/^LC_CTYPE/../^END LC_CTYPE/) { + push @lines, $_; + } + } + close(FIN); + $uhex = sha1_hex(join("\n", @lines) . $enc); + $languages{$l}{$f}{data}{$c}{$enc} = $uhex; + $hashtable{$uhex}{"${l}_${f}_${c}.$enc"} = 1; + open(FOUT, ">$TYPE.draft/$actfile.$enc.src"); + print FOUT <$TYPE.draft/Makefile"); print FOUT < 0) { my $link = shift(@files); @@ -909,7 +927,7 @@ SYMLINKS+= ../\${f:C/:.*\$//}/\${FILESNAME} \${LOCALEDIR}/\${f:C/^.*://} FILESDIR_\${f}.${SRCOUT2}= \${LOCALEDIR}/\${f} .endfor -.include +${SRCOUT3}.include EOF close(FOUT); diff --git a/tools/tools/locale/tools/finalize b/tools/tools/locale/tools/finalize index 3f07f2478bb..f8c0ce9934f 100755 --- a/tools/tools/locale/tools/finalize +++ b/tools/tools/locale/tools/finalize @@ -23,37 +23,28 @@ old=${base}/../${1}.draft new=${base}/../${1} TEMP=/tmp/${1}.locales TEMP2=/tmp/${1}.hashes +TEMP3=/tmp/${1}.symlinks FULLMAP=/tmp/utf8-map FULLEXTRACT=/tmp/extracted-names AWKCMD="/## PLACEHOLDER/ { \ while ( getline line < \"${TEMP}\" ) {print line} } \ - !/## PLACEHOLDER/ { print \$0 }" + /## SYMPAIRS/ { \ + while ( getline line < \"${TEMP3}\" ) {print line} } \ + !/## / { print \$0 }" grep '^LOCALES+' ${old}/Makefile > ${TEMP} -if [ $1 = "ctypedef" ] -then -keep=$(cat ${TEMP} | awk '/UTF-8/ { print $2 }') -else -keep=$(cat ${TEMP} | awk '{ print $2 }') -fi - -for original in ${keep} -do - cp ${old}/${original}.src ${new}/ -done - if [ $1 = "ctypedef" ] then keep=$(cat ${TEMP} | awk '{ print $2 ".src" }') (cd ${old} && md5 -r ${keep} | sort) > ${TEMP2} -linx=$(cat ${TEMP2} | awk '!/UTF-8/ { print $2 }') -for original in ${linx} +keep=$(awk '{ if ($1 != last1) print $2; last1 = $1; }' ${TEMP2}) +for original in ${keep} do -linkhash=$(fgrep "${original}" ${TEMP2} | awk '{ print $1 }') -utf8file=$(fgrep "${linkhash}" ${TEMP2} | fgrep 'UTF-8' | awk '{ print $2 }') -ln -s ${utf8file} ${new}/${original} + cp ${old}/${original} ${new}/ done +awk '{ if ($1 == last1) { print "SYMPAIRS+=\t" last2 ":" $2 } \ +else {last1 = $1; last2 = $2}}' ${TEMP2} > ${TEMP3} rm -f ${TEMP2} /usr/bin/sed -E -e 's/[ ]+/ /g' \ ${CLDRDIR}/posix/UTF-8.cm \ @@ -80,8 +71,16 @@ fi echo map ${map} converted. done +else # below is everything but ctypedef + +keep=$(cat ${TEMP} | awk '{ print $2 }') +for original in ${keep} +do + cp ${old}/${original}.src ${new}/ +done + fi grep -v '^LOCALES+' ${old}/Makefile | awk "${AWKCMD}" > ${new}/Makefile -rm -f ${TEMP} +rm -f ${TEMP} ${TEMP3} diff --git a/tools/tools/locale/tools/utf8-rollup.pl b/tools/tools/locale/tools/utf8-rollup.pl new file mode 100755 index 00000000000..a04e77eaa07 --- /dev/null +++ b/tools/tools/locale/tools/utf8-rollup.pl @@ -0,0 +1,373 @@ +#!/usr/local/bin/perl -wC + +use strict; +#use File::Copy; +#use XML::Parser; +use Tie::IxHash; +#use Data::Dumper; +use Getopt::Long; +#use Digest::SHA qw(sha1_hex); +#require "charmaps.pm"; + + +if ($#ARGV != 1) { + print "Usage: $0 --cldr= --etc=\n"; + exit(1); +} + +my $CLDRDIR = undef; +my $ETCDIR = undef; + +my $result = GetOptions ( + "cldr=s" => \$CLDRDIR, + "etc=s" => \$ETCDIR, + ); + +my @SECTIONS = ( + ["en_US", "* 0x0000 - 0x007F Basic Latin\n" . + "* 0x0080 - 0x00FF Latin-1 Supplement\n" . + "* 0x0100 - 0x017F Latin Extended-A\n" . + "* 0x0180 - 0x024F Latin Extended-B\n" . + "* 0x0250 - 0x02AF IPA Extensions\n" . + "* 0x1D00 - 0x1D7F Phonetic Extensions\n" . + "* 0x1D80 - 0x1DBF Phonetic Extensions Supplement\n" . + "* 0x1E00 - 0x1EFF Latin Extended Additional\n" . + "* 0x2150 - 0x218F Number Forms (partial - Roman Numerals)\n". + "* 0x2C60 - 0x2C7F Latin Extended-C\n" . + "* 0xA720 - 0xA7FF Latin Extended-D\n" . + "* 0xAB30 - 0xAB6F Latin Extended-E\n" . + "* 0xFB00 - 0xFF4F Alphabetic Presentation Forms (partial)\n". + "* 0xFF00 - 0xFFEF Halfwidth and Fullwidth Forms (partial)\n"], + ["el_GR", "* 0x0370 - 0x03FF Greek (No Coptic!)\n" . + "* 0x1F00 - 0x1FFF Greek Extended\n"], + ["ru_RU", "* 0x0400 - 0x04FF Cyrillic\n" . + "* 0x0500 - 0x052F Cyrillic Supplementary\n" . + "* 0x2DE0 - 0x2DFF Cyrillic Extended-A\n" . + "* 0xA640 - 0xA69F Cyrillic Extended-B\n"], + ["hy_AM", "* 0x0530 - 0x058F Armenian\n" . + "* 0xFB00 - 0xFF4F Alphabetic Presentation Forms (partial)\n"], + ["he_IL", "* 0x0590 - 0x05FF Hebrew\n" . + "* 0xFB00 - 0xFF4F Alphabetic Presentation Forms (partial)\n"], + ["ar_SA", "* 0x0600 - 0x06FF Arabic\n" . + "* 0x0750 - 0x074F Arabic Supplement\n" . + "* 0x08A0 - 0x08FF Arabic Extended-A\n" . + "* 0xFB50 - 0xFDFF Arabic Presentation Forms (partial)\n" . + "* 0xFE70 - 0xFEFF Arabic Presentation Forms-B (partial)\n"], + ["hi_IN", "* 0x0900 - 0x097F Devanagari\n" . + "* 0xA8E0 - 0xA8FF Devanagari Extended\n"], + ["bn_IN", "* 0x0900 - 0x097F Bengali\n"], + ["pa_Guru_IN", "* 0x0A00 - 0x0A7F Gurmukhi\n"], + ["gu_IN", "* 0x0A80 - 0x0AFF Gujarati\n"], + ["or_IN", "* 0x0B00 - 0x0B7F Oriya\n"], + ["ta_IN", "* 0x0B80 - 0x0BFF Tamil\n"], + ["te_IN", "* 0x0C00 - 0x0C7F Telugu\n"], + ["kn_IN", "* 0x0C80 - 0x0CFF Kannada\n"], + ["ml_IN", "* 0x0D00 - 0x0D7F Malayalam\n"], + ["si_LK", "* 0x0D80 - 0x0DFF Sinhala\n"], + ["th_TH", "* 0x0E00 - 0x0E7F Thai\n"], + ["lo_LA", "* 0x0E80 - 0x0EFF Lao\n"], + ["bo_IN", "* 0x0F00 - 0x0FFF Tibetan\n"], + ["my_MM", "* 0x1000 - 0x109F Myanmar\n" . + "* 0xA9E0 - 0xA9FF Myanmar Extended-B\n" . + "* 0xAA60 - 0xAA7F Myanmar Extended-A\n"], + ["ka_GE", "* 0x10A0 - 0x10FF Georgia\n" . + "* 0x2D00 - 0x2D2F Georgian Supplement\n"], + ["ja_JP", "* 0x1100 - 0x11FF Hangul Jamo\n" . + "* 0x3000 - 0x30FF CJK Symbols and Punctuation (partial)\n" . + "* 0x3040 - 0x309F Hiragana\n" . + "* 0x30A0 - 0x30FF Katakana\n" . + "* 0x31F0 - 0x31FF Katakana Phonetic Extensions\n" . + "* 0x3130 - 0x318F Hangul Compatibility Jamo (partial)\n" . + "* 0x3200 - 0x32FF Enclosed CJK Letters and Months (partial)\n" . + "* 0x3300 - 0x33FF CJK Compatibility\n" . + "* 0x3400 - 0x4DB5 CJK Unified Ideographs Extension-A (added)\n" . + "* 0x4E00 - 0x9FCC CJK Unified Ideographs (overridden)\n" . + "* 0xAC00 - 0xA7A3 Hangul Syllables (partial)\n" . + "* 0xD7B0 - 0xD7FF Hangul Jamo Extended-B\n" . + "* 0xF900 - 0xFAFF CJK Compatibility Ideographs (partial)\n" . + "* 0xFF00 - 0xFFEF Halfwidth and Fullwidth Forms (partial)\n"], + ["am_ET", "* 0x1200 - 0x137F Ethiopic\n" . + "* 0x1380 - 0x139F Ethiopic Supplement\n" . + "* 0x2D80 - 0x2DDF Ethiopic Extended\n" . + "* 0xAB00 - 0xAB2F Ethiopic Extended-A\n"], + ["chr_US", "* 0x13A0 - 0x13FF Cherokee\n"], + ["km_KH", "* 0x1780 - 0x17FF Khmer\n" . + "* 0x19E0 - 0x19FF Khmer Symbols\n"], + ["shi_Tfng_MA", "* 0x2D30 - 0x2D2F Tifinagh\n"], + ["ii_CN", "* 0xA000 - 0xA48F Yi Syllables\n" . + "* 0xA490 - 0xA4CF Yi Radicals\n"], + ["vai_Vaii_LR", "* 0xA500 - 0xA63F Vai\n"], + ["ko_KR", "* 0x3130 - 0x318F Hangul Compatibility Jamo (partial)\n" . + "* 0xA960 - 0xA97F Hangul Jamo Extended-A\n" . + "* 0xAC00 - 0xA7A3 Hangul Syllables (partial)\n" . + "* 0xFF00 - 0xFFEF Halfwidth and Fullwidth Forms (partial)\n"], +); + +# ["zh_Hans_CN", "* 0x2E80 - 0x2EFF CJK Radicals Supplement\n" . +# "* 0x2F00 - 0x2FDF Rangxi Radicales\n" . +# "* 0x3000 - 0x30FF CJK Symbols and Punctuation (partial)\n" . +# "* 0x3200 - 0x32FF Enclosed CJK Letters and Months (partial)\n" . +# "* 0x3400 - 0x4DB5 CJK Unified Ideographs Extension A\n" . +# "* 0xF900 - 0xFAFF CJK Compatibility Ideographs (partial)\n"], + +my %seen = (); +my %pending_seen = (); +my %utf8map = (); +my %utf8aliases = (); +my $outfilename = "$ETCDIR/common.UTF-8.src"; +my $manual_file = "$ETCDIR/manual-input.UTF-8"; +my $stars = "**********************************************************************\n"; + +get_utf8map("$CLDRDIR/posix/UTF-8.cm"); +generate_header (); +generate_sections (); +generate_footer (); + +############################ + +sub get_utf8map { + my $file = shift; + + open(FIN, $file); + my @lines = ; + close(FIN); + chomp(@lines); + + my $prev_k = undef; + my $prev_v = ""; + my $incharmap = 0; + foreach my $l (@lines) { + $l =~ s/\r//; + next if ($l =~ /^\#/); + next if ($l eq ""); + + if ($l eq "CHARMAP") { + $incharmap = 1; + next; + } + + next if (!$incharmap); + last if ($l eq "END CHARMAP"); + + $l =~ /^<([^\s]+)>\s+(.*)/; + my $k = $1; + my $v = $2; + $k =~ s/_/ /g; # unicode char string + $v =~ s/\\x//g; # UTF-8 char code + $utf8map{$k} = $v; + + $utf8aliases{$k} = $prev_k if ($prev_v eq $v); + + $prev_v = $v; + $prev_k = $k; + } +} + +sub generate_header { + open(FOUT, ">", "$outfilename") + or die ("can't write to $outfilename\n"); + print FOUT <;/\n"; + for ($n = hex("3401"); $n <= hex("4DB4"); $n++) { + $back2hex=sprintf("%X", $n); + push @result, "\t;/\n"; + } + push @result, "\t\n"; + push @result, "$T\t;/\n"; + for ($n = hex("4E01"); $n <= hex("9FCB"); $n++) { + $back2hex=sprintf("%X", $n); + push @result, "\t;/\n"; + } + push @result, "\t\n"; + } + push @result, "merge\tnow\n"; + } + return @result; +} + +sub compress_ctype { + my $territory = shift; + my $term; + my $active = 0; + my $cat_loaded = 0; + my $lock_ID; + my $prev_ID; + my $curr_ID; + my $lock_name; + my $prev_name; + my $curr_name; + my $key_name; + my $category = ''; + + my @lines = initialize_lines ($territory); + + my $filename = "$CLDRDIR/posix/$territory.UTF-8.src"; + if (! -f $filename) { + print STDERR "Cannot open $filename\n"; + return; + } + open(FIN, "$filename"); + print "Reading from $filename\n"; + while () { + if (/^LC_CTYPE/../^END LC_CTYPE/) { + if ($_ ne "LC_CTYPE\n" && $_ ne "END LC_CTYPE\n" && + $_ ne "*************\n" && $_ ne "\n") { + push @lines, $_; + } + } + } + close(FIN); + foreach my $line (@lines) { + if ($line =~ m/^([a-z]{3,})\t/) { + $category = $1; + if ($category eq 'merge') { + merge_seen; + next; + } + if ($category ne 'print') { + $cat_loaded = 1; + } + } + next if ($category eq 'print'); + if ($category eq 'toupper' || $category eq 'tolower') { + if ($line =~ m/<([-_A-Za-z0-9]+)>,/) { + $key_name = $1; + $key_name =~ s/_/ /g; + if (already_seen_RO (hex($utf8map{$key_name}))) { + next; + } + if ($cat_loaded) { print FOUT $category; } + $cat_loaded = 0; + $line =~ s/^[a-z]{3,}\t/\t/; + print FOUT $line; + } + next; + } + if ($line =~ m/<([-_A-Za-z0-9]+)>(;.|)$/) { + $term = ($2 eq '') ? 1 : 0; + $curr_name = $1; + $key_name = $1; + $key_name =~ s/_/ /g; + $curr_ID = hex($utf8map{$key_name}); + if (already_seen ($curr_ID)) { + next; + } + if ($active) { + if ($curr_ID == $prev_ID + 1) { + $prev_ID = $curr_ID; + $prev_name = $curr_name; + } else { + if ($cat_loaded) { print FOUT $category; } + $cat_loaded = 0; + if ($prev_ID == $lock_ID) { + print FOUT "\t<" . $prev_name . ">;/\n"; + } elsif ($prev_ID - 1 == $lock_ID) { + print FOUT "\t<" . $lock_name . ">;/\n"; + print FOUT "\t<" . $prev_name . ">;/\n"; + } else { + print FOUT "\t<" . $lock_name . + ">;...;<" . $prev_name . ">;/\n"; + } + $lock_ID = $curr_ID; + $prev_ID = $curr_ID; + $lock_name = $curr_name; + $prev_name = $curr_name; + } + } else { + $active = 1; + $lock_ID = $curr_ID; + $prev_ID = $curr_ID; + $lock_name = $curr_name; + $prev_name = $curr_name; + } + if ($term) { + if ($cat_loaded) { print FOUT $category; } + $cat_loaded = 0; + if ($curr_ID == $lock_ID) { + print FOUT "\t<" . $curr_name . ">\n"; + } elsif ($curr_ID == $lock_ID + 1) { + print FOUT "\t<" . $lock_name . ">;/\n"; + print FOUT "\t<" . $curr_name . ">\n"; + } else { + print FOUT "\t<" . $lock_name . + ">;...;<" . $curr_name . ">\n"; + } + $active = 0; + } + } else { + print FOUT $line; + } + } +} + +sub generate_sections { + foreach my $section (@SECTIONS ) { + print FOUT "\n"; + print FOUT $stars; + print FOUT @$section[1]; + print FOUT $stars; + compress_ctype (@$section[0]); + merge_seen; + } + my @lines = (); + open(FIN, "$manual_file"); + print "Reading from $manual_file\n"; + while () { + push @lines, $_; + } + close(FIN); + foreach my $line (@lines) { + print FOUT $line; + } +}

);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (