summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-10-03 16:47:30 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-10-03 16:47:30 +0000
commit9b4e380a0c2cfcae174bddd911f9f6437cd7d53f (patch)
treeace0dd8984ce67ae8bf0e74dfa0a3b7dcae8d86e
parentdee4fd60ac48abef5b51dded36ba5990e53c7daf (diff)
downloadperl-9b4e380a0c2cfcae174bddd911f9f6437cd7d53f.tar.gz
Unicode properties: fix L& (the #12319 didn't allow L&,
only IsL&) and Inherited (negative lookahead good); add tests for Common, Inherited, and L&. p4raw-id: //depot/perl@12320
-rw-r--r--lib/utf8_heavy.pl4
-rw-r--r--pod/perltodo.pod4
-rwxr-xr-xt/op/pat.t26
3 files changed, 29 insertions, 5 deletions
diff --git a/lib/utf8_heavy.pl b/lib/utf8_heavy.pl
index 0961509af8..3efd421b55 100644
--- a/lib/utf8_heavy.pl
+++ b/lib/utf8_heavy.pl
@@ -23,7 +23,7 @@ sub SWASHNEW {
defined %utf8::In || do "unicore/In.pl";
- $type =~ s/^In(?:[-_]|\s+)?//i;
+ $type =~ s/^In(?:[-_]|\s+)?(?!herited$)//i;
$type =~ s/\s+$//;
my $inprefix = substr(lc($type), 0, 3);
@@ -43,7 +43,7 @@ sub SWASHNEW {
unless (defined $file) {
# This is separate from 'To' in preparation of Is.pl (a la In.pl).
- if ($type =~ /^Is([A-Z][A-Za-z]*|L&)$/) {
+ if ($type =~ /^Is([A-Z][A-Za-z]*|L&)$/ || $type =~ /^(L&)$/ ) {
my $cat = $1 eq 'L&' ? 'L' : $1;
$file = "unicore/Is/$cat";
} elsif ((not defined $file) && $type =~ /^To([A-Z][A-Za-z]*)$/) {
diff --git a/pod/perltodo.pod b/pod/perltodo.pod
index 1f57c0c1ea..2a086f91c5 100644
--- a/pod/perltodo.pod
+++ b/pod/perltodo.pod
@@ -73,9 +73,9 @@ C<\p{IsPs}>.
=item *
-Allow for the metaproperties C<Any> and C<Assigned>, and C<Common>;
+Allow for the metaproperties C<Any> and C<Assigned>;
C<Alphabetic>, C<Ideographic>, C<Lowercase>, C<Uppercase> (note that
-are large classes than the general categories C<Lu> and C<Ll>),
+these are larger classes than the general categories C<Lu> and C<Ll>),
C<White Space>, C<Bidi Control>, C<Join Control>, C<ASCII Hex Digit>,
C<Hex Digit>, <Noncharacter Code Point>, C<ID Start>, C<ID Continue>,
C<XID Start>, C<XID Continue>, C<NF*_NO>, C<NF*_MAYBE>.
diff --git a/t/op/pat.t b/t/op/pat.t
index 63798660c7..63c5ba21fb 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -6,7 +6,7 @@
$| = 1;
-print "1..738\n";
+print "1..744\n";
BEGIN {
chdir 't' if -d 't';
@@ -2206,3 +2206,27 @@ print "# some Unicode properties\n";
print "ok 738\n";
}
+
+{
+ print "not " if "a" =~ /\p{Common}/;
+ print "ok 739\n";
+
+ print "not " unless "1" =~ /\p{Common}/;
+ print "ok 740\n";
+}
+
+{
+ print "not " if "a" =~ /\p{Inherited}/;
+ print "ok 741\n";
+
+ print "not " unless "\x{300}" =~ /\p{Inherited}/;
+ print "ok 742\n";
+}
+
+{
+ print "not " unless "a" =~ /\p{L&}/;
+ print "ok 743\n";
+
+ print "not " if "1" =~ /\p{L&}/;
+ print "ok 744\n";
+}