Page MenuHomeFreeBSD

D47472.id146120.diff
No OneTemporary

D47472.id146120.diff

diff --git a/tools/tools/locale/etc/final-maps/widths.txt b/tools/tools/locale/etc/final-maps/widths.txt
--- a/tools/tools/locale/etc/final-maps/widths.txt
+++ b/tools/tools/locale/etc/final-maps/widths.txt
@@ -858,7 +858,167 @@
<HANGUL_CHOSEONG_NIEUN-CIEUC> 2
<HANGUL_CHOSEONG_NIEUN-HIEUH> 2
<HANGUL_CHOSEONG_TIKEUT-RIEUL> 2
-<HANGUL_CHOSEONG_FILLER> 2
+<HANGUL_CHOSEONG_FILLER> 0
+<HANGUL_JUNGSEONG_FILLER> 0
+<HANGUL_JUNGSEONG_A> 0
+<HANGUL_JUNGSEONG_AE> 0
+<HANGUL_JUNGSEONG_YA> 0
+<HANGUL_JUNGSEONG_YAE> 0
+<HANGUL_JUNGSEONG_EO> 0
+<HANGUL_JUNGSEONG_E> 0
+<HANGUL_JUNGSEONG_YEO> 0
+<HANGUL_JUNGSEONG_YE> 0
+<HANGUL_JUNGSEONG_O> 0
+<HANGUL_JUNGSEONG_WA> 0
+<HANGUL_JUNGSEONG_WAE> 0
+<HANGUL_JUNGSEONG_OE> 0
+<HANGUL_JUNGSEONG_YO> 0
+<HANGUL_JUNGSEONG_U> 0
+<HANGUL_JUNGSEONG_WEO> 0
+<HANGUL_JUNGSEONG_WE> 0
+<HANGUL_JUNGSEONG_WI> 0
+<HANGUL_JUNGSEONG_YU> 0
+<HANGUL_JUNGSEONG_EU> 0
+<HANGUL_JUNGSEONG_YI> 0
+<HANGUL_JUNGSEONG_I> 0
+<HANGUL_JUNGSEONG_A-O> 0
+<HANGUL_JUNGSEONG_A-U> 0
+<HANGUL_JUNGSEONG_YA-O> 0
+<HANGUL_JUNGSEONG_YA-YO> 0
+<HANGUL_JUNGSEONG_EO-O> 0
+<HANGUL_JUNGSEONG_EO-U> 0
+<HANGUL_JUNGSEONG_EO-EU> 0
+<HANGUL_JUNGSEONG_YEO-O> 0
+<HANGUL_JUNGSEONG_YEO-U> 0
+<HANGUL_JUNGSEONG_O-EO> 0
+<HANGUL_JUNGSEONG_O-E> 0
+<HANGUL_JUNGSEONG_O-YE> 0
+<HANGUL_JUNGSEONG_O-O> 0
+<HANGUL_JUNGSEONG_O-U> 0
+<HANGUL_JUNGSEONG_YO-YA> 0
+<HANGUL_JUNGSEONG_YO-YAE> 0
+<HANGUL_JUNGSEONG_YO-YEO> 0
+<HANGUL_JUNGSEONG_YO-O> 0
+<HANGUL_JUNGSEONG_YO-I> 0
+<HANGUL_JUNGSEONG_U-A> 0
+<HANGUL_JUNGSEONG_U-AE> 0
+<HANGUL_JUNGSEONG_U-EO-EU> 0
+<HANGUL_JUNGSEONG_U-YE> 0
+<HANGUL_JUNGSEONG_U-U> 0
+<HANGUL_JUNGSEONG_YU-A> 0
+<HANGUL_JUNGSEONG_YU-EO> 0
+<HANGUL_JUNGSEONG_YU-E> 0
+<HANGUL_JUNGSEONG_YU-YEO> 0
+<HANGUL_JUNGSEONG_YU-YE> 0
+<HANGUL_JUNGSEONG_YU-U> 0
+<HANGUL_JUNGSEONG_YU-I> 0
+<HANGUL_JUNGSEONG_EU-U> 0
+<HANGUL_JUNGSEONG_EU-EU> 0
+<HANGUL_JUNGSEONG_YI-U> 0
+<HANGUL_JUNGSEONG_I-A> 0
+<HANGUL_JUNGSEONG_I-YA> 0
+<HANGUL_JUNGSEONG_I-O> 0
+<HANGUL_JUNGSEONG_I-U> 0
+<HANGUL_JUNGSEONG_I-EU> 0
+<HANGUL_JUNGSEONG_I-ARAEA> 0
+<HANGUL_JUNGSEONG_ARAEA> 0
+<HANGUL_JUNGSEONG_ARAEA-EO> 0
+<HANGUL_JUNGSEONG_ARAEA-U> 0
+<HANGUL_JUNGSEONG_ARAEA-I> 0
+<HANGUL_JUNGSEONG_SSANGARAEA> 0
+<HANGUL_JUNGSEONG_A-EU> 0
+<HANGUL_JUNGSEONG_YA-U> 0
+<HANGUL_JUNGSEONG_YEO-YA> 0
+<HANGUL_JUNGSEONG_O-YA> 0
+<HANGUL_JUNGSEONG_O-YAE> 0
+<HANGUL_JONGSEONG_KIYEOK> 0
+<HANGUL_JONGSEONG_SSANGKIYEOK> 0
+<HANGUL_JONGSEONG_KIYEOK-SIOS> 0
+<HANGUL_JONGSEONG_NIEUN> 0
+<HANGUL_JONGSEONG_NIEUN-CIEUC> 0
+<HANGUL_JONGSEONG_NIEUN-HIEUH> 0
+<HANGUL_JONGSEONG_TIKEUT> 0
+<HANGUL_JONGSEONG_RIEUL> 0
+<HANGUL_JONGSEONG_RIEUL-KIYEOK> 0
+<HANGUL_JONGSEONG_RIEUL-MIEUM> 0
+<HANGUL_JONGSEONG_RIEUL-PIEUP> 0
+<HANGUL_JONGSEONG_RIEUL-SIOS> 0
+<HANGUL_JONGSEONG_RIEUL-THIEUTH> 0
+<HANGUL_JONGSEONG_RIEUL-PHIEUPH> 0
+<HANGUL_JONGSEONG_RIEUL-HIEUH> 0
+<HANGUL_JONGSEONG_MIEUM> 0
+<HANGUL_JONGSEONG_PIEUP> 0
+<HANGUL_JONGSEONG_PIEUP-SIOS> 0
+<HANGUL_JONGSEONG_SIOS> 0
+<HANGUL_JONGSEONG_SSANGSIOS> 0
+<HANGUL_JONGSEONG_IEUNG> 0
+<HANGUL_JONGSEONG_CIEUC> 0
+<HANGUL_JONGSEONG_CHIEUCH> 0
+<HANGUL_JONGSEONG_KHIEUKH> 0
+<HANGUL_JONGSEONG_THIEUTH> 0
+<HANGUL_JONGSEONG_PHIEUPH> 0
+<HANGUL_JONGSEONG_HIEUH> 0
+<HANGUL_JONGSEONG_KIYEOK-RIEUL> 0
+<HANGUL_JONGSEONG_KIYEOK-SIOS-KIYEOK> 0
+<HANGUL_JONGSEONG_NIEUN-KIYEOK> 0
+<HANGUL_JONGSEONG_NIEUN-TIKEUT> 0
+<HANGUL_JONGSEONG_NIEUN-SIOS> 0
+<HANGUL_JONGSEONG_NIEUN-PANSIOS> 0
+<HANGUL_JONGSEONG_NIEUN-THIEUTH> 0
+<HANGUL_JONGSEONG_TIKEUT-KIYEOK> 0
+<HANGUL_JONGSEONG_TIKEUT-RIEUL> 0
+<HANGUL_JONGSEONG_RIEUL-KIYEOK-SIOS> 0
+<HANGUL_JONGSEONG_RIEUL-NIEUN> 0
+<HANGUL_JONGSEONG_RIEUL-TIKEUT> 0
+<HANGUL_JONGSEONG_RIEUL-TIKEUT-HIEUH> 0
+<HANGUL_JONGSEONG_SSANGRIEUL> 0
+<HANGUL_JONGSEONG_RIEUL-MIEUM-KIYEOK> 0
+<HANGUL_JONGSEONG_RIEUL-MIEUM-SIOS> 0
+<HANGUL_JONGSEONG_RIEUL-PIEUP-SIOS> 0
+<HANGUL_JONGSEONG_RIEUL-PIEUP-HIEUH> 0
+<HANGUL_JONGSEONG_RIEUL-KAPYEOUNPIEUP> 0
+<HANGUL_JONGSEONG_RIEUL-SSANGSIOS> 0
+<HANGUL_JONGSEONG_RIEUL-PANSIOS> 0
+<HANGUL_JONGSEONG_RIEUL-KHIEUKH> 0
+<HANGUL_JONGSEONG_RIEUL-YEORINHIEUH> 0
+<HANGUL_JONGSEONG_MIEUM-KIYEOK> 0
+<HANGUL_JONGSEONG_MIEUM-RIEUL> 0
+<HANGUL_JONGSEONG_MIEUM-PIEUP> 0
+<HANGUL_JONGSEONG_MIEUM-SIOS> 0
+<HANGUL_JONGSEONG_MIEUM-SSANGSIOS> 0
+<HANGUL_JONGSEONG_MIEUM-PANSIOS> 0
+<HANGUL_JONGSEONG_MIEUM-CHIEUCH> 0
+<HANGUL_JONGSEONG_MIEUM-HIEUH> 0
+<HANGUL_JONGSEONG_KAPYEOUNMIEUM> 0
+<HANGUL_JONGSEONG_PIEUP-RIEUL> 0
+<HANGUL_JONGSEONG_PIEUP-PHIEUPH> 0
+<HANGUL_JONGSEONG_PIEUP-HIEUH> 0
+<HANGUL_JONGSEONG_KAPYEOUNPIEUP> 0
+<HANGUL_JONGSEONG_SIOS-KIYEOK> 0
+<HANGUL_JONGSEONG_SIOS-TIKEUT> 0
+<HANGUL_JONGSEONG_SIOS-RIEUL> 0
+<HANGUL_JONGSEONG_SIOS-PIEUP> 0
+<HANGUL_JONGSEONG_PANSIOS> 0
+<HANGUL_JONGSEONG_IEUNG-KIYEOK> 0
+<HANGUL_JONGSEONG_IEUNG-SSANGKIYEOK> 0
+<HANGUL_JONGSEONG_SSANGIEUNG> 0
+<HANGUL_JONGSEONG_IEUNG-KHIEUKH> 0
+<HANGUL_JONGSEONG_YESIEUNG> 0
+<HANGUL_JONGSEONG_YESIEUNG-SIOS> 0
+<HANGUL_JONGSEONG_YESIEUNG-PANSIOS> 0
+<HANGUL_JONGSEONG_PHIEUPH-PIEUP> 0
+<HANGUL_JONGSEONG_KAPYEOUNPHIEUPH> 0
+<HANGUL_JONGSEONG_HIEUH-NIEUN> 0
+<HANGUL_JONGSEONG_HIEUH-RIEUL> 0
+<HANGUL_JONGSEONG_HIEUH-MIEUM> 0
+<HANGUL_JONGSEONG_HIEUH-PIEUP> 0
+<HANGUL_JONGSEONG_YEORINHIEUH> 0
+<HANGUL_JONGSEONG_KIYEOK-NIEUN> 0
+<HANGUL_JONGSEONG_KIYEOK-PIEUP> 0
+<HANGUL_JONGSEONG_KIYEOK-CHIEUCH> 0
+<HANGUL_JONGSEONG_KIYEOK-KHIEUKH> 0
+<HANGUL_JONGSEONG_KIYEOK-HIEUH> 0
+<HANGUL_JONGSEONG_SSANGNIEUN> 0
<ETHIOPIC_COMBINING_GEMINATION_AND_VOWEL_LENGTH_MARK> 0
<ETHIOPIC_COMBINING_VOWEL_LENGTH_MARK> 0
<ETHIOPIC_COMBINING_GEMINATION_MARK> 0
@@ -2037,7 +2197,7 @@
<HANGUL_LETTER_EU> 2
<HANGUL_LETTER_YI> 2
<HANGUL_LETTER_I> 2
-<HANGUL_FILLER> 2
+<HANGUL_FILLER> 0
<HANGUL_LETTER_SSANGNIEUN> 2
<HANGUL_LETTER_NIEUN-TIKEUT> 2
<HANGUL_LETTER_NIEUN-SIOS> 2
@@ -43510,6 +43670,7 @@
<FULLWIDTH_TILDE> 2
<FULLWIDTH_LEFT_WHITE_PARENTHESIS> 2
<FULLWIDTH_RIGHT_WHITE_PARENTHESIS> 2
+<HALFWIDTH_HANGUL_FILLER> 0
<FULLWIDTH_CENT_SIGN> 2
<FULLWIDTH_POUND_SIGN> 2
<FULLWIDTH_NOT_SIGN> 2
diff --git a/tools/tools/locale/tools/getwidths.c b/tools/tools/locale/tools/getwidths.c
--- a/tools/tools/locale/tools/getwidths.c
+++ b/tools/tools/locale/tools/getwidths.c
@@ -28,6 +28,39 @@
#include <utf8proc.h>
+#define SOFT_HYPHEN 0x00AD
+
+static int
+width_override(int32_t wc)
+{
+ const utf8proc_property_t *wcprop;
+
+ switch (wc) {
+ case SOFT_HYPHEN:
+ /*
+ * SOFT-HYPHEN is ignorable, but traditionally one column
+ * wide.
+ */
+ return (1);
+ case 0x1160 ... 0x11ff:
+ /*
+ * Hangul Jamo medial vowels and final consonants are more of
+ * a combining character, and should be considered zero-width.
+ */
+ return (0);
+ default:
+ break;
+ }
+
+ /* Ignorable characters are typically zero-width. */
+ wcprop = utf8proc_get_property(wc);
+ if (wcprop->ignorable)
+ return (0);
+
+ /* No override by default, trust utf8proc's width. */
+ return (-1);
+}
+
int
main(void)
{
@@ -43,9 +76,12 @@
wcc = utf8proc_category(wc);
if (wcc == UTF8PROC_CATEGORY_CC)
continue;
- wcw = utf8proc_charwidth(wc);
+ wcw = width_override(wc);
+ if (wcw == -1)
+ wcw = utf8proc_charwidth(wc);
if (wcw == 1)
continue;
+
printf("%04X %d\n", wc, wcw);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 28, 12:42 AM (17 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29027674
Default Alt Text
D47472.id146120.diff (6 KB)

Event Timeline