This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tweak the Is* definitions of Unicode character classes
authorJarkko Hietaniemi <jhi@iki.fi>
Sun, 22 Oct 2000 04:50:04 +0000 (04:50 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Sun, 22 Oct 2000 04:50:04 +0000 (04:50 +0000)
to better match the official categorizations; embrace
the official categorizations; add the combining marks
as alpha (and -numeric); fix DCinital (a typo and edito)
to be DCmedial.

p4raw-id: //depot/perl@7394

MANIFEST
lib/unicode/Is/Alnum.pl
lib/unicode/Is/Alpha.pl
lib/unicode/Is/DCmedial.pl [moved from lib/unicode/Is/DCinital.pl with 100% similarity]
lib/unicode/Is/Graph.pl
lib/unicode/Is/Print.pl
lib/unicode/Is/Punct.pl
lib/unicode/Is/Space.pl
lib/unicode/Is/Word.pl
lib/unicode/mktables.PL

index 36ab975..b058daa 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -914,9 +914,9 @@ lib/unicode/Is/DCcompat.pl                  Unicode character database
 lib/unicode/Is/DCfinal.pl                      Unicode character database
 lib/unicode/Is/DCfont.pl                       Unicode character database
 lib/unicode/Is/DCfraction.pl                   Unicode character database
-lib/unicode/Is/DCinital.pl                     Unicode character database
 lib/unicode/Is/DCinitial.pl                    Unicode character database
 lib/unicode/Is/DCisolated.pl                   Unicode character database
+lib/unicode/Is/DCmedial.pl                     Unicode character database
 lib/unicode/Is/DCnarrow.pl                     Unicode character database
 lib/unicode/Is/DCnoBreak.pl                    Unicode character database
 lib/unicode/Is/DCsmall.pl                      Unicode character database
index 94f9a5c..a0aac62 100644 (file)
@@ -6,13 +6,23 @@ return <<'END';
 0041   005a
 0061   007a
 00aa   
+00b2   00b3
 00b5   
-00ba   
+00b9   00ba
+00bc   00be
 00c0   00d6
 00d8   00f6
 00f8   021f
 0222   0233
 0250   02ad
+02b0   02b8
+02bb   02c1
+02d0   02d1
+02e0   02e4
+02ee   
+0300   034e
+0360   0362
+037a   
 0386   
 0388   038a
 038c   
@@ -21,38 +31,57 @@ return <<'END';
 03d0   03d7
 03da   03f3
 0400   0481
+0483   0486
+0488   0489
 048c   04c4
 04c7   04c8
 04cb   04cc
 04d0   04f5
 04f8   04f9
 0531   0556
+0559   
 0561   0587
+0591   05a1
+05a3   05b9
+05bb   05bd
+05bf   
+05c1   05c2
+05c4   
 05d0   05ea
 05f0   05f2
 0621   063a
-0641   064a
+0640   0655
 0660   0669
-0671   06d3
-06d5   
+0670   06d3
+06d5   06e8
+06ea   06ed
 06f0   06fc
-0710   
-0712   072c
-0780   07a5
+0710   072c
+0730   074a
+0780   07b0
+0901   0903
 0905   0939
-093d   
-0950   
-0958   0961
+093c   094d
+0950   0954
+0958   0963
 0966   096f
+0981   0983
 0985   098c
 098f   0990
 0993   09a8
 09aa   09b0
 09b2   
 09b6   09b9
+09bc   
+09be   09c4
+09c7   09c8
+09cb   09cd
+09d7   
 09dc   09dd
-09df   09e1
+09df   09e3
 09e6   09f1
+09f4   09f9
+0a02   
 0a05   0a0a
 0a0f   0a10
 0a13   0a28
@@ -60,10 +89,14 @@ return <<'END';
 0a32   0a33
 0a35   0a36
 0a38   0a39
+0a3c   
+0a3e   0a42
+0a47   0a48
+0a4b   0a4d
 0a59   0a5c
 0a5e   
-0a66   0a6f
-0a72   0a74
+0a66   0a74
+0a81   0a83
 0a85   0a8b
 0a8d   
 0a8f   0a91
@@ -71,20 +104,27 @@ return <<'END';
 0aaa   0ab0
 0ab2   0ab3
 0ab5   0ab9
-0abd   
+0abc   0ac5
+0ac7   0ac9
+0acb   0acd
 0ad0   
 0ae0   
 0ae6   0aef
+0b01   0b03
 0b05   0b0c
 0b0f   0b10
 0b13   0b28
 0b2a   0b30
 0b32   0b33
 0b36   0b39
-0b3d   
+0b3c   0b43
+0b47   0b48
+0b4b   0b4d
+0b56   0b57
 0b5c   0b5d
 0b5f   0b61
 0b66   0b6f
+0b82   0b83
 0b85   0b8a
 0b8e   0b90
 0b92   0b95
@@ -95,36 +135,60 @@ return <<'END';
 0ba8   0baa
 0bae   0bb5
 0bb7   0bb9
-0be7   0bef
+0bbe   0bc2
+0bc6   0bc8
+0bca   0bcd
+0bd7   
+0be7   0bf2
+0c01   0c03
 0c05   0c0c
 0c0e   0c10
 0c12   0c28
 0c2a   0c33
 0c35   0c39
+0c3e   0c44
+0c46   0c48
+0c4a   0c4d
+0c55   0c56
 0c60   0c61
 0c66   0c6f
+0c82   0c83
 0c85   0c8c
 0c8e   0c90
 0c92   0ca8
 0caa   0cb3
 0cb5   0cb9
+0cbe   0cc4
+0cc6   0cc8
+0cca   0ccd
+0cd5   0cd6
 0cde   
 0ce0   0ce1
 0ce6   0cef
+0d02   0d03
 0d05   0d0c
 0d0e   0d10
 0d12   0d28
 0d2a   0d39
+0d3e   0d43
+0d46   0d48
+0d4a   0d4d
+0d57   
 0d60   0d61
 0d66   0d6f
+0d82   0d83
 0d85   0d96
 0d9a   0db1
 0db3   0dbb
 0dbd   
 0dc0   0dc6
-0e01   0e30
-0e32   0e33
-0e40   0e45
+0dca   
+0dcf   0dd4
+0dd6   
+0dd8   0ddf
+0df2   0df3
+0e01   0e3a
+0e40   0e4e
 0e50   0e59
 0e81   0e82
 0e84   
@@ -137,22 +201,33 @@ return <<'END';
 0ea5   
 0ea7   
 0eaa   0eab
-0ead   0eb0
-0eb2   0eb3
-0ebd   
+0ead   0eb9
+0ebb   0ebd
 0ec0   0ec4
+0ec6   
+0ec8   0ecd
 0ed0   0ed9
 0edc   0edd
 0f00   
-0f20   0f29
-0f40   0f47
+0f18   0f19
+0f20   0f33
+0f35   
+0f37   
+0f39   
+0f3e   0f47
 0f49   0f6a
-0f88   0f8b
+0f71   0f84
+0f86   0f8b
+0f90   0f97
+0f99   0fbc
+0fc6   
 1000   1021
 1023   1027
 1029   102a
+102c   1032
+1036   1039
 1040   1049
-1050   1055
+1050   1059
 10a0   10c5
 10d0   10f6
 1100   1159
@@ -183,18 +258,18 @@ return <<'END';
 1318   131e
 1320   1346
 1348   135a
-1369   1371
+1369   137c
 13a0   13f4
 1401   166c
 166f   1676
 1681   169a
 16a0   16ea
-1780   17b3
+16ee   16f0
+1780   17d3
 17e0   17e9
 1810   1819
-1820   1842
-1844   1877
-1880   18a8
+1820   1877
+1880   18a9
 1e00   1e9b
 1ea0   1ef9
 1f00   1f15
@@ -216,7 +291,10 @@ return <<'END';
 1fe0   1fec
 1ff2   1ff4
 1ff6   1ffc
-207f   
+2070   
+2074   2079
+207f   2089
+20d0   20e3
 2102   
 2107   
 210a   2113
@@ -228,12 +306,25 @@ return <<'END';
 212a   212d
 212f   2131
 2133   2139
-3006   
+2153   2183
+2460   249b
+24ea   
+2776   2793
+3005   3007
+3021   302f
+3031   3035
+3038   303a
 3041   3094
+3099   309a
+309d   309e
 30a1   30fa
+30fc   30fe
 3105   312c
 3131   318e
+3192   3195
 31a0   31b7
+3220   3229
+3280   3289
 3400   4db5
 4e00   9fa5
 a000   a48c
@@ -241,8 +332,7 @@ ac00        d7a3
 f900   fa2d
 fb00   fb06
 fb13   fb17
-fb1d   
-fb1f   fb28
+fb1d   fb28
 fb2a   fb36
 fb38   fb3c
 fb3e   
@@ -253,15 +343,14 @@ fbd3      fd3d
 fd50   fd8f
 fd92   fdc7
 fdf0   fdfb
+fe20   fe23
 fe70   fe72
 fe74   
 fe76   fefc
 ff10   ff19
 ff21   ff3a
 ff41   ff5a
-ff66   ff6f
-ff71   ff9d
-ffa0   ffbe
+ff66   ffbe
 ffc2   ffc7
 ffca   ffcf
 ffd2   ffd7
index de5046f..13dc003 100644 (file)
@@ -12,6 +12,14 @@ return <<'END';
 00f8   021f
 0222   0233
 0250   02ad
+02b0   02b8
+02bb   02c1
+02d0   02d1
+02e0   02e4
+02ee   
+0300   034e
+0360   0362
+037a   
 0386   
 0388   038a
 038c   
@@ -20,36 +28,54 @@ return <<'END';
 03d0   03d7
 03da   03f3
 0400   0481
+0483   0486
+0488   0489
 048c   04c4
 04c7   04c8
 04cb   04cc
 04d0   04f5
 04f8   04f9
 0531   0556
+0559   
 0561   0587
+0591   05a1
+05a3   05b9
+05bb   05bd
+05bf   
+05c1   05c2
+05c4   
 05d0   05ea
 05f0   05f2
 0621   063a
-0641   064a
-0671   06d3
-06d5   
+0640   0655
+0670   06d3
+06d5   06e8
+06ea   06ed
 06fa   06fc
-0710   
-0712   072c
-0780   07a5
+0710   072c
+0730   074a
+0780   07b0
+0901   0903
 0905   0939
-093d   
-0950   
-0958   0961
+093c   094d
+0950   0954
+0958   0963
+0981   0983
 0985   098c
 098f   0990
 0993   09a8
 09aa   09b0
 09b2   
 09b6   09b9
+09bc   
+09be   09c4
+09c7   09c8
+09cb   09cd
+09d7   
 09dc   09dd
-09df   09e1
+09df   09e3
 09f0   09f1
+0a02   
 0a05   0a0a
 0a0f   0a10
 0a13   0a28
@@ -57,9 +83,14 @@ return <<'END';
 0a32   0a33
 0a35   0a36
 0a38   0a39
+0a3c   
+0a3e   0a42
+0a47   0a48
+0a4b   0a4d
 0a59   0a5c
 0a5e   
-0a72   0a74
+0a70   0a74
+0a81   0a83
 0a85   0a8b
 0a8d   
 0a8f   0a91
@@ -67,18 +98,25 @@ return <<'END';
 0aaa   0ab0
 0ab2   0ab3
 0ab5   0ab9
-0abd   
+0abc   0ac5
+0ac7   0ac9
+0acb   0acd
 0ad0   
 0ae0   
+0b01   0b03
 0b05   0b0c
 0b0f   0b10
 0b13   0b28
 0b2a   0b30
 0b32   0b33
 0b36   0b39
-0b3d   
+0b3c   0b43
+0b47   0b48
+0b4b   0b4d
+0b56   0b57
 0b5c   0b5d
 0b5f   0b61
+0b82   0b83
 0b85   0b8a
 0b8e   0b90
 0b92   0b95
@@ -89,32 +127,56 @@ return <<'END';
 0ba8   0baa
 0bae   0bb5
 0bb7   0bb9
+0bbe   0bc2
+0bc6   0bc8
+0bca   0bcd
+0bd7   
+0c01   0c03
 0c05   0c0c
 0c0e   0c10
 0c12   0c28
 0c2a   0c33
 0c35   0c39
+0c3e   0c44
+0c46   0c48
+0c4a   0c4d
+0c55   0c56
 0c60   0c61
+0c82   0c83
 0c85   0c8c
 0c8e   0c90
 0c92   0ca8
 0caa   0cb3
 0cb5   0cb9
+0cbe   0cc4
+0cc6   0cc8
+0cca   0ccd
+0cd5   0cd6
 0cde   
 0ce0   0ce1
+0d02   0d03
 0d05   0d0c
 0d0e   0d10
 0d12   0d28
 0d2a   0d39
+0d3e   0d43
+0d46   0d48
+0d4a   0d4d
+0d57   
 0d60   0d61
+0d82   0d83
 0d85   0d96
 0d9a   0db1
 0db3   0dbb
 0dbd   
 0dc0   0dc6
-0e01   0e30
-0e32   0e33
-0e40   0e45
+0dca   
+0dcf   0dd4
+0dd6   
+0dd8   0ddf
+0df2   0df3
+0e01   0e3a
+0e40   0e4e
 0e81   0e82
 0e84   
 0e87   0e88
@@ -126,19 +188,30 @@ return <<'END';
 0ea5   
 0ea7   
 0eaa   0eab
-0ead   0eb0
-0eb2   0eb3
-0ebd   
+0ead   0eb9
+0ebb   0ebd
 0ec0   0ec4
+0ec6   
+0ec8   0ecd
 0edc   0edd
 0f00   
-0f40   0f47
+0f18   0f19
+0f35   
+0f37   
+0f39   
+0f3e   0f47
 0f49   0f6a
-0f88   0f8b
+0f71   0f84
+0f86   0f8b
+0f90   0f97
+0f99   0fbc
+0fc6   
 1000   1021
 1023   1027
 1029   102a
-1050   1055
+102c   1032
+1036   1039
+1050   1059
 10a0   10c5
 10d0   10f6
 1100   1159
@@ -174,10 +247,9 @@ return <<'END';
 166f   1676
 1681   169a
 16a0   16ea
-1780   17b3
-1820   1842
-1844   1877
-1880   18a8
+1780   17d3
+1820   1877
+1880   18a9
 1e00   1e9b
 1ea0   1ef9
 1f00   1f15
@@ -200,6 +272,7 @@ return <<'END';
 1ff2   1ff4
 1ff6   1ffc
 207f   
+20d0   20e3
 2102   
 2107   
 210a   2113
@@ -211,9 +284,14 @@ return <<'END';
 212a   212d
 212f   2131
 2133   2139
-3006   
+3005   3006
+302a   302f
+3031   3035
 3041   3094
+3099   309a
+309d   309e
 30a1   30fa
+30fc   30fe
 3105   312c
 3131   318e
 31a0   31b7
@@ -224,8 +302,7 @@ ac00        d7a3
 f900   fa2d
 fb00   fb06
 fb13   fb17
-fb1d   
-fb1f   fb28
+fb1d   fb28
 fb2a   fb36
 fb38   fb3c
 fb3e   
@@ -236,14 +313,13 @@ fbd3      fd3d
 fd50   fd8f
 fd92   fdc7
 fdf0   fdfb
+fe20   fe23
 fe70   fe72
 fe74   
 fe76   fefc
 ff21   ff3a
 ff41   ff5a
-ff66   ff6f
-ff71   ff9d
-ffa0   ffbe
+ff66   ffbe
 ffc2   ffc7
 ffca   ffcf
 ffd2   ffd7
index 40d3506..238cc56 100644 (file)
@@ -3,7 +3,7 @@
 # Any changes made here will be lost!
 return <<'END';
 0021   007e
-00a0   021f
+00a1   021f
 0222   0233
 0250   02ad
 02b0   02ee
@@ -239,7 +239,7 @@ return <<'END';
 1361   137c
 13a0   13f4
 1401   1676
-1680   169c
+1681   169c
 16a0   16f0
 1780   17dc
 17e0   17e9
@@ -265,10 +265,8 @@ return <<'END';
 1fdd   1fef
 1ff2   1ff4
 1ff6   1ffe
-2000   2008
-200b   
-2010   2029
-202f   2046
+2010   2027
+2030   2046
 2048   204d
 2070   
 2074   208e
@@ -304,7 +302,7 @@ return <<'END';
 2e9b   2ef3
 2f00   2fd5
 2ff0   2ffb
-3000   303a
+3001   303a
 303e   303f
 3041   3094
 3099   309e
@@ -330,6 +328,7 @@ a4b5        a4c0
 a4c2   a4c4
 a4c6   
 ac00   d7a3
+e000   f8ff
 f900   fa2d
 fb00   fb06
 fb13   fb17
@@ -360,4 +359,6 @@ ffda        ffdc
 ffe0   ffe6
 ffe8   ffee
 fffc   fffd
+f0000  ffffd
+100000 10fffd
 END
index c3adba6..1229a28 100644 (file)
@@ -266,7 +266,7 @@ return <<'END';
 1ff2   1ff4
 1ff6   1ffe
 2000   200b
-2010   2029
+2010   2027
 202f   2046
 2048   204d
 2070   
@@ -329,6 +329,7 @@ a4b5        a4c0
 a4c2   a4c4
 a4c6   
 ac00   d7a3
+e000   f8ff
 f900   fa2d
 fb00   fb06
 fb13   fb17
@@ -359,4 +360,6 @@ ffda        ffdc
 ffe0   ffe6
 ffe8   ffee
 fffc   fffd
+f0000  ffffd
+100000 10fffd
 END
index 9e088ba..97330ec 100644 (file)
@@ -8,45 +8,45 @@ return <<'END';
 003a   003b
 003f   0040
 005b   005d
-005f
-007b
-007d
-00a1
-00ab
-00ad
-00b7
-00bb
-00bf
-037e
-0387
+005f   
+007b   
+007d   
+00a1   
+00ab   
+00ad   
+00b7   
+00bb   
+00bf   
+037e   
+0387   
 055a   055f
 0589   058a
-05be
-05c0
-05c3
+05be   
+05c0   
+05c3   
 05f3   05f4
-060c
-061b
-061f
+060c   
+061b   
+061f   
 066a   066d
-06d4
+06d4   
 0700   070d
 0964   0965
-0970
-0df4
-0e4f
+0970   
+0df4   
+0e4f   
 0e5a   0e5b
 0f04   0f12
 0f3a   0f3d
-0f85
+0f85   
 104a   104f
-10fb
+10fb   
 1361   1368
 166d   166e
 169b   169c
 16eb   16ed
 17d4   17da
-17dc
+17dc   
 1800   180a
 2010   2027
 2030   2043
@@ -58,14 +58,14 @@ return <<'END';
 3001   3003
 3008   3011
 3014   301f
-3030
-30fb
+3030   
+30fb   
 fd3e   fd3f
 fe30   fe44
 fe49   fe52
 fe54   fe61
-fe63
-fe68
+fe63   
+fe68   
 fe6a   fe6b
 ff01   ff03
 ff05   ff0a
@@ -73,8 +73,8 @@ ff0c  ff0f
 ff1a   ff1b
 ff1f   ff20
 ff3b   ff3d
-ff3f
-ff5b
-ff5d
+ff3f   
+ff5b   
+ff5d   
 ff61   ff65
 END
index 1625dce..9971082 100644 (file)
@@ -3,12 +3,11 @@
 # Any changes made here will be lost!
 return <<'END';
 0009   000d
-0020
-0085
-00a0
-1680
+0020   
+00a0   
+1680   
 2000   200b
 2028   2029
-202f
-3000
+202f   
+3000   
 END
index 1c76c60..6ea32e6 100644 (file)
@@ -7,13 +7,23 @@ return <<'END';
 005f   
 0061   007a
 00aa   
+00b2   00b3
 00b5   
-00ba   
+00b9   00ba
+00bc   00be
 00c0   00d6
 00d8   00f6
 00f8   021f
 0222   0233
 0250   02ad
+02b0   02b8
+02bb   02c1
+02d0   02d1
+02e0   02e4
+02ee   
+0300   034e
+0360   0362
+037a   
 0386   
 0388   038a
 038c   
@@ -22,38 +32,57 @@ return <<'END';
 03d0   03d7
 03da   03f3
 0400   0481
+0483   0486
+0488   0489
 048c   04c4
 04c7   04c8
 04cb   04cc
 04d0   04f5
 04f8   04f9
 0531   0556
+0559   
 0561   0587
+0591   05a1
+05a3   05b9
+05bb   05bd
+05bf   
+05c1   05c2
+05c4   
 05d0   05ea
 05f0   05f2
 0621   063a
-0641   064a
+0640   0655
 0660   0669
-0671   06d3
-06d5   
+0670   06d3
+06d5   06e8
+06ea   06ed
 06f0   06fc
-0710   
-0712   072c
-0780   07a5
+0710   072c
+0730   074a
+0780   07b0
+0901   0903
 0905   0939
-093d   
-0950   
-0958   0961
+093c   094d
+0950   0954
+0958   0963
 0966   096f
+0981   0983
 0985   098c
 098f   0990
 0993   09a8
 09aa   09b0
 09b2   
 09b6   09b9
+09bc   
+09be   09c4
+09c7   09c8
+09cb   09cd
+09d7   
 09dc   09dd
-09df   09e1
+09df   09e3
 09e6   09f1
+09f4   09f9
+0a02   
 0a05   0a0a
 0a0f   0a10
 0a13   0a28
@@ -61,10 +90,14 @@ return <<'END';
 0a32   0a33
 0a35   0a36
 0a38   0a39
+0a3c   
+0a3e   0a42
+0a47   0a48
+0a4b   0a4d
 0a59   0a5c
 0a5e   
-0a66   0a6f
-0a72   0a74
+0a66   0a74
+0a81   0a83
 0a85   0a8b
 0a8d   
 0a8f   0a91
@@ -72,20 +105,27 @@ return <<'END';
 0aaa   0ab0
 0ab2   0ab3
 0ab5   0ab9
-0abd   
+0abc   0ac5
+0ac7   0ac9
+0acb   0acd
 0ad0   
 0ae0   
 0ae6   0aef
+0b01   0b03
 0b05   0b0c
 0b0f   0b10
 0b13   0b28
 0b2a   0b30
 0b32   0b33
 0b36   0b39
-0b3d   
+0b3c   0b43
+0b47   0b48
+0b4b   0b4d
+0b56   0b57
 0b5c   0b5d
 0b5f   0b61
 0b66   0b6f
+0b82   0b83
 0b85   0b8a
 0b8e   0b90
 0b92   0b95
@@ -96,36 +136,60 @@ return <<'END';
 0ba8   0baa
 0bae   0bb5
 0bb7   0bb9
-0be7   0bef
+0bbe   0bc2
+0bc6   0bc8
+0bca   0bcd
+0bd7   
+0be7   0bf2
+0c01   0c03
 0c05   0c0c
 0c0e   0c10
 0c12   0c28
 0c2a   0c33
 0c35   0c39
+0c3e   0c44
+0c46   0c48
+0c4a   0c4d
+0c55   0c56
 0c60   0c61
 0c66   0c6f
+0c82   0c83
 0c85   0c8c
 0c8e   0c90
 0c92   0ca8
 0caa   0cb3
 0cb5   0cb9
+0cbe   0cc4
+0cc6   0cc8
+0cca   0ccd
+0cd5   0cd6
 0cde   
 0ce0   0ce1
 0ce6   0cef
+0d02   0d03
 0d05   0d0c
 0d0e   0d10
 0d12   0d28
 0d2a   0d39
+0d3e   0d43
+0d46   0d48
+0d4a   0d4d
+0d57   
 0d60   0d61
 0d66   0d6f
+0d82   0d83
 0d85   0d96
 0d9a   0db1
 0db3   0dbb
 0dbd   
 0dc0   0dc6
-0e01   0e30
-0e32   0e33
-0e40   0e45
+0dca   
+0dcf   0dd4
+0dd6   
+0dd8   0ddf
+0df2   0df3
+0e01   0e3a
+0e40   0e4e
 0e50   0e59
 0e81   0e82
 0e84   
@@ -138,22 +202,33 @@ return <<'END';
 0ea5   
 0ea7   
 0eaa   0eab
-0ead   0eb0
-0eb2   0eb3
-0ebd   
+0ead   0eb9
+0ebb   0ebd
 0ec0   0ec4
+0ec6   
+0ec8   0ecd
 0ed0   0ed9
 0edc   0edd
 0f00   
-0f20   0f29
-0f40   0f47
+0f18   0f19
+0f20   0f33
+0f35   
+0f37   
+0f39   
+0f3e   0f47
 0f49   0f6a
-0f88   0f8b
+0f71   0f84
+0f86   0f8b
+0f90   0f97
+0f99   0fbc
+0fc6   
 1000   1021
 1023   1027
 1029   102a
+102c   1032
+1036   1039
 1040   1049
-1050   1055
+1050   1059
 10a0   10c5
 10d0   10f6
 1100   1159
@@ -184,18 +259,18 @@ return <<'END';
 1318   131e
 1320   1346
 1348   135a
-1369   1371
+1369   137c
 13a0   13f4
 1401   166c
 166f   1676
 1681   169a
 16a0   16ea
-1780   17b3
+16ee   16f0
+1780   17d3
 17e0   17e9
 1810   1819
-1820   1842
-1844   1877
-1880   18a8
+1820   1877
+1880   18a9
 1e00   1e9b
 1ea0   1ef9
 1f00   1f15
@@ -217,7 +292,10 @@ return <<'END';
 1fe0   1fec
 1ff2   1ff4
 1ff6   1ffc
-207f   
+2070   
+2074   2079
+207f   2089
+20d0   20e3
 2102   
 2107   
 210a   2113
@@ -229,12 +307,25 @@ return <<'END';
 212a   212d
 212f   2131
 2133   2139
-3006   
+2153   2183
+2460   249b
+24ea   
+2776   2793
+3005   3007
+3021   302f
+3031   3035
+3038   303a
 3041   3094
+3099   309a
+309d   309e
 30a1   30fa
+30fc   30fe
 3105   312c
 3131   318e
+3192   3195
 31a0   31b7
+3220   3229
+3280   3289
 3400   4db5
 4e00   9fa5
 a000   a48c
@@ -242,8 +333,7 @@ ac00        d7a3
 f900   fa2d
 fb00   fb06
 fb13   fb17
-fb1d   
-fb1f   fb28
+fb1d   fb28
 fb2a   fb36
 fb38   fb3c
 fb3e   
@@ -254,15 +344,14 @@ fbd3      fd3d
 fd50   fd8f
 fd92   fdc7
 fdf0   fdfb
+fe20   fe23
 fe70   fe72
 fe74   
 fe76   fefc
 ff10   ff19
 ff21   ff3a
 ff41   ff5a
-ff66   ff6f
-ff71   ff9d
-ffa0   ffbe
+ff66   ffbe
 ffc2   ffc7
 ffca   ffcf
 ffd2   ffd7
index 37b6e84..d8b57b6 100755 (executable)
@@ -16,18 +16,26 @@ mkdir "To", 0755;
 @todo = (
 # typical
 
-    ['IsWord',  '$cat =~ /^L[ulot]|^Nd/ or $code eq "005F"',   ''],
-    ['IsAlnum', '$cat =~ /^L[ulot]|^Nd/',      ''],
-    ['IsAlpha',  '$cat =~ /^L[ulot]/', ''],
-    ['IsSpace',  'White space',        $PropData],
+    # 005F: SPACING UNDERSCROE
+    ['IsWord',   '$cat =~ /^[LMN]/ or $code eq "005F"',        ''],
+    ['IsAlnum',  '$cat =~ /^[LMN]/',   ''],
+    ['IsAlpha',  '$cat =~ /^[LM]/',    ''],
+    # 0009: HORIZONTAL TABULATION
+    # 000A: LINE FEED
+    # 000B: VERTICAL TABULATION
+    # 000C: FORM FEED
+    # 000D: CARRIAGE RETURN
+    ['IsSpace',  '$cat  =~ /^Z/ ||
+                  $code =~ /^(0009|000A|000B|000C|000D)$/',    ''],
     ['IsDigit',  '$cat =~ /^Nd$/',     ''],
     ['IsUpper',  '$cat =~ /^L[ut]$/',  ''],
     ['IsLower',  '$cat =~ /^Ll$/',     ''],
-    ['IsASCII',  'hex $code <= 127',   ''],
+    ['IsASCII',  '$code le "007f"',    ''],
     ['IsCntrl',  '$cat =~ /^C/',       ''],
-    ['IsGraph',  '$cat =~ /^[^C]/ and ($cat !~ /^Z/ and $code ne "0020" or chr(hex $code) !~ /^\s/)',  ''],
-    ['IsPrint',  '$cat =~ /^[^C]/',    ''],
-    ['IsPunct',  'Punctuation',        $PropData],
+    ['IsGraph',  '$cat =~ /^([LMNPS]|Co)/',    ''],
+    ['IsPrint',  '$cat =~ /^([LMNPS]|Co|Zs)/', ''],
+    ['IsPunct',  '$cat =~ /^P/',       ''],
+    # 003[0-9]: DIGIT ZERO..NINE, 00[46][1-6]: A..F, a..f
     ['IsXDigit', '$code =~ /^00(3[0-9]|[46][1-6])$/',  ''],
     ['ToUpper',  '$up',                        '$up'],
     ['ToLower',  '$down',              '$down'],
@@ -145,7 +153,7 @@ mkdir "To", 0755;
     ['IsDCfont',       '$decomp =~ /^<font>/',         ''],
     ['IsDCnoBreak',    '$decomp =~ /^<noBreak>/',      ''],
     ['IsDCinitial',    '$decomp =~ /^<initial>/',      ''],
-    ['IsDCinital',     '$decomp =~ /^<medial>/',       ''],
+    ['IsDCmedial',     '$decomp =~ /^<medial>/',       ''],
     ['IsDCfinal',      '$decomp =~ /^<final>/',        ''],
     ['IsDCisolated',   '$decomp =~ /^<isolated>/',     ''],
     ['IsDCcircle',     '$decomp =~ /^<circle>/',       ''],