Add the 'Common' Unicode property (code points not
Jarkko Hietaniemi [Wed, 3 Oct 2001 15:57:34 +0000 (15:57 +0000)]
explicitly assigned to any other script).

p4raw-id: //depot/perl@12318

MANIFEST
lib/unicore/In.pl
lib/unicore/In/136.pl [new file with mode: 0644]
lib/unicore/mktables.PL

index bd3a7a1..aee25f7 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1307,6 +1307,7 @@ lib/unicore/In/132.pl             Unicode character database
 lib/unicore/In/133.pl          Unicode character database
 lib/unicore/In/134.pl          Unicode character database
 lib/unicore/In/135.pl          Unicode character database
+lib/unicore/In/136.pl          Unicode character database
 lib/unicore/In/14.pl           Unicode character database
 lib/unicore/In/15.pl           Unicode character database
 lib/unicore/In/16.pl           Unicode character database
index 52383f3..2a82359 100644 (file)
 'CJK Unified Ideographs Extension B'          => 133,
 'CJK Compatibility Ideographs Supplement'     => 134,
 'Tags'                                        => 135,
+'Common'                                      => 136,
 );
 %utf8::InPat = (
 'alp' => {
        '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 (file)
index 0000000..b1abb04
--- /dev/null
@@ -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
index 09b8911..a63fbf0 100755 (executable)
@@ -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;