diff options
author | SADAHIRO Tomoyuki <BQW10602@nifty.com> | 2006-02-26 03:16:45 +0900 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-02-25 16:51:34 +0000 |
commit | 6818a3573a254af22852a6102b2d70b346bae901 (patch) | |
tree | 743267b87059f9f79e89ef3f9b827955d18cabfa /pp.c | |
parent | 08002bbf0bcb501d646b0a428a1fc2e25bbe4256 (diff) | |
download | perl-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.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -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 { |