In perl.git, the branch blead has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/1e420d1cde740938fdfedb4ce5d184e0e29eb093?hp=6f44131d18eb3c79d59c550fbc73b2d7122e5a1d>

- Log -----------------------------------------------------------------
commit 1e420d1cde740938fdfedb4ce5d184e0e29eb093
Author: Nicolas R <atoo...@cpan.org>
Date:   Tue Jun 4 13:28:50 2019 -0600

    Bump Devel-PPPort for next release

commit 9aa6a8632401c657fffb4c7f230b5dedb37fa485
Author: Nicolas R <atoo...@cpan.org>
Date:   Wed May 15 08:53:26 2019 -0600

    Fix compilation issues with version older than 5.010
    
    By adding more Perl versions to the Travis CI configuration
    file we discovered that versions earlier 5.010 are broken.
    
    Note that the uv.t does not raise the overflow warning
    as expected by the test and we probably want to fix this in
    a short future.
    
    The test uv.t is simply not passing with 5.006 versions and
    has several failures. I've currently disabled it.
    
    Patch provided by Pali
    
    (cherry picked from commit a09f79fbc2455b7ea72a49f6627a639101ba35a2)
    Signed-off-by: Nicolas R <atoo...@cpan.org>

commit 3bfe1c6899bcda599624b50af7e5d5d27dc2d53b
Author: Nicolas R <atoo...@cpan.org>
Date:   Tue May 14 13:53:45 2019 -0600

    Rename PPPort_xs.PL to RealPPPort_xs.PL
    
    Fixes Devel-PPPort GH #21
    
    To avoid confusion rename the template for RealPPPort.xs
    file as RealPPPort_xs.PL so it's now clear what file
    it generates.
    
    (cherry picked from commit 0f14f67985491207f4a0e3936307f4c565717fd6)
    Signed-off-by: Nicolas R <atoo...@cpan.org>

-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                                           |   2 +-
 Makefile.SH                                        |   2 +-
 dist/Devel-PPPort/HACKERS                          |   4 +-
 dist/Devel-PPPort/Makefile.PL                      |  10 +-
 dist/Devel-PPPort/PPPort.xs                        |   2 +-
 dist/Devel-PPPort/PPPort_pm.PL                     |  18 +--
 .../{PPPort_xs.PL => RealPPPort_xs.PL}             |   2 +-
 dist/Devel-PPPort/parts/inc/misc                   | 143 +++++++++++++++------
 dist/Devel-PPPort/parts/inc/uv                     |  29 ++++-
 dist/Devel-PPPort/parts/inc/warn                   |   1 +
 dist/Devel-PPPort/t/uv.t                           |   5 +-
 11 files changed, 152 insertions(+), 66 deletions(-)
 rename dist/Devel-PPPort/{PPPort_xs.PL => RealPPPort_xs.PL} (98%)

diff --git a/MANIFEST b/MANIFEST
index e5bdf66a4b..3bace2ac88 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3291,7 +3291,7 @@ dist/Devel-PPPort/parts/todo/5024000      Devel::PPPort 
todo file
 dist/Devel-PPPort/PPPort.xs            Devel::PPPort dummy PPPort.xs
 dist/Devel-PPPort/ppport_h.PL          Devel::PPPort ppport.h writer
 dist/Devel-PPPort/PPPort_pm.PL         Devel::PPPort PPPort.pm writer
-dist/Devel-PPPort/PPPort_xs.PL         Devel::PPPort RealPPPort.xs writer
+dist/Devel-PPPort/RealPPPort_xs.PL             Devel::PPPort RealPPPort.xs 
writer
 dist/Devel-PPPort/soak                 Devel::PPPort Test Harness to run under 
various Perls
 dist/Devel-PPPort/t/call.t             Devel::PPPort test file
 dist/Devel-PPPort/t/cop.t              Devel::PPPort test file
diff --git a/Makefile.SH b/Makefile.SH
index 0d925bc2b9..73c9d8133a 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -1104,7 +1104,7 @@ catamount)
 $spitshell >>$Makefile <<!GROK!THIS!
 .PHONY: makeppport
 makeppport: \$(MINIPERL_EXE) \$(CONFIGPM)
