This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Encode: synch with CPAN version 3.01
authorDan Kogai <dankogai@dan.co.jp>
Wed, 13 Mar 2019 02:09:18 +0000 (22:09 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Wed, 13 Mar 2019 02:10:30 +0000 (22:10 -0400)
Porting/Maintainers.pl
cpan/Encode/Encode.pm
cpan/Encode/Encode.xs
cpan/Encode/Encode/encode.h

index f0fbc52..7562a26 100755 (executable)
@@ -386,7 +386,7 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-3.00.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-3.01.tar.gz',
         'FILES'        => q[cpan/Encode],
     },
 
index 6d240b3..bc56687 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: Encode.pm,v 3.00 2019/01/31 04:49:28 dankogai Exp $
+# $Id: Encode.pm,v 3.01 2019/03/13 00:25:25 dankogai Exp $
 #
 package Encode;
 use strict;
@@ -7,7 +7,7 @@ use warnings;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 our $VERSION;
 BEGIN {
-    $VERSION = sprintf "%d.%02d", q$Revision: 3.00 $ =~ /(\d+)/g;
+    $VERSION = sprintf "%d.%02d", q$Revision: 3.01 $ =~ /(\d+)/g;
     require XSLoader;
     XSLoader::load( __PACKAGE__, $VERSION );
 }
index 30fbeab..feeccd8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- $Id: Encode.xs,v 2.46 2019/01/31 04:26:40 dankogai Exp $
+ $Id: Encode.xs,v 2.47 2019/03/13 00:26:18 dankogai Exp dankogai $
  */
 
 #define PERL_NO_GET_CONTEXT
@@ -631,7 +631,7 @@ PREINIT:
 INIT:
     SvGETMAGIC(src);
     SvGETMAGIC(check_sv);
-    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvOK(check_sv) ? SvIV_nomg(check_sv) : 0;
     modify = (check && !(check & ENCODE_LEAVE_SRC));
 PPCODE:
     if (!SvOK(src))
@@ -688,7 +688,7 @@ PREINIT:
 INIT:
     SvGETMAGIC(src);
     SvGETMAGIC(check_sv);
-    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvOK(check_sv) ? SvIV_nomg(check_sv) : 0;
     modify = (check && !(check & ENCODE_LEAVE_SRC));
 PPCODE:
     if (!SvOK(src))
@@ -796,7 +796,7 @@ PREINIT:
 INIT:
     SvGETMAGIC(src);
     SvGETMAGIC(check_sv);
-    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvOK(check_sv) ? SvIV_nomg(check_sv) : 0;
     fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
     modify = (check && !(check & ENCODE_LEAVE_SRC));
     enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
@@ -831,7 +831,7 @@ PREINIT:
 INIT:
     SvGETMAGIC(src);
     SvGETMAGIC(check_sv);
-    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvOK(check_sv) ? SvIV_nomg(check_sv) : 0;
     fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
     modify = (check && !(check & ENCODE_LEAVE_SRC));
     enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
@@ -862,7 +862,7 @@ PREINIT:
 INIT:
     SvGETMAGIC(src);
     SvGETMAGIC(check_sv);
-    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+    check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvOK(check_sv) ? SvIV_nomg(check_sv) : 0;
     fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
     modify = (check && !(check & ENCODE_LEAVE_SRC));
     enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
index 8de56eb..5d7663d 100644 (file)
@@ -259,13 +259,15 @@ S_new_msg_hv(const char * const message, /* The message text */
 #      define IS_UTF8_2_BYTE_SUPER(s0, s1)       ((s0) == 0xF4 && (s1) >= 0x90)
 #      define IS_UTF8_2_BYTE_SURROGATE(s0, s1)   ((s0) == 0xED && (s1) >= 0xA0)
 #    endif
-#    if defined(UV_IS_QUAD) /* These assume IV_MAX is 2**63-1 */
-#      ifdef EBCDIC     /* Actually is I8 */
-#       define HIGHEST_REPRESENTABLE_UTF8                                       \
-                "\xFF\xA7\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
-#      else
-#       define HIGHEST_REPRESENTABLE_UTF8                                       \
-                "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
+#    ifndef HIGHEST_REPRESENTABLE_UTF8
+#      if defined(UV_IS_QUAD) /* These assume IV_MAX is 2**63-1 */
+#        ifdef EBCDIC     /* Actually is I8 */
+#          define HIGHEST_REPRESENTABLE_UTF8                                    \
+                   "\xFF\xA7\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
+#        else
+#          define HIGHEST_REPRESENTABLE_UTF8                                    \
+                   "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
+#        endif
 #      endif
 #    endif
 #  endif
@@ -372,6 +374,9 @@ S_unexpected_non_continuation_text(const U8 * const s,
 }
 
 static int
+S_is_utf8_overlong_given_start_byte_ok(const U8 * const s, const STRLEN len);
+
+static int
 S_does_utf8_overflow(const U8 * const s,
                        const U8 * e,
                        const bool consider_overlongs)