From: Jarkko Hietaniemi Date: Sun, 13 Jan 2002 19:38:17 +0000 (+0000) Subject: Move the UTF-8 conversion code earlier so that X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d2876be5b271f570ff7582f2abd26166bc9d3060;p=p5sagit%2Fp5-mst-13.2.git Move the UTF-8 conversion code earlier so that op/ver is happy. p4raw-id: //depot/perl@14246 --- diff --git a/sv.c b/sv.c index 0e0c5fc..006fb8c 100644 --- a/sv.c +++ b/sv.c @@ -8337,6 +8337,22 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV continue; /* not "break" */ } + if (is_utf8 != has_utf8) { + if (is_utf8) { + if (SvCUR(sv)) + sv_utf8_upgrade(sv); + } + else { + SV *nsv = sv_2mortal(newSVpvn(eptr, elen)); + sv_utf8_upgrade(nsv); + eptr = SvPVX(nsv); + elen = SvCUR(nsv); + } + SvGROW(sv, SvCUR(sv) + elen + 1); + p = SvEND(sv); + *p = '\0'; + } + have = esignlen + zeros + elen; need = (have > width ? have : width); gap = need - have; @@ -8360,20 +8376,6 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV *p++ = '0'; } if (elen) { - if (is_utf8 != has_utf8) { - if (is_utf8) { - if (SvCUR(sv)) - sv_utf8_upgrade(sv); - } - else { - SV *nsv = sv_2mortal(newSVpvn(eptr, elen)); - sv_utf8_upgrade(nsv); - eptr = SvPVX(nsv); - elen = SvCUR(nsv); - } - SvGROW(sv, SvCUR(sv) + elen + 1); - p = SvEND(sv); - } Copy(eptr, p, elen, char); p += elen; } diff --git a/t/op/ver.t b/t/op/ver.t index 31bd09c..ecfc15c 100755 --- a/t/op/ver.t +++ b/t/op/ver.t @@ -208,7 +208,7 @@ my ($revision,$version,$subversion) = split '\.', sprintf("%vd",$^V); my $v = sprintf("%d.%.3d%.3d",$revision,$version,$subversion); -ok( $v eq "$]", "\$^V eq \$] (string)"); +ok( $v eq "$]", qq{"\$^V eq "\$]"}); $v = $revision + $version/1000 + $subversion/1000000;