diff options
author | Hugo van der Sanden <hv@crypt.org> | 2001-01-21 13:34:05 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-01-21 17:43:57 +0000 |
commit | b2e23cf9d5089a7c59b42acb50eeae7e580f5eff (patch) | |
tree | 9d854b472bd3c39eebcd58154eb10886525f1bc6 /sv.c | |
parent | 6b1bfb713ee2240cea7837d56bcc692b587c8cfb (diff) | |
download | perl-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.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -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; |