diff --git a/doio.c b/doio.c index 5d54a9b5d7..0da05c127c 100644 --- a/doio.c +++ b/doio.c @@ -1225,7 +1225,7 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp) tmpbuf = bytes_to_utf8((const U8*) tmps, &len); tmps = (char *) tmpbuf; } - else if (ckWARN_d(WARN_UTF8)) { + else if (ckWARN4_d(WARN_UTF8, WARN_SURROGATE, WARN_NON_UNICODE, WARN_NONCHAR)) { (void) check_utf8_print((const U8*) tmps, len); } } diff --git a/t/lib/warnings/utf8 b/t/lib/warnings/utf8 index f6fa8f2c8f..603cfa0faf 100644 --- a/t/lib/warnings/utf8 +++ b/t/lib/warnings/utf8 @@ -349,7 +349,6 @@ EXPECT Unicode surrogate U+D800 is illegal in UTF-8 at - line 6. Unicode non-character U+FFFF is illegal for open interchange at - line 7. ######## -# TODO # NAME C works in isolation require "../test.pl"; use warnings 'nonchar'; @@ -360,7 +359,6 @@ close $fh; EXPECT Unicode non-character U+FFFF is illegal for open interchange at - line 5. ######## -# TODO # NAME C works in isolation require "../test.pl"; use warnings 'surrogate'; @@ -371,7 +369,6 @@ close $fh; EXPECT Unicode surrogate U+D800 is illegal in UTF-8 at - line 5. ######## -# TODO # NAME C works in isolation require "../test.pl"; use warnings 'non_unicode'; diff --git a/utf8.c b/utf8.c index 613f10a292..1a69dd314c 100644 --- a/utf8.c +++ b/utf8.c @@ -137,7 +137,7 @@ Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags) { PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS; - if (ckWARN_d(WARN_UTF8)) { + if (ckWARN4_d(WARN_UTF8, WARN_SURROGATE, WARN_NON_UNICODE, WARN_NONCHAR)) { if (UNICODE_IS_SURROGATE(uv)) { if (flags & UNICODE_WARN_SURROGATE) { Perl_ck_warner_d(aTHX_ packWARN(WARN_SURROGATE),