-       -@for f in Makefile.PL PPPort_pm.PL PPPort_xs.PL ppport_h.PL; do \
+       -@for f in Makefile.PL PPPort_pm.PL RealPPPort_xs.PL ppport_h.PL; do \
        (cd ext/Devel-PPPort && `pwd`/run.sh ../../$(MINIPERL_EXE) -I../../lib 
\$\$f); \
        done
 
diff --git a/dist/Devel-PPPort/HACKERS b/dist/Devel-PPPort/HACKERS
index 8cd57a95d8..1db7f34ec1 100644
--- a/dist/Devel-PPPort/HACKERS
+++ b/dist/Devel-PPPort/HACKERS
@@ -160,7 +160,7 @@ hints, dependency information, XS code and tests.
 The files are in a POD-like format that is parsed using the
 functions in F<parts/ppptools.pl>.
 
-The scripts F<PPPort_pm.PL>, F<PPPort_xs.PL> and F<mktests.PL> all
+The scripts F<PPPort_pm.PL>, F<RealPPPort_xs.PL> and F<mktests.PL> all
 use the information in F<parts/inc/> to generate the main module
 F<PPPort.pm>, the XS code in F<RealPPPort.xs> and various test files
 in F<t/>.
@@ -196,7 +196,7 @@ section.
 The code required to add to PPPort.xs for testing the implementation.
 This code goes into the C<=xshead>, C<=xsinit>, C<=xsmisc>, C<=xsboot>
 and C<=xsubs> section. Have a look at the template at the bottom
-of F<PPPort_xs.PL> to see where the code ends up.
+of F<RealPPPort_xs.PL> to see where the code ends up.
 
 =item *
 
diff --git a/dist/Devel-PPPort/Makefile.PL b/dist/Devel-PPPort/Makefile.PL
index 62ba014cf6..7c2064a0cd 100644
--- a/dist/Devel-PPPort/Makefile.PL
+++ b/dist/Devel-PPPort/Makefile.PL
@@ -46,7 +46,7 @@ sub configure
   my %PL_FILES = (
     'ppport_h.PL'  => 'ppport.h',
     'PPPort_pm.PL' => 'PPPort.pm',
-    'PPPort_xs.PL' => 'RealPPPort.xs',
+    'RealPPPort_xs.PL' => 'RealPPPort.xs',
   );
   my @moreopts;
 
@@ -77,13 +77,13 @@ sub configure
     $depend{'apicheck.i'} = 'ppport.h';
   }
 
-  open my $fh, '<', 'PPPort_pm.PL' or die "cannot open PPPort_pm.PL for 
reading: $!";
+  open FH, '<PPPort_pm.PL' or die "cannot open PPPort_pm.PL for reading: $!";
   my $version;
-  while (my $line = <$fh>) {
+  while (my $line = <FH>) {
     ($version) = $line =~ /^\$VERSION = '([\d.]+)';$/ and last;
   };
   die 'failed to extract $VERSION from PPPort_pm.PL' if not $version;
-  close $fh;
+  close FH;
 
   return {
     C        => \@C_FILES,
@@ -127,7 +127,7 @@ regen_pm:
        $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) 
PPPort_pm.PL
 
 regen_xs:
-       $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) 
PPPort_xs.PL
+       $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) 
RealPPPort_xs.PL
 
 regen_tests:
        $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) 
mktests.PL
diff --git a/dist/Devel-PPPort/PPPort.xs b/dist/Devel-PPPort/PPPort.xs
index 2586824ebb..72d4cabd47 100644
--- a/dist/Devel-PPPort/PPPort.xs
+++ b/dist/Devel-PPPort/PPPort.xs
@@ -1,3 +1,3 @@
 This is just a dummy file to let Configure know that Devel::PPPort
-is an XS module. The real XS code is autogenerated from PPPort_xs.PL
+is an XS module. The real XS code is autogenerated from RealPPPort_xs.PL
 when this module is built and will go to RealPPPort.xs.
