digraphs: unicode 5.0 character details
authorMischa POSLAWSKY <perl@shiar.org>
Fri, 10 Oct 2008 23:59:52 +0000 (23:59 +0000)
committerMischa POSLAWSKY <perl@shiar.org>
Fri, 10 Oct 2008 23:59:52 +0000 (23:59 +0000)
Recreate the digraphs include with version 5.0.0 of the Unicode
Character Database, encompassing most of the glyphs missing from 4.1
(as well as minor category improvements).

Fix the generator to account for undefined 'script' values, which now
occur for private use characters which were previously (erroneously)
categorized as 'Common'.

digraphs.inc.pl
rfc1345convert

index 9d36d1b..fc8af1b 100644 (file)
@@ -358,7 +358,7 @@ q{?*}=>[8128,'GREEK PERISPOMENI','Sk','Greek'],
 q{?+}=>[1567,'ARABIC QUESTION MARK','Po','Common'],
 q{?,}=>[7941,'GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA','Ll','Greek'],
 q{?-}=>[8771,'ASYMPTOTICALLY EQUAL TO','Sm','Common'],
-q{?.}=>[660,'LATIN LETTER GLOTTAL STOP','Ll Xz','Latin'],
+q{?.}=>[660,'LATIN LETTER GLOTTAL STOP','Lo Xz','Latin'],
 q{?/}=>[673,'LATIN LETTER GLOTTAL STOP WITH STROKE','Ll Xz','Latin'],
 q{?1}=>[8764,'TILDE OPERATOR','Sm','Common'],
 q{?2}=>[8776,'ALMOST EQUAL TO','Sm','Common'],
@@ -401,7 +401,7 @@ q{B*}=>[914,'GREEK CAPITAL LETTER BETA','Lu','Greek'],
 q{B+}=>[1489,'HEBREW LETTER BET','Lo','Hebrew'],
 q{B-}=>[386,'LATIN CAPITAL LETTER B WITH TOPBAR','Lu Xz','Latin'],
 q{B.}=>[7682,'LATIN CAPITAL LETTER B WITH DOT ABOVE','Lu','Latin'],
-q{B/}=>[579,'','Xn Xz',''],
+q{B/}=>[579,'LATIN CAPITAL LETTER B WITH STROKE','Lu Xz','Latin'],
 q{B2}=>[385,'LATIN CAPITAL LETTER B WITH HOOK','Lu Xz','Latin'],
 q{B=}=>[1041,'CYRILLIC CAPITAL LETTER BE','Lu','Cyrillic'],
 q{BB}=>[166,'BROKEN BAR','So Xl','Common'],
@@ -486,7 +486,7 @@ q{E+}=>[1506,'HEBREW LETTER AYIN','Lo','Hebrew'],
 q{E,}=>[552,'LATIN CAPITAL LETTER E WITH CEDILLA','Lu Xz','Latin'],
 q{E-}=>[274,'LATIN CAPITAL LETTER E WITH MACRON','Lu','Latin'],
 q{E.}=>[278,'LATIN CAPITAL LETTER E WITH DOT ABOVE','Lu','Latin'],
-q{E/}=>[582,'','Xn Xz',''],
+q{E/}=>[582,'LATIN CAPITAL LETTER E WITH STROKE','Lu Xz','Latin'],
 q{E2}=>[7866,'LATIN CAPITAL LETTER E WITH HOOK ABOVE','Lu','Latin'],
 q{E5}=>[12359,'HIRAGANA LETTER SMALL E','Lo','Hiragana'],
 q{E6}=>[12456,'KATAKANA LETTER E','Lo','Katakana'],
@@ -520,7 +520,7 @@ q{FA}=>[8704,'FOR ALL','Sm','Common'],
 q{FB}=>[9608,'FULL BLOCK','So','Common'],
 q{FD}=>[9585,'BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT','So','Common'],
 q{FF}=>[12,'<FORM FEED (FF)>','Cc Xa','Common','␌'],
-q{FI}=>[8498,'TURNED CAPITAL F','So Xz','Common'],
+q{FI}=>[8498,'TURNED CAPITAL F','Lu Xz','Latin'],
 q{FS}=>[28,'<INFORMATION SEPARATOR FOUR>','Cc Xa','Common','␜'],
 q{Fd}=>[9698,'BLACK LOWER RIGHT TRIANGLE','So','Common'],
 q{Fl}=>[0,'<NULL>','Cc Xa','Common','␀'],
