summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorSADAHIRO Tomoyuki <BQW10602@nifty.com>2006-02-26 03:16:45 +0900
committerNicholas Clark <nick@ccl4.org>2006-02-25 16:51:34 +0000
commit6818a3573a254af22852a6102b2d70b346bae901 (patch)
tree743267b87059f9f79e89ef3f9b827955d18cabfa /pp.c
parent08002bbf0bcb501d646b0a428a1fc2e25bbe4256 (diff)
downloadperl-6818a3573a254af22852a6102b2d70b346bae901.tar.gz
Re: [perl #38619] Bug in lc and uc (interaction between UTF-8, substr, and lc/uc)
Message-Id: <20060225180934.FCC3.BQW10602@nifty.com> p4raw-id: //depot/perl@27329
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/pp.c b/pp.c
index 1724ab0d7a..b1fa7bc792 100644
--- a/pp.c
+++ b/pp.c
@@ -3350,7 +3350,8 @@ PP(pp_ucfirst)
if (slen > ulen)
sv_catpvn(TARG, (char*)(s + ulen), slen - ulen);
SvUTF8_on(TARG);
- SETs(TARG);
+ sv = TARG;
+ SETs(sv);
}
else {
s = (U8*)SvPV_force_nomg(sv, slen);
@@ -3402,7 +3403,8 @@ PP(pp_uc)
if (!len) {
SvUTF8_off(TARG); /* decontaminate */
sv_setpvn(TARG, "", 0);
- SETs(TARG);
+ sv = TARG;
+ SETs(sv);
}
else {
STRLEN min = len + 1;
@@ -3435,7 +3437,8 @@ PP(pp_uc)
*d = '\0';
SvUTF8_on(TARG);
SvCUR_set(TARG, d - (U8*)SvPVX_const(TARG));
- SETs(TARG);
+ sv = TARG;
+ SETs(sv);
}
}
else {
@@ -3487,7 +3490,8 @@ PP(pp_lc)
if (!len) {
SvUTF8_off(TARG); /* decontaminate */
sv_setpvn(TARG, "", 0);
- SETs(TARG);
+ sv = TARG;
+ SETs(sv);
}
else {
STRLEN min = len + 1;
@@ -3540,7 +3544,8 @@ PP(pp_lc)
*d = '\0';
SvUTF8_on(TARG);
SvCUR_set(TARG, d - (U8*)SvPVX_const(TARG));
- SETs(TARG);
+ sv = TARG;
+ SETs(sv);
}
}
else {