summaryrefslogtreecommitdiff
path: root/lib/unicore
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicore')
-rw-r--r--lib/unicore/In.pl2
-rw-r--r--lib/unicore/In/136.pl351
-rwxr-xr-xlib/unicore/mktables.PL40
3 files changed, 393 insertions, 0 deletions
diff --git a/lib/unicore/In.pl b/lib/unicore/In.pl
index 52383f3a57..2a82359701 100644
--- a/lib/unicore/In.pl
+++ b/lib/unicore/In.pl
@@ -138,6 +138,7 @@
'CJK Unified Ideographs Extension B' => 133,
'CJK Compatibility Ideographs Supplement' => 134,
'Tags' => 135,
+'Common' => 136,
);
%utf8::InPat = (
'alp' => {
@@ -202,6 +203,7 @@
'Combining(?:[-_]|\s+)?Diacritical(?:[-_]|\s+)?Marks' => 'Combining Diacritical Marks',
'Combining(?:[-_]|\s+)?Marks(?:[-_]|\s+)?for(?:[-_]|\s+)?Symbols' => 'Combining Marks for Symbols',
'Combining(?:[-_]|\s+)?Half(?:[-_]|\s+)?Marks' => 'Combining Half Marks',
+ 'Common' => 'Common',
},
'con' => {
'Control(?:[-_]|\s+)?Pictures' => 'Control Pictures',
diff --git a/lib/unicore/In/136.pl b/lib/unicore/In/136.pl
new file mode 100644
index 0000000000..b1abb046ca
--- /dev/null
+++ b/lib/unicore/In/136.pl
@@ -0,0 +1,351 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is built by mktables.PL from e.g. Unicode.txt.
+# Any changes made here will be lost!
+return <<'END';
+0000 0040 Common # In/136.pl
+005B 0060 Common # In/136.pl
+007B 00A9 Common # In/136.pl
+00AB 00B4 Common # In/136.pl
+00B6 00B9 Common # In/136.pl
+00BB 00BF Common # In/136.pl
+00D7 Common # In/136.pl
+00F7 Common # In/136.pl
+0220 0221 Common # In/136.pl
+0234 024F Common # In/136.pl
+02AE 02AF Common # In/136.pl
+02B9 02DF Common # In/136.pl
+02E5 02FF Common # In/136.pl
+034F 035F Common # In/136.pl
+0363 0379 Common # In/136.pl
+037B 0385 Common # In/136.pl
+0387 Common # In/136.pl
+038B Common # In/136.pl
+038D Common # In/136.pl
+03A2 Common # In/136.pl
+03CF Common # In/136.pl
+03D8 03D9 Common # In/136.pl
+03F6 03FF Common # In/136.pl
+0482 Common # In/136.pl
+0487 Common # In/136.pl
+048A 048B Common # In/136.pl
+04C5 04C6 Common # In/136.pl
+04C9 04CA Common # In/136.pl
+04CD 04CF Common # In/136.pl
+04F6 04F7 Common # In/136.pl
+04FA 0530 Common # In/136.pl
+0557 0558 Common # In/136.pl
+055A 0560 Common # In/136.pl
+0588 0590 Common # In/136.pl
+05A2 Common # In/136.pl
+05BA Common # In/136.pl
+05BE Common # In/136.pl
+05C0 Common # In/136.pl
+05C3 Common # In/136.pl
+05C5 05CF Common # In/136.pl
+05EB 05EF Common # In/136.pl
+05F3 0620 Common # In/136.pl
+063B 0640 Common # In/136.pl
+0656 066F Common # In/136.pl
+06D4 Common # In/136.pl
+06E9 Common # In/136.pl
+06EE 06F9 Common # In/136.pl
+06FD 070F Common # In/136.pl
+072D 072F Common # In/136.pl
+074B 077F Common # In/136.pl
+07B1 0900 Common # In/136.pl
+0904 Common # In/136.pl
+093A 093B Common # In/136.pl
+094E 094F Common # In/136.pl
+0955 0957 Common # In/136.pl
+0964 0965 Common # In/136.pl
+0970 0980 Common # In/136.pl
+0982 0984 Common # In/136.pl
+098D 098E Common # In/136.pl
+0991 0992 Common # In/136.pl
+09A9 Common # In/136.pl
+09B1 Common # In/136.pl
+09B3 09B5 Common # In/136.pl
+09BA 09BB Common # In/136.pl
+09BD Common # In/136.pl
+09C5 09C6 Common # In/136.pl
+09C9 09CA Common # In/136.pl
+09CE 09D6 Common # In/136.pl
+09D8 09DB Common # In/136.pl
+09DE Common # In/136.pl
+09E4 09E5 Common # In/136.pl
+09F2 0A01 Common # In/136.pl
+0A03 0A04 Common # In/136.pl
+0A0B 0A0E Common # In/136.pl
+0A11 0A12 Common # In/136.pl
+0A29 Common # In/136.pl
+0A31 Common # In/136.pl
+0A34 Common # In/136.pl
+0A37 Common # In/136.pl
+0A3A 0A3B Common # In/136.pl
+0A3D Common # In/136.pl
+0A43 0A46 Common # In/136.pl
+0A49 0A4A Common # In/136.pl
+0A4E 0A58 Common # In/136.pl
+0A5D Common # In/136.pl
+0A5F 0A65 Common # In/136.pl
+0A75 0A80 Common # In/136.pl
+0A84 Common # In/136.pl
+0A8C Common # In/136.pl
+0A8E Common # In/136.pl
+0A92 Common # In/136.pl
+0AA9 Common # In/136.pl
+0AB1 Common # In/136.pl
+0AB4 Common # In/136.pl
+0ABA 0ABB Common # In/136.pl
+0AC6 Common # In/136.pl
+0ACA Common # In/136.pl
+0ACE 0ACF Common # In/136.pl
+0AD1 0ADF Common # In/136.pl
+0AE1 0AE5 Common # In/136.pl
+0AF0 0B00 Common # In/136.pl
+0B04 Common # In/136.pl
+0B0D 0B0E Common # In/136.pl
+0B11 0B12 Common # In/136.pl
+0B29 Common # In/136.pl
+0B31 Common # In/136.pl
+0B34 0B35 Common # In/136.pl
+0B3A 0B3B Common # In/136.pl
+0B44 0B46 Common # In/136.pl
+0B49 0B4A Common # In/136.pl
+0B4E 0B55 Common # In/136.pl
+0B58 0B5B Common # In/136.pl
+0B5E Common # In/136.pl
+0B62 0B65 Common # In/136.pl
+0B70 0B81 Common # In/136.pl
+0B84 Common # In/136.pl
+0B8B 0B8D Common # In/136.pl
+0B91 Common # In/136.pl
+0B96 0B98 Common # In/136.pl
+0B9B Common # In/136.pl
+0B9D Common # In/136.pl
+0BA0 0BA2 Common # In/136.pl
+0BA5 0BA7 Common # In/136.pl
+0BAB 0BAD Common # In/136.pl
+0BB6 Common # In/136.pl
+0BBA 0BBD Common # In/136.pl
+0BC3 0BC5 Common # In/136.pl
+0BC9 Common # In/136.pl
+0BCE 0BD6 Common # In/136.pl
+0BD8 0BE6 Common # In/136.pl
+0BF3 0C00 Common # In/136.pl
+0C04 Common # In/136.pl
+0C0D Common # In/136.pl
+0C11 Common # In/136.pl
+0C29 Common # In/136.pl
+0C34 Common # In/136.pl
+0C3A 0C3D Common # In/136.pl
+0C45 Common # In/136.pl
+0C49 Common # In/136.pl
+0C4E 0C54 Common # In/136.pl
+0C57 0C5F Common # In/136.pl
+0C62 0C65 Common # In/136.pl
+0C70 0C81 Common # In/136.pl
+0C84 Common # In/136.pl
+0C8D Common # In/136.pl
+0C91 Common # In/136.pl
+0CA9 Common # In/136.pl
+0CB4 Common # In/136.pl
+0CBA 0CBD Common # In/136.pl
+0CC5 Common # In/136.pl
+0CC9 Common # In/136.pl
+0CCE 0CD4 Common # In/136.pl
+0CD7 0CDD Common # In/136.pl
+0CDF Common # In/136.pl
+0CE2 0CE5 Common # In/136.pl
+0CF0 0D01 Common # In/136.pl
+0D04 Common # In/136.pl
+0D0D Common # In/136.pl
+0D11 Common # In/136.pl
+0D29 Common # In/136.pl
+0D3A 0D3D Common # In/136.pl
+0D44 0D45 Common # In/136.pl
+0D49 Common # In/136.pl
+0D4E 0D56 Common # In/136.pl
+0D58 0D5F Common # In/136.pl
+0D62 0D65 Common # In/136.pl
+0D70 0D81 Common # In/136.pl
+0D84 Common # In/136.pl
+0D97 0D99 Common # In/136.pl
+0DB2 Common # In/136.pl
+0DBC Common # In/136.pl
+0DBE 0DBF Common # In/136.pl
+0DC7 0DC9 Common # In/136.pl
+0DCB 0DCE Common # In/136.pl
+0DD5 Common # In/136.pl
+0DD7 Common # In/136.pl
+0DE0 0DF1 Common # In/136.pl
+0DF4 0E00 Common # In/136.pl
+0E3B 0E3F Common # In/136.pl
+0E4F Common # In/136.pl
+0E5A 0E80 Common # In/136.pl
+0E83 Common # In/136.pl
+0E85 0E86 Common # In/136.pl
+0E89 Common # In/136.pl
+0E8B 0E8C Common # In/136.pl
+0E8E 0E93 Common # In/136.pl
+0E98 Common # In/136.pl
+0EA0 Common # In/136.pl
+0EA4 Common # In/136.pl
+0EA6 Common # In/136.pl
+0EA8 0EA9 Common # In/136.pl
+0EAC Common # In/136.pl
+0EBA Common # In/136.pl
+0EBE 0EBF Common # In/136.pl
+0EC5 Common # In/136.pl
+0EC7 Common # In/136.pl
+0ECE 0ECF Common # In/136.pl
+0EDA 0EDB Common # In/136.pl
+0EDE 0EFF Common # In/136.pl
+0F01 0F17 Common # In/136.pl
+0F1A 0F1F Common # In/136.pl
+0F34 Common # In/136.pl
+0F36 Common # In/136.pl
+0F38 Common # In/136.pl
+0F3A 0F3F Common # In/136.pl
+0F48 Common # In/136.pl
+0F6B 0F70 Common # In/136.pl
+0F85 Common # In/136.pl
+0F8C 0F8F Common # In/136.pl
+0F98 Common # In/136.pl
+0FBD 0FC5 Common # In/136.pl
+0FC7 0FFF Common # In/136.pl
+1022 Common # In/136.pl
+1028 Common # In/136.pl
+102B Common # In/136.pl
+1033 1035 Common # In/136.pl
+103A 103F Common # In/136.pl
+104A 104F Common # In/136.pl
+105A 109F Common # In/136.pl
+10C6 10CF Common # In/136.pl
+10F7 10FF Common # In/136.pl
+115A 115E Common # In/136.pl
+11A3 11A7 Common # In/136.pl
+11FA 11FF Common # In/136.pl
+1207 Common # In/136.pl
+1247 Common # In/136.pl
+1249 Common # In/136.pl
+124E 124F Common # In/136.pl
+1257 Common # In/136.pl
+1259 Common # In/136.pl
+125E 125F Common # In/136.pl
+1287 Common # In/136.pl
+1289 Common # In/136.pl
+128E 128F Common # In/136.pl
+12AF Common # In/136.pl
+12B1 Common # In/136.pl
+12B6 12B7 Common # In/136.pl
+12BF Common # In/136.pl
+12C1 Common # In/136.pl
+12C6 12C7 Common # In/136.pl
+12CF Common # In/136.pl
+12D7 Common # In/136.pl
+12EF Common # In/136.pl
+130F Common # In/136.pl
+1311 Common # In/136.pl
+1316 1317 Common # In/136.pl
+131F Common # In/136.pl
+1347 Common # In/136.pl
+135B 1368 Common # In/136.pl
+137D 139F Common # In/136.pl
+13F5 1400 Common # In/136.pl
+166D 166E Common # In/136.pl
+1677 1680 Common # In/136.pl
+169B 169F Common # In/136.pl
+16EB 16ED Common # In/136.pl
+16F1 177F Common # In/136.pl
+17D4 17DF Common # In/136.pl
+17EA 180F Common # In/136.pl
+181A 181F Common # In/136.pl
+1878 187F Common # In/136.pl
+18AA 1DFF Common # In/136.pl
+1E9C 1E9F Common # In/136.pl
+1EFA 1EFF Common # In/136.pl
+1F16 1F17 Common # In/136.pl
+1F1E 1F1F Common # In/136.pl
+1F46 1F47 Common # In/136.pl
+1F4E 1F4F Common # In/136.pl
+1F58 Common # In/136.pl
+1F5A Common # In/136.pl
+1F5C Common # In/136.pl
+1F5E Common # In/136.pl
+1F7E 1F7F Common # In/136.pl
+1FB5 Common # In/136.pl
+1FBD Common # In/136.pl
+1FBF 1FC1 Common # In/136.pl
+1FC5 Common # In/136.pl
+1FCD 1FCF Common # In/136.pl
+1FD4 1FD5 Common # In/136.pl
+1FDC 1FDF Common # In/136.pl
+1FED 1FF1 Common # In/136.pl
+1FF5 Common # In/136.pl
+1FFD 207E Common # In/136.pl
+2080 20CF Common # In/136.pl
+20E4 2125 Common # In/136.pl
+2127 2129 Common # In/136.pl
+212C 2E7F Common # In/136.pl
+2E9A Common # In/136.pl
+2EF4 2EFF Common # In/136.pl
+2FD6 3004 Common # In/136.pl
+3006 Common # In/136.pl
+3008 3020 Common # In/136.pl
+3030 3037 Common # In/136.pl
+303B 3040 Common # In/136.pl
+3095 3098 Common # In/136.pl
+309B 309C Common # In/136.pl
+309F 30A0 Common # In/136.pl
+30FB 30FC Common # In/136.pl
+30FF 3104 Common # In/136.pl
+312D 3130 Common # In/136.pl
+318F 319F Common # In/136.pl
+31B8 33FF Common # In/136.pl
+4DB6 4DFF Common # In/136.pl
+9FA6 9FFF Common # In/136.pl
+A48D A48F Common # In/136.pl
+A4A2 A4A3 Common # In/136.pl
+A4B4 Common # In/136.pl
+A4C1 Common # In/136.pl
+A4C5 Common # In/136.pl
+A4C7 ABFF Common # In/136.pl
+D7A4 F8FF Common # In/136.pl
+FA2E FAFF Common # In/136.pl
+FB07 FB12 Common # In/136.pl
+FB18 FB1C Common # In/136.pl
+FB29 Common # In/136.pl
+FB37 Common # In/136.pl
+FB3D Common # In/136.pl
+FB3F Common # In/136.pl
+FB42 Common # In/136.pl
+FB45 Common # In/136.pl
+FBB2 FBD2 Common # In/136.pl
+FD3E FD4F Common # In/136.pl
+FD90 FD91 Common # In/136.pl
+FDC8 FDEF Common # In/136.pl
+FDFC FE1F Common # In/136.pl
+FE24 FE6F Common # In/136.pl
+FE73 Common # In/136.pl
+FE75 Common # In/136.pl
+FEFD FF20 Common # In/136.pl
+FF3B FF40 Common # In/136.pl
+FF5B FF65 Common # In/136.pl
+FF70 Common # In/136.pl
+FF9E FF9F Common # In/136.pl
+FFBF FFC1 Common # In/136.pl
+FFC8 FFC9 Common # In/136.pl
+FFD0 FFD1 Common # In/136.pl
+FFD8 FFD9 Common # In/136.pl
+FFDD 102FF Common # In/136.pl
+1031F 1032F Common # In/136.pl
+1034B 103FF Common # In/136.pl
+10426 10427 Common # In/136.pl
+1044E 1D166 Common # In/136.pl
+1D16A 1D17A Common # In/136.pl
+1D183 1D184 Common # In/136.pl
+1D18C 1D1A9 Common # In/136.pl
+1D1AE 1FFFF Common # In/136.pl
+2A6D7 2F7FF Common # In/136.pl
+END
diff --git a/lib/unicore/mktables.PL b/lib/unicore/mktables.PL
index 09b8911691..a63fbf09de 100755
--- a/lib/unicore/mktables.PL
+++ b/lib/unicore/mktables.PL
@@ -272,6 +272,8 @@ return <<'END';
END
my %Scripts;
+my $ScriptsVec = '';
+my $lastlast = 0;
while (<UD>) {
next if /^#/;
@@ -303,6 +305,13 @@ $code $last
END
close SCRIPT;
}
+ my $firsti = hex($code);
+ my $lasti = $last ? hex($last) : $firsti;
+ for my $i ($firsti..$lasti) {
+ vec($ScriptsVec, $i, 1) = 1;
+ }
+ $lastlast = $lasti if $lasti > $lastlast;
+ print "\t\t$code..$last\n";
}
for my $id (values %InIdScript) {
@@ -364,6 +373,37 @@ END2
print OUT "END\n";
close OUT;
+print "\tCommon\n";
+my $CommonId = $Scripts{Common} = $InIdScript{Common} = $InId++;
+open(SCRIPT, ">In/$CommonId.pl") or die "create In/$CommonId.pl: $!\n";
+print SCRIPT <<EOH;
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is built by $0 from e.g. $UnicodeData.
+# Any changes made here will be lost!
+return <<'END';
+EOH
+my $first;
+sub flushzerorange {
+ my $i = shift;
+ if (defined $first) {
+ my $last = $i - 1;
+ $last = $last == $first ? "" : sprintf("%04X", $last);
+ printf SCRIPT "%04X\t$last\tCommon\t# In/$CommonId.pl\n", $first;
+ printf "\t\t%04X..$last\n", $first;
+ undef $first;
+ }
+}
+for my $i (0..$lastlast) {
+ if (vec($ScriptsVec, $i, 1)) {
+ defined $first && flushzerorange($i);
+ } else {
+ $first = $i unless defined $first;
+ }
+}
+flushzerorange($lastlast+1);
+print SCRIPT "END\n";
+close(SCRIPT);
+
open(INID, ">In.pl");
print INID <<EOH;