@@ -2214,36 +2214,37 @@ Perl_do_print(pTHX_ SV *sv, PerlIO *fp)
2214
2214
else {
2215
2215
STRLEN len ;
2216
2216
/* Do this first to trigger any overloading. */
2217
- const char * tmps = SvPV_const (sv , len );
2217
+ const U8 * tmps = ( const U8 * ) SvPV_const (sv , len );
2218
2218
U8 * tmpbuf = NULL ;
2219
+
2219
2220
bool happy = TRUE;
2220
2221
2221
2222
if (PerlIO_isutf8 (fp )) { /* If the stream is utf8 ... */
2222
2223
if (!SvUTF8 (sv )) { /* Convert to utf8 if necessary */
2223
2224
/* We don't modify the original scalar. */
2224
- tmpbuf = bytes_to_utf8 (( const U8 * ) tmps , & len );
2225
- tmps = ( char * ) tmpbuf ;
2225
+ tmpbuf = bytes_to_utf8 (tmps , & len );
2226
+ tmps = tmpbuf ;
2226
2227
}
2227
2228
else if (ckWARN4_d (WARN_UTF8 , WARN_SURROGATE , WARN_NON_UNICODE , WARN_NONCHAR )) {
2228
- (void ) check_utf8_print (( const U8 * ) tmps , len );
2229
+ (void ) check_utf8_print (tmps , len );
2229
2230
}
2230
2231
} /* else stream isn't utf8 */
2231
2232
else if (DO_UTF8 (sv )) { /* But if is utf8 internally, attempt to
2232
2233
convert to bytes */
2233
2234
STRLEN tmplen = len ;
2234
2235
bool utf8 = TRUE;
2235
- U8 * const result = bytes_from_utf8 (( const U8 * ) tmps , & tmplen , & utf8 );
2236
+ U8 * const result = bytes_from_utf8 (tmps , & tmplen , & utf8 );
2236
2237
if (!utf8 ) {
2237
2238
2238
2239
/* Here, succeeded in downgrading from utf8. Set up to below
2239
2240
* output the converted value */
2240
2241
tmpbuf = result ;
2241
- tmps = ( char * ) tmpbuf ;
2242
+ tmps = tmpbuf ;
2242
2243
len = tmplen ;
2243
2244
}
2244
2245
else { /* Non-utf8 output stream, but string only representable in
2245
2246
utf8 */
2246
- assert (( char * ) result == tmps );
2247
+ assert (result == tmps );
2247
2248
Perl_ck_warner_d (aTHX_ packWARN (WARN_UTF8 ),
2248
2249
"Wide character in %s" ,
2249
2250
PL_op ? OP_DESC (PL_op ) : "print"
0 commit comments