@@ -602,7 +602,7 @@ q{Iu}=>[8992,'TOP HALF INTEGRAL','Sm','Common'],
 q{J%}=>[1032,'CYRILLIC CAPITAL LETTER JE','Lu','Cyrillic'],
 q{J*}=>[938,'GREEK CAPITAL LETTER IOTA WITH DIALYTIKA','Lu','Greek'],
 q{J+}=>[1497,'HEBREW LETTER YOD','Lo','Hebrew'],
-q{J/}=>[584,'','Xn Xz',''],
+q{J/}=>[584,'LATIN CAPITAL LETTER J WITH STROKE','Lu Xz','Latin'],
 q{J<}=>[496,'LATIN SMALL LETTER J WITH CARON','Ll','Latin'],
 q{J=}=>[1049,'CYRILLIC CAPITAL LETTER SHORT I','Lu','Cyrillic'],
 q{J>}=>[308,'LATIN CAPITAL LETTER J WITH CIRCUMFLEX','Lu','Latin'],
@@ -638,7 +638,7 @@ q{L.}=>[319,'LATIN CAPITAL LETTER L WITH MIDDLE DOT','Lu','Latin'],
 q{L/}=>[321,'LATIN CAPITAL LETTER L WITH STROKE','Lu','Latin'],
 q{L<}=>[317,'LATIN CAPITAL LETTER L WITH CARON','Lu','Latin'],
 q{L=}=>[1051,'CYRILLIC CAPITAL LETTER EL','Lu','Cyrillic'],
-q{L?}=>[11362,'','Xn Xz',''],
+q{L?}=>[11362,'LATIN CAPITAL LETTER L WITH MIDDLE TILDE','Lu Xz','Latin'],
 q{LB}=>[9604,'LOWER HALF BLOCK','So','Common'],
 q{LD}=>[9491,'BOX DRAWINGS HEAVY DOWN AND LEFT','So','Common'],
 q{LF}=>[10,'<LINE FEED (LF)>','Cc Xa','Common','␊'],
