This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
integrate changes#6252..6256,6259..6260
[perl5.git]
/
op.c
diff --git
a/op.c
b/op.c
index
85fea36
..
8098b38
100644
(file)
--- a/
op.c
+++ b/
op.c
@@
-2573,6
+2573,12
@@
Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
complement = o->op_private & OPpTRANS_COMPLEMENT;
del = o->op_private & OPpTRANS_DELETE;
squash = o->op_private & OPpTRANS_SQUASH;
complement = o->op_private & OPpTRANS_COMPLEMENT;
del = o->op_private & OPpTRANS_DELETE;
squash = o->op_private & OPpTRANS_SQUASH;
+
+ if (SvUTF8(tstr))
+ o->op_private |= OPpTRANS_FROM_UTF;
+
+ if (SvUTF8(rstr))
+ o->op_private |= OPpTRANS_TO_UTF;
if (o->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) {
SV* listsv = newSVpvn("# comment\n",10);
if (o->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) {
SV* listsv = newSVpvn("# comment\n",10);
@@
-2644,15
+2650,9
@@
Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
r = t; rlen = tlen; rend = tend;
}
if (!squash) {
r = t; rlen = tlen; rend = tend;
}
if (!squash) {
- if (to_utf && from_utf) { /* only counting characters */
-
if (t == r || (tlen == rlen && memEQ(t,
r, tlen)))
+ if (t == r ||
+
(tlen == rlen && memEQ((char *)t, (char *)
r, tlen)))
o->op_private |= OPpTRANS_IDENTICAL;
o->op_private |= OPpTRANS_IDENTICAL;
- }
- else { /* straight latin-1 translation */
- if (tlen == 4 && memEQ(t, "\0\377\303\277", 4) &&
- rlen == 4 && memEQ(r, "\0\377\303\277", 4))
- o->op_private |= OPpTRANS_IDENTICAL;
- }
}
while (t < tend || tfirst <= tlast) {
}
while (t < tend || tfirst <= tlast) {