Unicode properties: fix L& (the #12319 didn't allow L&,
[p5sagit/p5-mst-13.2.git] / lib / utf8_heavy.pl
index 025a70b..3efd421 100644 (file)
@@ -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);
@@ -41,13 +41,14 @@ sub SWASHNEW {
            }
        }
 
-       # This is separate from 'To' in preparation of Is.pl (a la In.pl).
-       if ((not defined $file) && $type =~ /^Is([A-Z][A-Za-z]*)$/) {
-           $file = "unicore/Is/$1";
-       }
-
-       if ((not defined $file) && $type =~ /^To([A-Z][A-Za-z]*)$/) {
-           $file = "unicore/To/$1";
+       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&)$/ || $type =~ /^(L&)$/ ) {
+               my $cat = $1 eq 'L&' ? 'L' : $1;
+               $file = "unicore/Is/$cat";
+           } elsif ((not defined $file) && $type =~ /^To([A-Z][A-Za-z]*)$/) {
+               $file = "unicore/To/$1";
+           }
        }
     }