Change wording of warning due to Unicode Standard change blead
authorKarl Williamson <khw@cpan.org>
Wed, 13 May 2015 23:57:06 +0000 (17:57 -0600)
committerKarl Williamson <khw@cpan.org>
Mon, 6 Jul 2015 14:30:17 +0000 (08:30 -0600)
Non-characters are no longer forbidden as of Unicode 7.0; they are just
"not recommended".  The wording of the warning changes accordingly.

ext/XS-APItest/t/utf8.t
pod/perldiag.pod
t/lib/warnings/utf8
utf8.c

index 8322cb9..798380f 100644 (file)
@@ -163,7 +163,7 @@ my @tests = (
     ],
     [ "non-character code point", "\xEF\xB7\x90",
         $UTF8_WARN_NONCHAR, $UTF8_DISALLOW_NONCHAR, 'nonchar', 0xFDD0, 3,
-        qr/Unicode non-character.*is illegal for open interchange/
+        qr/Unicode non-character.*is not recommended for open interchange/
     ],
     [ "begins with FE", "\xfe\x82\x80\x80\x80\x80\x80",
 
index 6ac8ee8..159b9ac 100644 (file)
@@ -6121,7 +6121,7 @@ There should be an operator before the C<"(">, as there's
 no indication as to how the digits are to be combined
 with the characters in the Lao and Thai scripts.
 
-=item Unicode non-character U+%X is illegal for open interchange
+=item Unicode non-character U+%X is not recommended for open interchange
 
 (S nonchar) Certain codepoints, such as U+FFFE and U+FFFF, are
 defined by the Unicode standard to be non-characters.  Those
index 2dfb4cb..955ac55 100644 (file)
@@ -408,42 +408,42 @@ close $fh;
 EXPECT
 Unicode surrogate U+D800 is illegal in UTF-8 at - line 6.
 Unicode surrogate U+DFFF is illegal in UTF-8 at - line 7.
-Unicode non-character U+FDD0 is illegal for open interchange at - line 10.
-Unicode non-character U+FDEF is illegal for open interchange at - line 11.
-Unicode non-character U+FFFE is illegal for open interchange at - line 15.
-Unicode non-character U+FFFF is illegal for open interchange at - line 16.
-Unicode non-character U+1FFFE is illegal for open interchange at - line 18.
-Unicode non-character U+1FFFF is illegal for open interchange at - line 19.
-Unicode non-character U+2FFFE is illegal for open interchange at - line 20.
-Unicode non-character U+2FFFF is illegal for open interchange at - line 21.
-Unicode non-character U+3FFFE is illegal for open interchange at - line 22.
-Unicode non-character U+3FFFF is illegal for open interchange at - line 23.
-Unicode non-character U+4FFFE is illegal for open interchange at - line 24.
-Unicode non-character U+4FFFF is illegal for open interchange at - line 25.
-Unicode non-character U+5FFFE is illegal for open interchange at - line 26.
-Unicode non-character U+5FFFF is illegal for open interchange at - line 27.
-Unicode non-character U+6FFFE is illegal for open interchange at - line 28.
-Unicode non-character U+6FFFF is illegal for open interchange at - line 29.
-Unicode non-character U+7FFFE is illegal for open interchange at - line 30.
-Unicode non-character U+7FFFF is illegal for open interchange at - line 31.
-Unicode non-character U+8FFFE is illegal for open interchange at - line 32.
-Unicode non-character U+8FFFF is illegal for open interchange at - line 33.
-Unicode non-character U+9FFFE is illegal for open interchange at - line 34.
-Unicode non-character U+9FFFF is illegal for open interchange at - line 35.
-Unicode non-character U+AFFFE is illegal for open interchange at - line 36.
-Unicode non-character U+AFFFF is illegal for open interchange at - line 37.
-Unicode non-character U+BFFFE is illegal for open interchange at - line 38.
-Unicode non-character U+BFFFF is illegal for open interchange at - line 39.
-Unicode non-character U+CFFFE is illegal for open interchange at - line 40.
-Unicode non-character U+CFFFF is illegal for open interchange at - line 41.
-Unicode non-character U+DFFFE is illegal for open interchange at - line 42.
-Unicode non-character U+DFFFF is illegal for open interchange at - line 43.
-Unicode non-character U+EFFFE is illegal for open interchange at - line 44.
-Unicode non-character U+EFFFF is illegal for open interchange at - line 45.
-Unicode non-character U+FFFFE is illegal for open interchange at - line 46.
-Unicode non-character U+FFFFF is illegal for open interchange at - line 47.
-Unicode non-character U+10FFFE is illegal for open interchange at - line 49.
-Unicode non-character U+10FFFF is illegal for open interchange at - line 50.
+Unicode non-character U+FDD0 is not recommended for open interchange at - line 10.
+Unicode non-character U+FDEF is not recommended for open interchange at - line 11.
+Unicode non-character U+FFFE is not recommended for open interchange at - line 15.
+Unicode non-character U+FFFF is not recommended for open interchange at - line 16.
+Unicode non-character U+1FFFE is not recommended for open interchange at - line 18.
+Unicode non-character U+1FFFF is not recommended for open interchange at - line 19.
+Unicode non-character U+2FFFE is not recommended for open interchange at - line 20.
+Unicode non-character U+2FFFF is not recommended for open interchange at - line 21.
+Unicode non-character U+3FFFE is not recommended for open interchange at - line 22.
+Unicode non-character U+3FFFF is not recommended for open interchange at - line 23.
+Unicode non-character U+4FFFE is not recommended for open interchange at - line 24.
+Unicode non-character U+4FFFF is not recommended for open interchange at - line 25.
+Unicode non-character U+5FFFE is not recommended for open interchange at - line 26.
+Unicode non-character U+5FFFF is not recommended for open interchange at - line 27.
+Unicode non-character U+6FFFE is not recommended for open interchange at - line 28.
+Unicode non-character U+6FFFF is not recommended for open interchange at - line 29.
+Unicode non-character U+7FFFE is not recommended for open interchange at - line 30.
+Unicode non-character U+7FFFF is not recommended for open interchange at - line 31.
+Unicode non-character U+8FFFE is not recommended for open interchange at - line 32.
+Unicode non-character U+8FFFF is not recommended for open interchange at - line 33.
+Unicode non-character U+9FFFE is not recommended for open interchange at - line 34.
+Unicode non-character U+9FFFF is not recommended for open interchange at - line 35.
+Unicode non-character U+AFFFE is not recommended for open interchange at - line 36.
+Unicode non-character U+AFFFF is not recommended for open interchange at - line 37.
+Unicode non-character U+BFFFE is not recommended for open interchange at - line 38.
+Unicode non-character U+BFFFF is not recommended for open interchange at - line 39.
+Unicode non-character U+CFFFE is not recommended for open interchange at - line 40.
+Unicode non-character U+CFFFF is not recommended for open interchange at - line 41.
+Unicode non-character U+DFFFE is not recommended for open interchange at - line 42.
+Unicode non-character U+DFFFF is not recommended for open interchange at - line 43.
+Unicode non-character U+EFFFE is not recommended for open interchange at - line 44.
+Unicode non-character U+EFFFF is not recommended for open interchange at - line 45.
+Unicode non-character U+FFFFE is not recommended for open interchange at - line 46.
+Unicode non-character U+FFFFF is not recommended for open interchange at - line 47.
+Unicode non-character U+10FFFE is not recommended for open interchange at - line 49.
+Unicode non-character U+10FFFF is not recommended for open interchange at - line 50.
 Code point 0x110000 is not Unicode, may not be portable at - line 51.
 ########
 require "../test.pl";
@@ -456,7 +456,7 @@ print $fh "\x{110000}", "\n";
 close $fh;
 EXPECT
 Unicode surrogate U+D800 is illegal in UTF-8 at - line 5.
-Unicode non-character U+FFFF is illegal for open interchange at - line 6.
+Unicode non-character U+FFFF is not recommended for open interchange at - line 6.
 Code point 0x110000 is not Unicode, may not be portable at - line 7.
 ########
 require "../test.pl";
@@ -469,7 +469,7 @@ print $fh "\x{FFFF}", "\n";
 print $fh "\x{110000}", "\n";
 close $fh;
 EXPECT
-Unicode non-character U+FFFF is illegal for open interchange at - line 7.
+Unicode non-character U+FFFF is not recommended for open interchange at - line 7.
 Code point 0x110000 is not Unicode, may not be portable at - line 8.
 ########
 require "../test.pl";
@@ -496,7 +496,7 @@ print $fh "\x{110000}", "\n";
 close $fh;
 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.
+Unicode non-character U+FFFF is not recommended for open interchange at - line 7.
 ########
 # NAME C<use warnings "nonchar"> works in isolation
 require "../test.pl";
@@ -506,7 +506,7 @@ open(my $fh, "+>:utf8", $file);
 print $fh "\x{FFFF}", "\n";
 close $fh;
 EXPECT
-Unicode non-character U+FFFF is illegal for open interchange at - line 5.
+Unicode non-character U+FFFF is not recommended for open interchange at - line 5.
 ########
 # NAME C<use warnings "surrogate"> works in isolation
 require "../test.pl";
diff --git a/utf8.c b/utf8.c
index c3f0200..360e1f5 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -147,7 +147,7 @@ Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
        else if (UNICODE_IS_NONCHAR(uv)) {
            if (flags & UNICODE_WARN_NONCHAR) {
                Perl_ck_warner_d(aTHX_ packWARN(WARN_NONCHAR),
-                "Unicode non-character U+%04"UVXf" is illegal for open interchange",
+                "Unicode non-character U+%04"UVXf" is not recommended for open interchange",
                 uv);
            }
            if (flags & UNICODE_DISALLOW_NONCHAR) {
@@ -742,7 +742,7 @@ Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
            if ((flags & (UTF8_WARN_NONCHAR|UTF8_CHECK_ONLY)) == UTF8_WARN_NONCHAR
                && ckWARN_d(WARN_NONCHAR))
            {
-               sv = sv_2mortal(Perl_newSVpvf(aTHX_ "Unicode non-character U+%04"UVXf" is illegal for open interchange", uv));
+               sv = sv_2mortal(Perl_newSVpvf(aTHX_ "Unicode non-character U+%04"UVXf" is not recommended for open interchange", uv));
                pack_warn = packWARN(WARN_NONCHAR);
            }
            if (flags & UTF8_DISALLOW_NONCHAR) {
@@ -3774,7 +3774,7 @@ Perl_check_utf8_print(pTHX_ const U8* s, const STRLEN len)
            {
                UV uv = utf8_to_uvchr_buf(s, e, &char_len);
                Perl_warner(aTHX_ packWARN(WARN_NONCHAR),
-                   "Unicode non-character U+%04"UVXf" is illegal for open interchange", uv);
+                   "Unicode non-character U+%04"UVXf" is not recommended for open interchange", uv);
                ok = FALSE;
            }
        }