Commit | Line | Data |
---|---|---|
bdaa056b JH |
1 | #!./perl |
2 | ||
3 | BEGIN { | |
4 | chdir 't' if -d 't'; | |
5 | @INC = '../lib'; | |
6 | } | |
7 | ||
8 | print "1..11\n"; | |
9 | ||
10 | ($a, $b, $c) = qw(foo bar); | |
11 | ||
12 | print "not " unless "$a" eq "foo"; | |
13 | print "ok 1\n"; | |
14 | ||
15 | print "not " unless "$a$b" eq "foobar"; | |
16 | print "ok 2\n"; | |
17 | ||
18 | print "not " unless "$c$a$c" eq "foo"; | |
19 | print "ok 3\n"; | |
20 | ||
21 | # Okay, so that wasn't very challenging. Let's go Unicode. | |
22 | ||
23 | my $test = 4; | |
24 | ||
25 | { | |
26 | # bug id 20000819.004 | |
27 | ||
28 | $_ = $dx = "\x{10f2}"; | |
29 | s/($dx)/$dx$1/; | |
30 | { | |
31 | use bytes; | |
32 | print "not " unless $_ eq "$dx$dx"; | |
33 | print "ok $test\n"; | |
34 | $test++; | |
35 | } | |
36 | ||
37 | $_ = $dx = "\x{10f2}"; | |
38 | s/($dx)/$1$dx/; | |
39 | { | |
40 | use bytes; | |
41 | print "not " unless $_ eq "$dx$dx"; | |
42 | print "ok $test\n"; | |
43 | $test++; | |
44 | } | |
45 | ||
46 | $dx = "\x{10f2}"; | |
47 | $_ = "\x{10f2}\x{10f2}"; | |
48 | s/($dx)($dx)/$1$2/; | |
49 | { | |
50 | use bytes; | |
51 | print "not " unless $_ eq "$dx$dx"; | |
52 | print "ok $test\n"; | |
53 | $test++; | |
54 | } | |
55 | } | |
56 | ||
57 | { | |
58 | # bug id 20000901.092 | |
59 | # test that undef left and right of utf8 results in a valid string | |
60 | ||
61 | my $a; | |
62 | $a .= "\x{1ff}"; | |
63 | print "not " unless $a eq "\x{1ff}"; | |
64 | print "ok $test\n"; | |
65 | $test++; | |
66 | } | |
67 | ||
68 | { | |
69 | # ID 20001020.006 | |
70 | ||
71 | "x" =~ /(.)/; # unset $2 | |
72 | ||
73 | # Without the fix this 5.7.0 would croak: | |
74 | # Modification of a read-only value attempted at ... | |
75 | "$2\x{1234}"; | |
76 | ||
77 | print "ok $test\n"; | |
78 | $test++; | |
79 | ||
80 | # For symmetry with the above. | |
81 | "\x{1234}$2"; | |
82 | ||
83 | print "ok $test\n"; | |
84 | $test++; | |
85 | ||
86 | *pi = \undef; | |
87 | # This bug existed earlier than the $2 bug, but is fixed with the same | |
88 | # patch. Without the fix this 5.7.0 would also croak: | |
89 | # Modification of a read-only value attempted at ... | |
90 | "$pi\x{1234}"; | |
91 | ||
92 | print "ok $test\n"; | |
93 | $test++; | |
94 | ||
95 | # For symmetry with the above. | |
96 | "\x{1234}$pi"; | |
97 | ||
98 | print "ok $test\n"; | |
99 | $test++; | |
100 | } |