Needs to be conditional on SunOS 4.
[p5sagit/p5-mst-13.2.git] / t / pragma / utf8.t
index fd1abbb..2b208cc 100755 (executable)
@@ -10,7 +10,7 @@ BEGIN {
     }
 }
 
-print "1..70\n";
+print "1..75\n";
 
 my $test = 1;
 
@@ -322,6 +322,7 @@ sub nok_bytes {
     ok "@a", "1234 2345";
     $test++;                # 68
 }
+
 {
   my($a,$b);
   { use bytes; $a = "\xc3\xa4"; }  
@@ -329,3 +330,47 @@ sub nok_bytes {
   { use bytes; ok_bytes $a, $b; $test++; } # 69
   { use utf8;  nok      $a, $b; $test++; } # 70
 }
+
+{
+    my @x = ("stra\337e 138","stra\337e 138");
+    for (@x) {
+       s/(\d+)\s*([\w\-]+)/$1 . uc $2/e;
+       my($latin) = /^(.+)(?:\s+\d)/;
+       print $latin eq "stra\337e" ? "ok $test\n" :
+           "#latin[$latin]\nnot ok $test\n";
+       $test++;
+       $latin =~ s/stra\337e/straße/; # \303\237 after the 2nd a
+       use utf8;
+       $latin =~ s!(s)tr(?:aß|s+e)!$1tr.!; # \303\237 after the a
+    }
+}
+
+{
+    $_ = $dx = "\x{10f2}";
+    s/($dx)/$dx$1/;
+    {
+       use bytes;
+       print "not " unless $_ eq "$dx$dx";
+       print "ok $test\n";
+       $test++;
+    }
+
+    $_ = $dx = "\x{10f2}";
+    s/($dx)/$1$dx/;
+    {
+       use bytes;
+       print "not " unless $_ eq "$dx$dx";
+       print "ok $test\n";
+       $test++;
+    }
+
+    $dx = "\x{10f2}";
+    $_  = "\x{10f2}\x{10f2}";
+    s/($dx)($dx)/$1$2/;
+    {
+       use bytes;
+       print "not " unless $_ eq "$dx$dx";
+       print "ok $test\n";
+       $test++;
+    }
+}