@@ -736,7 +736,7 @@ q{P'}=>[7764,'LATIN CAPITAL LETTER P WITH ACUTE','Lu','Latin'],
 q{P*}=>[928,'GREEK CAPITAL LETTER PI','Lu','Greek'],
 q{P+}=>[1508,'HEBREW LETTER PE','Lo','Hebrew'],
 q{P.}=>[7766,'LATIN CAPITAL LETTER P WITH DOT ABOVE','Lu','Latin'],
-q{P/}=>[11363,'','Xn Xz',''],
+q{P/}=>[11363,'LATIN CAPITAL LETTER P WITH STROKE','Lu Xz','Latin'],
 q{P1}=>[145,'<PRIVATE USE ONE>','Cc Xl','Common','�'],
 q{P2}=>[146,'<PRIVATE USE TWO>','Cc Xl','Common','�'],
 q{P3}=>[992,'GREEK LETTER SAMPI','Lu','Greek'],
@@ -759,14 +759,14 @@ q{Pt}=>[8359,'PESETA SIGN','Sc','Common'],
 q{Pu}=>[12503,'KATAKANA LETTER PU','Lo','Katakana'],
 q{Q*}=>[936,'GREEK CAPITAL LETTER PSI','Lu','Greek'],
 q{Q+}=>[1511,'HEBREW LETTER QOF','Lo','Hebrew'],
-q{Q;}=>[586,'','Xn Xz',''],
+q{Q;}=>[586,'LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL','Lu Xz','Latin'],
 q{R'}=>[340,'LATIN CAPITAL LETTER R WITH ACUTE','Lu','Latin'],
 q{R*}=>[929,'GREEK CAPITAL LETTER RHO','Lu','Greek'],
 q{R+}=>[1512,'HEBREW LETTER RESH','Lo','Hebrew'],
 q{R,}=>[342,'LATIN CAPITAL LETTER R WITH CEDILLA','Lu','Latin'],
 q{R.}=>[7768,'LATIN CAPITAL LETTER R WITH DOT ABOVE','Lu','Latin'],
-q{R/}=>[588,'','Xn Xz',''],
-q{R;}=>[11364,'','Xn Xz',''],
+q{R/}=>[588,'LATIN CAPITAL LETTER R WITH STROKE','Lu Xz','Latin'],
+q{R;}=>[11364,'LATIN CAPITAL LETTER R WITH TAIL','Lu Xz','Latin'],
 q{R<}=>[344,'LATIN CAPITAL LETTER R WITH CARON','Lu','Latin'],
 q{R=}=>[1056,'CYRILLIC CAPITAL LETTER ER','Lu','Cyrillic'],
 q{RB}=>[9616,'RIGHT HALF BLOCK','So','Common'],
@@ -863,7 +863,7 @@ q{U'}=>[218,'LATIN CAPITAL LETTER U WITH ACUTE','Lu Xl','Latin'],
 q{U(}=>[364,'LATIN CAPITAL LETTER U WITH BREVE','Lu','Latin'],
 q{U*}=>[933,'GREEK CAPITAL LETTER UPSILON','Lu','Greek'],
 q{U-}=>[362,'LATIN CAPITAL LETTER U WITH MACRON','Lu','Latin'],
-q{U/}=>[580,'','Xn Xz',''],
+q{U/}=>[580,'LATIN CAPITAL LETTER U BAR','Lu Xz','Latin'],
 q{U0}=>[366,'LATIN CAPITAL LETTER U WITH RING ABOVE','Lu','Latin'],
 q{U2}=>[7910,'LATIN CAPITAL LETTER U WITH HOOK ABOVE','Lu','Latin'],
 q{U5}=>[12357,'HIRAGANA LETTER SMALL U','Lo','Hiragana'],
@@ -875,8 +875,8 @@ q{U<}=>[467,'LATIN CAPITAL LETTER U WITH CARON','Lu','Latin'],
 q{U=}=>[1059,'CYRILLIC CAPITAL LETTER U','Lu','Cyrillic'],
 q{U>}=>[219,'LATIN CAPITAL LETTER U WITH CIRCUMFLEX','Lu Xl','Latin'],
 q{U?}=>[360,'LATIN CAPITAL LETTER U WITH TILDE','Lu','Latin'],
-q{UA}=>[57346,'','Co','Common'],
-q{UB}=>[57347,'','Co','Common'],
+q{UA}=>[57346,'','Co'],
+q{UB}=>[57347,'','Co'],
 q{UD}=>[8597,'UP DOWN ARROW','So','Common'],
 q{UH}=>[9531,'BOX DRAWINGS HEAVY UP AND HORIZONTAL','So','Common'],
 q{UJ}=>[12637,'HANGUL LETTER WEO','Lo Xz','Hangul'],
@@ -896,7 +896,7 @@ q{V3}=>[1140,'CYRILLIC CAPITAL LETTER IZHITSA','Lu','Cyrillic'],
 q{V=}=>[1042,'CYRILLIC CAPITAL LETTER VE','Lu','Cyrillic'],
 q{V?}=>[7804,'LATIN CAPITAL LETTER V WITH TILDE','Lu','Latin'],
 q{VH}=>[9547,'BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL','So','Common'],
-q{VI}=>[581,'','Xn Xz',''],
+q{VI}=>[581,'LATIN CAPITAL LETTER TURNED V','Lu Xz','Latin'],
 q{VJ}=>[12638,'HANGUL LETTER WE','Lo Xz','Hangul'],
 q{VL}=>[9515,'BOX DRAWINGS HEAVY VERTICAL AND LEFT','So','Common'],
 q{VR}=>[9507,'BOX DRAWINGS HEAVY VERTICAL AND RIGHT','So','Common'],
@@ -939,7 +939,7 @@ q{Y'}=>[221,'LATIN CAPITAL LETTER Y WITH ACUTE','Lu Xl','Latin'],
 q{Y*}=>[919,'GREEK CAPITAL LETTER ETA','Lu','Greek'],
 q{Y-}=>[562,'LATIN CAPITAL LETTER Y WITH MACRON','Lu Xz','Latin'],
 q{Y.}=>[7822,'LATIN CAPITAL LETTER Y WITH DOT ABOVE','Lu','Latin'],
-q{Y/}=>[590,'','Xn Xz',''],
+q{Y/}=>[590,'LATIN CAPITAL LETTER Y WITH STROKE','Lu Xz','Latin'],
 q{Y2}=>[7926,'LATIN CAPITAL LETTER Y WITH HOOK ABOVE','Lu','Latin'],
 q{Y3}=>[1122,'CYRILLIC CAPITAL LETTER YAT','Lu','Cyrillic'],
 q{Y:}=>[376,'LATIN CAPITAL LETTER Y WITH DIAERESIS','Lu','Latin'],
@@ -1098,7 +1098,7 @@ q{e+}=>[1593,'ARABIC LETTER AIN','Lo','Arabic'],
 q{e,}=>[553,'LATIN SMALL LETTER E WITH CEDILLA','Ll Xz','Latin'],
 q{e-}=>[275,'LATIN SMALL LETTER E WITH MACRON','Ll','Latin'],
 q{e.}=>[279,'LATIN SMALL LETTER E WITH DOT ABOVE','Ll','Latin'],
-q{e/}=>[583,'','Xn Xz',''],
+q{e/}=>[583,'LATIN SMALL LETTER E WITH STROKE','Ll Xz','Latin'],
 q{e2}=>[7867,'LATIN SMALL LETTER E WITH HOOK ABOVE','Ll','Latin'],
 q{e4}=>[12572,'BOPOMOFO LETTER E','Lo','Bopomofo'],
 q{e5}=>[12360,'HIRAGANA LETTER E','Lo','Hiragana'],
@@ -1129,7 +1129,7 @@ q{f2}=>[402,'LATIN SMALL LETTER F WITH HOOK','Ll Xz','Latin'],
 q{f3}=>[1139,'CYRILLIC SMALL LETTER FITA','Ll','Cyrillic'],
 q{f4}=>[12552,'BOPOMOFO LETTER F','Lo','Bopomofo'],
 q{f=}=>[1092,'CYRILLIC SMALL LETTER EF','Ll','Cyrillic'],
-q{fI}=>[8526,'','Xn Xz',''],
+q{fI}=>[8526,'TURNED SMALL F','Ll Xz','Latin'],
 q{fS}=>[9632,'BLACK SQUARE','So','Common'],
 q{ff}=>[64256,'LATIN SMALL LIGATURE FF','Ll','Latin'],
 q{fi}=>[64257,'LATIN SMALL LIGATURE FI','Ll','Latin'],
@@ -1217,7 +1217,7 @@ q{j%}=>[1112,'CYRILLIC SMALL LETTER JE','Ll','Cyrillic'],
 q{j*}=>[970,'GREEK SMALL LETTER IOTA WITH DIALYTIKA','Ll','Greek'],
 q{j+}=>[1609,'ARABIC LETTER ALEF MAKSURA','Lo','Arabic'],
 q{j.}=>[567,'LATIN SMALL LETTER DOTLESS J','Ll Xz','Latin'],
-q{j/}=>[585,'','Xn Xz',''],
+q{j/}=>[585,'LATIN SMALL LETTER J WITH STROKE','Ll Xz','Latin'],
 q{j3}=>[1013,'GREEK LUNATE EPSILON SYMBOL','Ll','Greek'],
 q{j4}=>[12560,'BOPOMOFO LETTER J','Lo','Bopomofo'],
 q{j9}=>[669,'LATIN SMALL LETTER J WITH CROSSED-TAIL','Ll Xz','Latin'],
@@ -1363,14 +1363,14 @@ q{q*}=>[968,'GREEK SMALL LETTER PSI','Ll','Greek'],
 q{q+}=>[1602,'ARABIC LETTER QAF','Lo','Arabic'],
 q{q2}=>[672,'LATIN SMALL LETTER Q WITH HOOK','Ll Xz','Latin'],
 q{q4}=>[12561,'BOPOMOFO LETTER Q','Lo','Bopomofo'],
-q{q;}=>[587,'','Xn Xz',''],
+q{q;}=>[587,'LATIN SMALL LETTER Q WITH HOOK TAIL','Ll Xz','Latin'],
 q{qp}=>[569,'LATIN SMALL LETTER QP DIGRAPH','Ll Xz','Latin'],
 q{r'}=>[341,'LATIN SMALL LETTER R WITH ACUTE','Ll','Latin'],
 q{r*}=>[961,'GREEK SMALL LETTER RHO','Ll','Greek'],
 q{r+}=>[1585,'ARABIC LETTER REH','Lo','Arabic'],
 q{r,}=>[343,'LATIN SMALL LETTER R WITH CEDILLA','Ll','Latin'],
 q{r.}=>[7769,'LATIN SMALL LETTER R WITH DOT ABOVE','Ll','Latin'],
-q{r/}=>[589,'','Xn Xz',''],
+q{r/}=>[589,'LATIN SMALL LETTER R WITH STROKE','Ll Xz','Latin'],
 q{r2}=>[638,'LATIN SMALL LETTER R WITH FISHHOOK','Ll Xz','Latin'],
 q{r4}=>[12566,'BOPOMOFO LETTER R','Lo','Bopomofo'],
 q{r;}=>[637,'LATIN SMALL LETTER R WITH TAIL','Ll Xz','Latin'],
@@ -1478,7 +1478,7 @@ q{v+}=>[1700,'ARABIC LETTER VEH','Lo','Arabic'],
 q{v2}=>[651,'LATIN SMALL LETTER V WITH HOOK','Ll Xz','Latin'],
 q{v3}=>[1141,'CYRILLIC SMALL LETTER IZHITSA','Ll','Cyrillic'],
 q{v4}=>[12586,'BOPOMOFO LETTER V','Lo','Bopomofo'],
-q{v9}=>[11380,'','Xn Xz',''],
+q{v9}=>[11380,'LATIN SMALL LETTER V WITH CURL','Ll Xz','Latin'],
 q{v;}=>[11377,'','Xn Xz',''],
 q{v=}=>[1074,'CYRILLIC SMALL LETTER VE','Ll','Cyrillic'],
 q{v?}=>[7805,'LATIN SMALL LETTER V WITH TILDE','Ll','Latin'],
@@ -1525,7 +1525,7 @@ q{y*}=>[951,'GREEK SMALL LETTER ETA','Ll','Greek'],
 q{y+}=>[1610,'ARABIC LETTER YEH','Lo','Arabic'],
 q{y-}=>[563,'LATIN SMALL LETTER Y WITH MACRON','Ll Xz','Latin'],
 q{y.}=>[7823,'LATIN SMALL LETTER Y WITH DOT ABOVE','Ll','Latin'],
-q{y/}=>[591,'','Xn Xz',''],
+q{y/}=>[591,'LATIN SMALL LETTER Y WITH STROKE','Ll Xz','Latin'],
 q{y0}=>[7833,'LATIN SMALL LETTER Y WITH RING ABOVE','Ll','Latin'],
 q{y2}=>[7927,'LATIN SMALL LETTER Y WITH HOOK ABOVE','Ll','Latin'],
 q{y3}=>[1123,'CYRILLIC SMALL LETTER YAT','Ll','Cyrillic'],
index cf2d937..3157e04 100644 (file)
@@ -135,6 +135,13 @@ for (keys %di) {
        $info{$_}->{string} = $di{$_} < 32 ? chr($di{$_} + 0x2400) : chr(0xFFFD);
 }
 
+# convert info hashes into arrays of strings to output in display order
+for my $row (values %info) {
+       $row = [ map { $row->{$_} } qw/name category script string/ ];
+       # strip off trailing missing values (especially string may be unknown)
+       defined $row->[-1] ? last : pop @$row for 1 .. @$row;
+}
+
 # output perl code of hash
 # (assume no backslashes or curlies, so we can just q{} w/o escaping)
 print "+{\n";
@@ -144,8 +151,7 @@ printf '(map {$_=>0} qw{%s}),'."\n", join(' ',
 printf "q{%s}=>[%s],\n", $_, join(',',
        $di{$_},   # original code point
        $info{$_}  # optional additional arguments
-               ? map {"'$_'"} @{ $info{$_} }{qw/name category script/},
-                       $info{$_}->{string} || ()
+               ? map {"'$_'"} @{ $info{$_} }
                : ()
 ) for sort keys %di;
 print "}\n";