summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorHugo van der Sanden <hv@crypt.org>2001-01-21 13:34:05 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-01-21 17:43:57 +0000
commitb2e23cf9d5089a7c59b42acb50eeae7e580f5eff (patch)
tree9d854b472bd3c39eebcd58154eb10886525f1bc6 /sv.c
parent6b1bfb713ee2240cea7837d56bcc692b587c8cfb (diff)
downloadperl-b2e23cf9d5089a7c59b42acb50eeae7e580f5eff.tar.gz
Re: 8482 busted for $^V sprintf()s on OS/390
Message-Id: <200101211334.NAA18121@crypt.compulink.co.uk> In sprintf UTF8ize only if necessary. p4raw-id: //depot/perl@8499
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sv.c b/sv.c
index cccd2e947b..3a7bb6600a 100644
--- a/sv.c
+++ b/sv.c
@@ -6780,7 +6780,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
bool left = FALSE;
bool vectorize = FALSE;
bool vectorarg = FALSE;
- bool utf = FALSE;
+ bool vec_utf = FALSE;
char fill = ' ';
char plus = 0;
char intsize = 0;
@@ -6918,19 +6918,17 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
if (args) {
vecsv = va_arg(*args, SV*);
vecstr = (U8*)SvPVx(vecsv,veclen);
- utf = DO_UTF8(vecsv);
+ vec_utf = DO_UTF8(vecsv);
}
else if (efix ? efix <= svmax : svix < svmax) {
vecsv = svargs[efix ? efix-1 : svix++];
vecstr = (U8*)SvPVx(vecsv,veclen);
- utf = DO_UTF8(vecsv);
+ vec_utf = DO_UTF8(vecsv);
}
else {
vecstr = (U8*)"";
veclen = 0;
}
- if (DO_UTF8(vecsv))
- is_utf = TRUE;
}
if (asterisk) {
@@ -7099,7 +7097,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
STRLEN ulen;
if (!veclen)
continue;
- if (utf)
+ if (vec_utf)
iv = (IV)utf8_to_uv(vecstr, veclen, &ulen, 0);
else {
iv = *vecstr;
@@ -7179,7 +7177,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
vector:
if (!veclen)
continue;
- if (utf)
+ if (vec_utf)
uv = utf8_to_uv(vecstr, veclen, &ulen, 0);
else {
uv = *vecstr;