sv_catpvf(sv, "%c", 128) should not UTF-8-ify the sv,
Jarkko Hietaniemi [Tue, 27 Mar 2001 14:00:24 +0000 (14:00 +0000)]
noted by Gisle and fixed by NI-S.

p4raw-id: //depot/perl@9375

sv.c

diff --git a/sv.c b/sv.c
index 315c85b..75b35a8 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -7130,7 +7130,9 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
 
        case 'c':
            uv = args ? va_arg(*args, int) : SvIVx(argsv);
-           if ((uv > 255 || (!UNI_IS_INVARIANT(uv) || SvUTF8(sv))) && !IN_BYTE) {
+           if ((uv > 255 ||
+                (!UNI_IS_INVARIANT(uv) && SvUTF8(sv)))
+               && !IN_BYTE) {
                eptr = (char*)utf8buf;
                elen = uvchr_to_utf8((U8*)eptr, uv) - utf8buf;
                is_utf = TRUE;