diff options
author | Dan Kogai <dankogai@dan.co.jp> | 2019-03-12 22:09:18 -0400 |
---|---|---|
committer | James E Keenan <jkeenan@cpan.org> | 2019-03-12 22:10:30 -0400 |
commit | e06f52f05dbbeec7219ccfa7dc8a8b05669c6f80 (patch) | |
tree | ada82a6fb104e101d2ec3491be1b5d56515c8b61 /cpan/Encode | |
parent | 870fe793ff778e4d1f8588405fe06cfad95d9579 (diff) | |
download | perl-e06f52f05dbbeec7219ccfa7dc8a8b05669c6f80.tar.gz |
Encode: synch with CPAN version 3.01
Diffstat (limited to 'cpan/Encode')
-rw-r--r-- | cpan/Encode/Encode.pm | 4 | ||||
-rw-r--r-- | cpan/Encode/Encode.xs | 12 | ||||
-rw-r--r-- | cpan/Encode/Encode/encode.h | 19 |
3 files changed, 20 insertions, 15 deletions
diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm index 6d240b3bc1..bc566879e3 100644 --- a/cpan/Encode/Encode.pm +++ b/cpan/Encode/Encode.pm @@ -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 ); } diff --git a/cpan/Encode/Encode.xs b/cpan/Encode/Encode.xs index 30fbeaba5f..feeccd8752 100644 --- a/cpan/Encode/Encode.xs +++ b/cpan/Encode/Encode.xs @@ -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))); diff --git a/cpan/Encode/Encode/encode.h b/cpan/Encode/Encode/encode.h index 8de56ebe21..5d7663d5b5 100644 --- a/cpan/Encode/Encode/encode.h +++ b/cpan/Encode/Encode/encode.h @@ -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) |