diff --git a/dist/Devel-PPPort/PPPort_pm.PL b/dist/Devel-PPPort/PPPort_pm.PL
index abce21de2e..ac4917e8cd 100644
--- a/dist/Devel-PPPort/PPPort_pm.PL
+++ b/dist/Devel-PPPort/PPPort_pm.PL
@@ -551,7 +551,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = '3.52';
+$VERSION = '3.53';
 
 sub _init_data
 {
@@ -628,16 +628,22 @@ __DATA__
 
 %include limits
 
+%include magic_defs
+
 %include misc
 
+%include sv_xpvf
+
+%include SvPV
+
 %include warn
 
+%include format
+
 %include uv
 
 %include memory
 
-%include magic_defs
-
 %include mess
 
 %include variables
@@ -652,20 +658,14 @@ __DATA__
 
 %include MY_CXT
 
-%include format
-
 %include SvREFCNT
 
 %include newSV_type
 
 %include newSVpv
 
-%include SvPV
-
 %include Sv_set
 
-%include sv_xpvf
-
 %include shared_pv
 
 %include HvNAME
diff --git a/dist/Devel-PPPort/PPPort_xs.PL b/dist/Devel-PPPort/RealPPPort_xs.PL
similarity index 98%
rename from dist/Devel-PPPort/PPPort_xs.PL
rename to dist/Devel-PPPort/RealPPPort_xs.PL
index d00cffa81b..e6ca841c1c 100644
--- a/dist/Devel-PPPort/PPPort_xs.PL
+++ b/dist/Devel-PPPort/RealPPPort_xs.PL
@@ -1,6 +1,6 @@
 
################################################################################
 #
-#  PPPort_xs.PL -- generate RealPPPort.xs
+#  RealPPPort_xs.PL -- generate RealPPPort.xs
 #
 
################################################################################
 #
diff --git a/dist/Devel-PPPort/parts/inc/misc b/dist/Devel-PPPort/parts/inc/misc
index 2bd2dcfb02..23a316f24c 100644
--- a/dist/Devel-PPPort/parts/inc/misc
+++ b/dist/Devel-PPPort/parts/inc/misc
@@ -33,6 +33,14 @@ STMT_END
 STMT_START
 SvRX
 UTF8_MAXBYTES
+UTF8_ALLOW_ANYUV
+UTF8_ALLOW_EMPTY
+UTF8_ALLOW_CONTINUATION
+UTF8_ALLOW_NON_CONTINUATION
+UTF8_ALLOW_SHORT
+UTF8_ALLOW_LONG
+UTF8_ALLOW_OVERFLOW
+UTF8_ALLOW_ANY
 WIDEST_UTYPE
 XSRETURN
 
@@ -260,6 +268,19 @@ __UNDEFINED__  SVf             "_"
 
 __UNDEFINED__  UTF8_MAXBYTES   UTF8_MAXLEN
 
+__UNDEFINED__  UTF8_ALLOW_ANYUV                 0
+__UNDEFINED__  UTF8_ALLOW_EMPTY            0x0001
+__UNDEFINED__  UTF8_ALLOW_CONTINUATION     0x0002
+__UNDEFINED__  UTF8_ALLOW_NON_CONTINUATION 0x0004
+__UNDEFINED__  UTF8_ALLOW_SHORT            0x0008
+__UNDEFINED__  UTF8_ALLOW_LONG             0x0010
+__UNDEFINED__  UTF8_ALLOW_OVERFLOW         0x0080
+__UNDEFINED__  UTF8_ALLOW_ANY            ( UTF8_ALLOW_CONTINUATION      \
+                                          |UTF8_ALLOW_NON_CONTINUATION  \
+                                          |UTF8_ALLOW_SHORT             \
+                                          |UTF8_ALLOW_LONG              \
+                                          |UTF8_ALLOW_OVERFLOW)
+
 __UNDEFINED__  CPERLscope(x)   x
 
 __UNDEFINED__  PERL_HASH(hash,str,len) \
@@ -855,266 +876,304 @@ check_c_array()
                 mXPUSHi(*(C_ARRAY_END(x)-1)); /* 13 */
 
 bool
-test_isBLANK(UV ord)
+test_isBLANK(ord)
+    UV ord
     CODE:
         RETVAL = isBLANK(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isBLANK_A(UV ord)
+test_isBLANK_A(ord)
+    UV ord
     CODE:
         RETVAL = isBLANK_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isUPPER(UV ord)
+test_isUPPER(ord)
+    UV ord
     CODE:
         RETVAL = isUPPER(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isUPPER_A(UV ord)
+test_isUPPER_A(ord)
+    UV ord
     CODE:
         RETVAL = isUPPER_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isLOWER(UV ord)
+test_isLOWER(ord)
+    UV ord
     CODE:
         RETVAL = isLOWER(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isLOWER_A(UV ord)
+test_isLOWER_A(ord)
+    UV ord
     CODE:
         RETVAL = isLOWER_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALPHA(UV ord)
+test_isALPHA(ord)
+    UV ord
     CODE:
         RETVAL = isALPHA(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALPHA_A(UV ord)
+test_isALPHA_A(ord)
+    UV ord
     CODE:
         RETVAL = isALPHA_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isWORDCHAR(UV ord)
+test_isWORDCHAR(ord)
+    UV ord
     CODE:
         RETVAL = isWORDCHAR(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isWORDCHAR_A(UV ord)
+test_isWORDCHAR_A(ord)
+    UV ord
     CODE:
         RETVAL = isWORDCHAR_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALPHANUMERIC(UV ord)
+test_isALPHANUMERIC(ord)
+    UV ord
     CODE:
         RETVAL = isALPHANUMERIC(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALPHANUMERIC_A(UV ord)
+test_isALPHANUMERIC_A(ord)
+    UV ord
     CODE:
         RETVAL = isALPHANUMERIC_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALNUM(UV ord)
+test_isALNUM(ord)
+    UV ord
     CODE:
         RETVAL = isALNUM(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isALNUM_A(UV ord)
+test_isALNUM_A(ord)
+    UV ord
     CODE:
         RETVAL = isALNUM_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isDIGIT(UV ord)
+test_isDIGIT(ord)
+    UV ord
     CODE:
         RETVAL = isDIGIT(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isDIGIT_A(UV ord)
+test_isDIGIT_A(ord)
+    UV ord
     CODE:
         RETVAL = isDIGIT_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isOCTAL(UV ord)
+test_isOCTAL(ord)
+    UV ord
     CODE:
         RETVAL = isOCTAL(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isOCTAL_A(UV ord)
+test_isOCTAL_A(ord)
+    UV ord
     CODE:
         RETVAL = isOCTAL_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isIDFIRST(UV ord)
+test_isIDFIRST(ord)
+    UV ord
     CODE:
         RETVAL = isIDFIRST(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isIDFIRST_A(UV ord)
+test_isIDFIRST_A(ord)
+    UV ord
     CODE:
         RETVAL = isIDFIRST_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isIDCONT(UV ord)
+test_isIDCONT(ord)
+    UV ord
     CODE:
         RETVAL = isIDCONT(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isIDCONT_A(UV ord)
+test_isIDCONT_A(ord)
+    UV ord
     CODE:
         RETVAL = isIDCONT_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isSPACE(UV ord)
+test_isSPACE(ord)
+    UV ord
     CODE:
         RETVAL = isSPACE(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isSPACE_A(UV ord)
+test_isSPACE_A(ord)
+    UV ord
     CODE:
         RETVAL = isSPACE_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isASCII(UV ord)
+test_isASCII(ord)
+    UV ord
     CODE:
         RETVAL = isASCII(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isASCII_A(UV ord)
+test_isASCII_A(ord)
+    UV ord
     CODE:
         RETVAL = isASCII_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isCNTRL(UV ord)
+test_isCNTRL(ord)
+    UV ord
     CODE:
         RETVAL = isCNTRL(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isCNTRL_A(UV ord)
+test_isCNTRL_A(ord)
+    UV ord
     CODE:
         RETVAL = isCNTRL_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPRINT(UV ord)
+test_isPRINT(ord)
+    UV ord
     CODE:
         RETVAL = isPRINT(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPRINT_A(UV ord)
+test_isPRINT_A(ord)
+    UV ord
     CODE:
         RETVAL = isPRINT_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isGRAPH(UV ord)
+test_isGRAPH(ord)
+    UV ord
     CODE:
         RETVAL = isGRAPH(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isGRAPH_A(UV ord)
+test_isGRAPH_A(ord)
+    UV ord
     CODE:
         RETVAL = isGRAPH_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPUNCT(UV ord)
+test_isPUNCT(ord)
+    UV ord
     CODE:
         RETVAL = isPUNCT(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPUNCT_A(UV ord)
+test_isPUNCT_A(ord)
+    UV ord
     CODE:
         RETVAL = isPUNCT_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isXDIGIT(UV ord)
+test_isXDIGIT(ord)
+    UV ord
     CODE:
         RETVAL = isXDIGIT(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isXDIGIT_A(UV ord)
+test_isXDIGIT_A(ord)
+    UV ord
     CODE:
         RETVAL = isXDIGIT_A(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPSXSPC(UV ord)
+test_isPSXSPC(ord)
+    UV ord
     CODE:
         RETVAL = isPSXSPC(ord);
     OUTPUT:
         RETVAL
 
 bool
-test_isPSXSPC_A(UV ord)
+test_isPSXSPC_A(ord)
+    UV ord
     CODE:
         RETVAL = isPSXSPC_A(ord);
     OUTPUT:
@@ -1122,17 +1181,17 @@ test_isPSXSPC_A(UV ord)
 
 STRLEN
 av_tindex(av)
-        AV *av
+        SV *av
         CODE:
-                RETVAL = av_tindex(av);
+                RETVAL = av_tindex((AV*)SvRV(av));
         OUTPUT:
                 RETVAL
 
 STRLEN
 av_top_index(av)
-        AV *av
+        SV *av
         CODE:
-                RETVAL = av_top_index(av);
+                RETVAL = av_top_index((AV*)SvRV(av));
         OUTPUT:
                 RETVAL
 
diff --git a/dist/Devel-PPPort/parts/inc/uv b/dist/Devel-PPPort/parts/inc/uv
index bb5f19eaaa..3c03ba5a02 100644
--- a/dist/Devel-PPPort/parts/inc/uv
+++ b/dist/Devel-PPPort/parts/inc/uv
@@ -103,13 +103,19 @@ my_strnlen(const char *str, Size_t maxlen)
  * intended to work with modern perls, the tighter restrictions could be
  * relaxed.  khw thinks this is unlikely, but has been wrong in the past. */
 
+#if { VERSION < 5.10.0 }
+#  define D_PPP_CU8 U8
+#else
+#  define D_PPP_CU8 const U8
+#endif
+
 #ifndef utf8_to_uvchr_buf
    /* Choose which underlying implementation to use.  At least one must be
     * present or the perl is too early to handle this function */
 #  if defined(utf8n_to_uvchr) || defined(utf8_to_uv)
 #    if defined(utf8n_to_uvchr)   /* This is the preferred implementation */
 #      define _ppport_utf8_to_uvchr_buf_callee utf8n_to_uvchr
-#    else
+#    elif { VERSION >= 5.6.1 }
 #      define _ppport_utf8_to_uvchr_buf_callee utf8_to_uv
 #    endif
 
@@ -119,7 +125,7 @@ my_strnlen(const char *str, Size_t maxlen)
 #  if { NEED utf8_to_uvchr_buf }
 
 UV
-utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
+utf8_to_uvchr_buf(pTHX_ D_PPP_CU8 *s, const U8 *send, STRLEN *retlen)
 {
     UV ret;
     STRLEN curlen;
@@ -358,7 +364,11 @@ UTF8_SAFE_SKIP(s, adjustment)
         int adjustment
         CODE:
             /* Instead of passing in an 'e' ptr, use the real end, adjusted */
+#if defined(UTF8_SAFE_SKIP) && defined(UTF8SKIP)
             RETVAL = UTF8_SAFE_SKIP(s, s + UTF8SKIP(s) + adjustment);
+#else
+            RETVAL = 0;
+#endif
         OUTPUT:
             RETVAL
 
@@ -380,9 +390,14 @@ utf8_to_uvchr_buf(s, adjustment)
             STRLEN len;
         CODE:
             av = newAV();
+#ifdef utf8_to_uvchr_buf
             av_push(av, newSVuv(utf8_to_uvchr_buf(s,
                                                   s + UTF8SKIP(s) + adjustment,
                                                   &len)));
+#else
+            av_push(av, newSVuv(0));
+            len = (STRLEN) -1;
+#endif
             if (len == (STRLEN) -1) {
                 av_push(av, newSViv(-1));
             }
@@ -401,7 +416,12 @@ utf8_to_uvchr(s)
             STRLEN len;
         CODE:
             av = newAV();
+#ifdef utf8_to_uvchr
             av_push(av, newSVuv(utf8_to_uvchr(s, &len)));
+#else
+            av_push(av, newSVuv(0));
+            len = (STRLEN) -1;
+#endif
             if (len == (STRLEN) -1) {
                 av_push(av, newSViv(-1));
             }
@@ -414,6 +434,9 @@ utf8_to_uvchr(s)
 
 =tests plan => 52
 
+# skip tests on 5.6.0 and earlier
+BEGIN { if ("$]" le '5.006') { skip 'skip: broken utf8 support', 0 for 1..52; 
exit; } }
+
 ok(&Devel::PPPort::sv_setuv(42), 42);
 ok(&Devel::PPPort::newSVuv(123), 123);
 ok(&Devel::PPPort::sv_2uv("4711"), 4711);
@@ -495,7 +518,7 @@ else {
         {                 # Old algorithm supposedly failed to detect this
             input      => 
"\xff\x80\x90\x90\x90\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf",
             adjustment => 0,
-            warning    => qr/overflow/,
+            warning    => ("$]" le 5.008006) ? qr/Malformed UTF-8 character/ : 
qr/overflow/,
             no_warnings_returned_length => 13,
         },
     );
diff --git a/dist/Devel-PPPort/parts/inc/warn b/dist/Devel-PPPort/parts/inc/warn
index b4a5695f8f..df8a385b86 100644
--- a/dist/Devel-PPPort/parts/inc/warn
+++ b/dist/Devel-PPPort/parts/inc/warn
@@ -105,6 +105,7 @@ warner(U32 err, const char *pat, ...)
 =xsinit
 
 #define NEED_warner
+#define NEED_vnewSVpvf
 
 =xsubs
 
diff --git a/dist/Devel-PPPort/t/uv.t b/dist/Devel-PPPort/t/uv.t
index 7f5d78b9e4..5c8d4879d9 100644
--- a/dist/Devel-PPPort/t/uv.t
+++ b/dist/Devel-PPPort/t/uv.t
@@ -48,6 +48,9 @@ bootstrap Devel::PPPort;
 
 package main;
 
+# skip tests on 5.6.0 and earlier
+BEGIN { if ("$]" le '5.006') { skip 'skip: broken utf8 support', 0 for 1..52; 
exit; } }
+
 ok(&Devel::PPPort::sv_setuv(42), 42);
 ok(&Devel::PPPort::newSVuv(123), 123);
 ok(&Devel::PPPort::sv_2uv("4711"), 4711);
@@ -129,7 +132,7 @@ else {
         {                 # Old algorithm supposedly failed to detect this
             input      => 
"\xff\x80\x90\x90\x90\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf",
             adjustment => 0,
-            warning    => qr/overflow/,
+            warning    => ("$]" le 5.008006) ? qr/Malformed UTF-8 character/ : 
qr/overflow/,
             no_warnings_returned_length => 13,
         },
     );

-- 
Perl5 Master Repository

Reply via email to