In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/6d672728d229f6d5728c246e307d797d3f695b5c?hp=2b2126557600d964281cf37893d936e401b1a5cc>

- Log -----------------------------------------------------------------
commit 6d672728d229f6d5728c246e307d797d3f695b5c
Author: Tony Cook <t...@develop-help.com>
Date:   Thu Jun 12 14:06:25 2014 +1000

    bump $VERSION for PerlIO-encoding, PerlIO-mmap, PerlIO-scalar, OS2-Process

M       ext/PerlIO-encoding/encoding.pm
M       ext/PerlIO-mmap/mmap.pm
M       ext/PerlIO-scalar/scalar.pm
M       os2/OS2/OS2-Process/Process.pm

commit 46e2868e06e3a90816b9788baa0ef60e02976ea2
Author: Dagfinn Ilmari Mannsåker <ilm...@ilmari.org>
Date:   Mon Jun 9 18:53:36 2014 +0100

    Change sv_catpvn(…, "…", …) to sv_catpvs(…, "…")
    
    The dual-life dist affected uses Devel::PPPort, so can safely use
    sv_catpvs() even though it wasn't added until Perl v5.8.9.

M       dist/Data-Dumper/Dumper.xs
M       pp_ctl.c
M       win32/win32.c
M       win32/wince.c

commit 4662a05932175fe185d382b9b1b730e2b5cfad25
Author: Tony Cook <t...@develop-help.com>
Date:   Thu Jun 12 13:50:22 2014 +1000

    test for the Data::Dumper bug fixed by "Change newSVpvn("…", …) to 
newSVpvs("…")"

M       dist/Data-Dumper/t/dumper.t

commit c2b90b61b50912ff59d36bd0dc279930c2b76bf2
Author: Dagfinn Ilmari Mannsåker <ilm...@ilmari.org>
Date:   Fri Oct 4 16:48:40 2013 +0100

    Change newSVpvn("…", …) to newSVpvs("…")
    
    The dual-life dists affected use Devel::PPPort, so can safely use
    newSVpvs() even though it wasn't added until Perl v5.8.9.

M       dist/Data-Dumper/Dumper.xs
M       dist/Storable/Storable.xs
M       ext/DynaLoader/dl_aix.xs
M       ext/DynaLoader/dl_dllload.xs
M       ext/DynaLoader/dl_dlopen.xs
M       ext/DynaLoader/dl_dyld.xs
M       ext/DynaLoader/dl_freemint.xs
M       ext/DynaLoader/dl_hpux.xs
M       ext/DynaLoader/dl_symbian.xs
M       ext/DynaLoader/dl_vms.xs
M       ext/DynaLoader/dl_win32.xs
M       ext/DynaLoader/dlutils.c
M       ext/POSIX/POSIX.xs
M       ext/PerlIO-encoding/encoding.xs
M       ext/PerlIO-scalar/scalar.xs
M       ext/Win32CORE/Win32CORE.c
M       ext/XS-APItest/APItest.xs
M       os2/OS2/OS2-Process/Process.xs
M       os2/os2.c
M       regcomp.c
M       regexec.c
M       win32/win32.c
M       win32/wince.c
-----------------------------------------------------------------------

Summary of changes:
 dist/Data-Dumper/Dumper.xs      | 116 ++++++++++++++++++++--------------------
 dist/Data-Dumper/t/dumper.t     |  18 ++++++-
 dist/Storable/Storable.xs       |   4 +-
 ext/DynaLoader/dl_aix.xs        |   2 +-
 ext/DynaLoader/dl_dllload.xs    |   2 +-
 ext/DynaLoader/dl_dlopen.xs     |   2 +-
 ext/DynaLoader/dl_dyld.xs       |   2 +-
 ext/DynaLoader/dl_freemint.xs   |   2 +-
 ext/DynaLoader/dl_hpux.xs       |   2 +-
 ext/DynaLoader/dl_symbian.xs    |   2 +-
 ext/DynaLoader/dl_vms.xs        |   2 +-
 ext/DynaLoader/dl_win32.xs      |   4 +-
 ext/DynaLoader/dlutils.c        |   2 +-
 ext/POSIX/POSIX.xs              |   2 +-
 ext/PerlIO-encoding/encoding.pm |   2 +-
 ext/PerlIO-encoding/encoding.xs |   2 +-
 ext/PerlIO-mmap/mmap.pm         |   2 +-
 ext/PerlIO-scalar/scalar.pm     |   2 +-
 ext/PerlIO-scalar/scalar.xs     |   2 +-
 ext/Win32CORE/Win32CORE.c       |   2 +-
 ext/XS-APItest/APItest.xs       |   2 +-
 os2/OS2/OS2-Process/Process.pm  |   2 +-
 os2/OS2/OS2-Process/Process.xs  |   8 +--
 os2/os2.c                       |   4 +-
 pp_ctl.c                        |   4 +-
 regcomp.c                       |   4 +-
 regexec.c                       |   2 +-
 win32/win32.c                   |  10 ++--
 win32/wince.c                   |   8 +--
 29 files changed, 116 insertions(+), 102 deletions(-)

diff --git a/dist/Data-Dumper/Dumper.xs b/dist/Data-Dumper/Dumper.xs
index 2aeb11a..6356501 100644
--- a/dist/Data-Dumper/Dumper.xs
+++ b/dist/Data-Dumper/Dumper.xs
@@ -379,7 +379,7 @@ static SV *
 sv_x(pTHX_ SV *sv, const char *str, STRLEN len, I32 n)
 {
     if (!sv)
-       sv = newSVpvn("", 0);
+       sv = newSVpvs("");
 #ifdef DEBUGGING
     else
        assert(SvTYPE(sv) >= SVt_PV);
@@ -498,13 +498,13 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                        SV *postentry;
                        
                        if (realtype == SVt_PVHV)
-                           sv_catpvn(retval, "{}", 2);
+                           sv_catpvs(retval, "{}");
                        else if (realtype == SVt_PVAV)
-                           sv_catpvn(retval, "[]", 2);
+                           sv_catpvs(retval, "[]");
                        else
-                           sv_catpvn(retval, "do{my $o}", 9);
+                           sv_catpvs(retval, "do{my $o}");
                        postentry = newSVpvn(name, namelen);
-                       sv_catpvn(postentry, " = ", 3);
+                       sv_catpvs(postentry, " = ");
                        sv_catsv(postentry, othername);
                        av_push(postav, postentry);
                    }
@@ -517,9 +517,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                            }
                            else {
                                sv_catpvn(retval, name, 1);
-                               sv_catpvn(retval, "{", 1);
+                               sv_catpvs(retval, "{");
                                sv_catsv(retval, othername);
-                               sv_catpvn(retval, "}", 1);
+                               sv_catpvs(retval, "}");
                            }
                        }
                        else
@@ -539,11 +539,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
            else {   /* store our name and continue */
                SV *namesv;
                if (name[0] == '@' || name[0] == '%') {
-                   namesv = newSVpvn("\\", 1);
+                   namesv = newSVpvs("\\");
                    sv_catpvn(namesv, name, namelen);
                }
                else if (realtype == SVt_PVCV && name[0] == '*') {
-                   namesv = newSVpvn("\\", 2);
+                   namesv = newSVpvs("\\");
                    sv_catpvn(namesv, name, namelen);
                    (SvPVX(namesv))[1] = '&';
                }
@@ -584,9 +584,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
        if (!purity && maxdepth > 0 && *levelp >= maxdepth) {
            STRLEN vallen;
            const char * const valstr = SvPV(val,vallen);
-           sv_catpvn(retval, "'", 1);
+           sv_catpvs(retval, "'");
            sv_catpvn(retval, valstr, vallen);
-           sv_catpvn(retval, "'", 1);
+           sv_catpvs(retval, "'");
            return 1;
        }
 
@@ -594,7 +594,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
            STRLEN blesslen;
            const char * const blessstr = SvPV(bless, blesslen);
            sv_catpvn(retval, blessstr, blesslen);
-           sv_catpvn(retval, "( ", 2);
+           sv_catpvs(retval, "( ");
            if (indent >= 2) {
                blesspad = apad;
                apad = newSVsv(apad);
@@ -646,18 +646,18 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
            rval = SvPV(sv_pattern, rlen);
            rend = rval+rlen;
            slash = rval;
-           sv_catpvn(retval, "qr/", 3);
+           sv_catpvs(retval, "qr/");
            for (;slash < rend; slash++) {
              if (*slash == '\\') { ++slash; continue; }
              if (*slash == '/') {    
                sv_catpvn(retval, rval, slash-rval);
-               sv_catpvn(retval, "\\/", 2);
+               sv_catpvs(retval, "\\/");
                rlen -= slash-rval+1;
                rval = slash+1;
              }
            }
            sv_catpvn(retval, rval, rlen);
-           sv_catpvn(retval, "/", 1);
+           sv_catpvs(retval, "/");
            if (sv_flags)
              sv_catsv(retval, sv_flags);
        } 
@@ -668,19 +668,19 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                realtype <= SVt_PVMG
 #endif
        ) {                          /* scalar ref */
-           SV * const namesv = newSVpvn("${", 2);
+           SV * const namesv = newSVpvs("${");
            sv_catpvn(namesv, name, namelen);
-           sv_catpvn(namesv, "}", 1);
+           sv_catpvs(namesv, "}");
            if (realpack) {                                  /* blessed */
-               sv_catpvn(retval, "do{\\(my $o = ", 13);
+               sv_catpvs(retval, "do{\\(my $o = ");
                DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, 
seenhv,
                        postav, levelp, indent, pad, xpad, apad, sep, pair,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
                        maxdepth, sortkeys, use_sparse_seen_hash, useqq);
-               sv_catpvn(retval, ")}", 2);
+               sv_catpvs(retval, ")}");
            }                                                /* plain */
            else {
-               sv_catpvn(retval, "\\", 1);
+               sv_catpvs(retval, "\\");
                DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, 
seenhv,
                        postav, levelp, indent, pad, xpad, apad, sep, pair,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
@@ -689,10 +689,10 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
            SvREFCNT_dec(namesv);
        }
        else if (realtype == SVt_PVGV) {                     /* glob ref */
-           SV * const namesv = newSVpvn("*{", 2);
+           SV * const namesv = newSVpvs("*{");
            sv_catpvn(namesv, name, namelen);
-           sv_catpvn(namesv, "}", 1);
-           sv_catpvn(retval, "\\", 1);
+           sv_catpvs(namesv, "}");
+           sv_catpvs(retval, "\\");
            DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, 
seenhv,
                    postav, levelp,     indent, pad, xpad, apad, sep, pair,
                    freezer, toaster, purity, deepcopy, quotekeys, bless,
@@ -710,11 +710,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
            (void)strcpy(iname, name);
            inamelen = namelen;
            if (name[0] == '@') {
-               sv_catpvn(retval, "(", 1);
+               sv_catpvs(retval, "(");
                iname[0] = '$';
            }
            else {
-               sv_catpvn(retval, "[", 1);
+               sv_catpvs(retval, "[");
                /* omit "->" in $foo{bar}->[0], but not in ${$foo}->[0] */
                /*if (namelen > 0
                    && name[namelen-1] != ']' && name[namelen-1] != '}'
@@ -761,7 +761,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                if (indent >= 3) {
                    sv_catsv(retval, totpad);
                    sv_catsv(retval, ipad);
-                   sv_catpvn(retval, "#", 1);
+                   sv_catpvs(retval, "#");
                    sv_catsv(retval, ixsv);
                }
                sv_catsv(retval, totpad);
@@ -771,7 +771,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
                        maxdepth, sortkeys, use_sparse_seen_hash, useqq);
                if (ix < ixmax)
-                   sv_catpvn(retval, ",", 1);
+                   sv_catpvs(retval, ",");
            }
            if (ixmax >= 0) {
                SV * const opad = sv_x(aTHX_ Nullsv, SvPVX_const(xpad), 
SvCUR(xpad), (*levelp)-1);
@@ -780,9 +780,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                SvREFCNT_dec(opad);
            }
            if (name[0] == '@')
-               sv_catpvn(retval, ")", 1);
+               sv_catpvs(retval, ")");
            else
-               sv_catpvn(retval, "]", 1);
+               sv_catpvs(retval, "]");
            SvREFCNT_dec(ixsv);
            SvREFCNT_dec(totpad);
            Safefree(iname);
@@ -798,11 +798,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
        
            SV * const iname = newSVpvn(name, namelen);
            if (name[0] == '%') {
-               sv_catpvn(retval, "(", 1);
+               sv_catpvs(retval, "(");
                (SvPVX(iname))[0] = '$';
            }
            else {
-               sv_catpvn(retval, "{", 1);
+               sv_catpvs(retval, "{");
                /* omit "->" in $foo[0]->{bar}, but not in ${$foo}->{bar} */
                if ((namelen > 0
                     && name[namelen-1] != ']' && name[namelen-1] != '}')
@@ -810,16 +810,16 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                        && (name[1] == '{'
                            || (name[0] == '\\' && name[2] == '{'))))
                {
-                   sv_catpvn(iname, "->", 2);
+                   sv_catpvs(iname, "->");
                }
            }
            if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 &&
                (instr(name+namelen-8, "{SCALAR}") ||
                 instr(name+namelen-7, "{ARRAY}") ||
                 instr(name+namelen-6, "{HASH}"))) {
-               sv_catpvn(iname, "->", 2);
+               sv_catpvs(iname, "->");
            }
-           sv_catpvn(iname, "{", 1);
+           sv_catpvs(iname, "{");
            totpad = newSVsv(sep);
            sv_catsv(totpad, pad);
            sv_catsv(totpad, apad);
@@ -828,7 +828,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
            if (sortkeys) {
                if (sortkeys == &PL_sv_yes) {
 #if PERL_VERSION < 8
-                    sortkeys = sv_2mortal(newSVpvn("Data::Dumper::_sortkeys", 
23));
+                    sortkeys = sv_2mortal(newSVpvs("Data::Dumper::_sortkeys"));
 #else
                    keys = newAV();
                    (void)hv_iterinit((HV*)ival);
@@ -894,7 +894,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                }
 
                if (i)
-                   sv_catpvn(retval, ",", 1);
+                   sv_catpvs(retval, ",");
 
                if (sortkeys) {
                    char *key;
@@ -961,7 +961,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV 
*retval, HV *seenhv,
                }
                 sname = newSVsv(iname);
                 sv_catpvn(sname, nkey, nlen);
-                sv_catpvn(sname, "}", 1);
+                sv_catpvs(sname, "}");
 
                sv_catsv(retval, pair);
                if (indent >= 2) {
@@ -994,14 +994,14 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                SvREFCNT_dec(opad);
            }
            if (name[0] == '%')
-               sv_catpvn(retval, ")", 1);
+               sv_catpvs(retval, ")");
            else
-               sv_catpvn(retval, "}", 1);
+               sv_catpvs(retval, "}");
            SvREFCNT_dec(iname);
            SvREFCNT_dec(totpad);
        }
        else if (realtype == SVt_PVCV) {
-           sv_catpvn(retval, "sub { \"DUMMY\" }", 15);
+           sv_catpvs(retval, "sub { \"DUMMY\" }");
            if (purity)
                warn("Encountered CODE ref, using dummy placeholder");
        }
@@ -1017,7 +1017,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                SvREFCNT_dec(apad);
                apad = blesspad;
            }
-           sv_catpvn(retval, ", '", 3);
+           sv_catpvs(retval, ", '");
 
            plen = strlen(realpack);
            pticks = num_q(realpack, plen);
@@ -1036,11 +1036,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN 
namelen, SV *retval, HV *seenhv,
            else {
                sv_catpvn(retval, realpack, strlen(realpack));
            }
-           sv_catpvn(retval, "' )", 3);
+           sv_catpvs(retval, "' )");
            if (toaster && SvPOK(toaster) && SvCUR(toaster)) {
-               sv_catpvn(retval, "->", 2);
+               sv_catpvs(retval, "->");
                sv_catsv(retval, toaster);
-               sv_catpvn(retval, "()", 2);
+               sv_catpvs(retval, "()");
            }
        }
        SvREFCNT_dec(ipad);
@@ -1065,9 +1065,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp)
                    && (svp = av_fetch(seenentry, 2, FALSE)) && *svp && 
SvIV(*svp) > 0)
                {
-                   sv_catpvn(retval, "${", 2);
+                   sv_catpvs(retval, "${");
                    sv_catsv(retval, othername);
-                   sv_catpvn(retval, "}", 1);
+                   sv_catpvs(retval, "}");
                    return 1;
                }
            }
@@ -1079,7 +1079,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
              * Note that we'd have to check for weak-refs, too, but this is
              * already the branch for non-refs only. */
            else if (val != &PL_sv_undef && (!use_sparse_seen_hash || 
SvREFCNT(val) > 1)) {
-               SV * const namesv = newSVpvn("\\", 1);
+               SV * const namesv = newSVpvs("\\");
                sv_catpvn(namesv, name, namelen);
                seenentry = newAV();
                av_push(seenentry, namesv);
@@ -1160,8 +1160,8 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                static const char* const entries[] = { "{SCALAR}", "{ARRAY}", 
"{HASH}" };
                static const STRLEN sizes[] = { 8, 7, 6 };
                SV *e;
-               SV * const nname = newSVpvn("", 0);
-               SV * const newapad = newSVpvn("", 0);
+               SV * const nname = newSVpvs("");
+               SV * const newapad = newSVpvs("");
                GV * const gv = (GV*)val;
                I32 j;
                
@@ -1178,7 +1178,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
                        
                        sv_setsv(nname, postentry);
                        sv_catpvn(nname, entries[j], sizes[j]);
-                       sv_catpvn(postentry, " = ", 3);
+                       sv_catpvs(postentry, " = ");
                        av_push(postav, postentry);
                        e = newRV_inc(e);
                        
@@ -1200,7 +1200,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, 
SV *retval, HV *seenhv,
            }
        }
        else if (val == &PL_sv_undef || !SvOK(val)) {
-           sv_catpvn(retval, "undef", 5);
+           sv_catpvs(retval, "undef");
        }
 #ifdef SvVOK
        else if (SvMAGICAL(val) && (mg = mg_find(val, 'V'))) {
@@ -1260,7 +1260,7 @@ MODULE = Data::Dumper             PACKAGE = Data::Dumper  
       PREFIX = Data_Dumper_
 #
 # This is the exact equivalent of Dump.  Well, almost. The things that are
 # different as of now (due to Laziness):
-#   * doesn't deparse yet.
+#   * doesn't deparse yet.'
 #
 
 void
@@ -1319,7 +1319,7 @@ Data_Dumper_Dumpxs(href, ...)
            terse = purity = deepcopy = useqq = 0;
            quotekeys = 1;
        
-           retval = newSVpvn("", 0);
+           retval = newSVpvs("");
            if (SvROK(href)
                && (hv = (HV*)SvRV((SV*)href))
                && SvTYPE(hv) == SVt_PVHV)              {
@@ -1383,7 +1383,7 @@ Data_Dumper_Dumpxs(href, ...)
                    imax = av_len(todumpav);
                else
                    imax = -1;
-               valstr = newSVpvn("",0);
+               valstr = newSVpvs("");
                for (i = 0; i <= imax; ++i) {
                    SV *newapad;
                
@@ -1455,7 +1455,7 @@ Data_Dumper_Dumpxs(href, ...)
                    if (postlen >= 0 || !terse) {
                        sv_insert(valstr, 0, 0, " = ", 3);
                        sv_insert(valstr, 0, 0, SvPVX_const(name), SvCUR(name));
-                       sv_catpvn(valstr, ";", 1);
+                       sv_catpvs(valstr, ";");
                    }
                    sv_catsv(retval, pad);
                    sv_catsv(retval, valstr);
@@ -1469,20 +1469,20 @@ Data_Dumper_Dumpxs(href, ...)
                            if (svp && (elem = *svp)) {
                                sv_catsv(retval, elem);
                                if (i < postlen) {
-                                   sv_catpvn(retval, ";", 1);
+                                   sv_catpvs(retval, ";");
                                    sv_catsv(retval, sep);
                                    sv_catsv(retval, pad);
                                }
                            }
                        }
-                       sv_catpvn(retval, ";", 1);
+                       sv_catpvs(retval, ";");
                            sv_catsv(retval, sep);
                    }
                    sv_setpvn(valstr, "", 0);
                    if (gimme == G_ARRAY) {
                        XPUSHs(sv_2mortal(retval));
                        if (i < imax)   /* not the last time thro ? */
-                           retval = newSVpvn("",0);
+                           retval = newSVpvs("");
                    }
                }
                SvREFCNT_dec(postav);
diff --git a/dist/Data-Dumper/t/dumper.t b/dist/Data-Dumper/t/dumper.t
index b7be257..624e0bb 100644
--- a/dist/Data-Dumper/t/dumper.t
+++ b/dist/Data-Dumper/t/dumper.t
@@ -83,11 +83,11 @@ sub SKIP_TEST {
 $Data::Dumper::Useperl = 1;
 if (defined &Data::Dumper::Dumpxs) {
   print "### XS extension loaded, will run XS tests\n";
-  $TMAX = 432; $XS = 1;
+  $TMAX = 438; $XS = 1;
 }
 else {
   print "### XS extensions not loaded, will NOT run XS tests\n";
-  $TMAX = 216; $XS = 0;
+  $TMAX = 219; $XS = 0;
 }
 
 print "1..$TMAX\n";
@@ -1670,3 +1670,17 @@ OLD
     if $XS;
 }
 ############# 432
+
+{
+  sub foo {}
+  $WANT = <<'EOW';
+#*a = sub { "DUMMY" };
+#$b = \&a;
+EOW
+
+  TEST q(Data::Dumper->new([ \&foo, \\&foo ], [ "*a", "b" ])->Dump), "name of 
code in *foo";
+  local $TODO = "XS code broken";
+  TEST q(Data::Dumper->new([ \&foo, \\&foo ], [ "*a", "b" ])->Dumpxs), "name 
of code in *foo xs"
+    if $XS;
+}
+############# 436
diff --git a/dist/Storable/Storable.xs b/dist/Storable/Storable.xs
index 9c13e33..b59c580 100644
--- a/dist/Storable/Storable.xs
+++ b/dist/Storable/Storable.xs
@@ -2697,7 +2697,7 @@ static int store_code(pTHX_ stcxt_t *cxt, CV *cv)
         * blessed code references.
         */
        /* Ownership of both SVs is passed to load_module, which frees them. */
-       load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("B::Deparse",10), 
newSVnv(0.61));
+       load_module(PERL_LOADMOD_NOIMPORT, newSVpvs("B::Deparse"), 
newSVnv(0.61));
         SPAGAIN;
 
        ENTER;
@@ -5630,7 +5630,7 @@ static SV *retrieve_code(pTHX_ stcxt_t *cxt, const char 
*cname)
         * prepend "sub " to the source
         */
 
-       sub = newSVpvn("sub ", 4);
+       sub = newSVpvs("sub ");
        if (SvUTF8(text))
                SvUTF8_on(sub);
        sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */
diff --git a/ext/DynaLoader/dl_aix.xs b/ext/DynaLoader/dl_aix.xs
index 9c98972..548e4ed 100644
--- a/ext/DynaLoader/dl_aix.xs
+++ b/ext/DynaLoader/dl_aix.xs
@@ -780,7 +780,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dl_dllload.xs b/ext/DynaLoader/dl_dllload.xs
index ea0a8f6..ff0c7a9 100644
--- a/ext/DynaLoader/dl_dllload.xs
+++ b/ext/DynaLoader/dl_dllload.xs
@@ -205,7 +205,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dl_dlopen.xs b/ext/DynaLoader/dl_dlopen.xs
index cb513ab..3a009ae 100644
--- a/ext/DynaLoader/dl_dlopen.xs
+++ b/ext/DynaLoader/dl_dlopen.xs
@@ -279,7 +279,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dl_dyld.xs b/ext/DynaLoader/dl_dyld.xs
index caa9467..2ed10bb 100644
--- a/ext/DynaLoader/dl_dyld.xs
+++ b/ext/DynaLoader/dl_dyld.xs
@@ -234,7 +234,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dl_freemint.xs b/ext/DynaLoader/dl_freemint.xs
index 6970a76..f154dcb 100644
--- a/ext/DynaLoader/dl_freemint.xs
+++ b/ext/DynaLoader/dl_freemint.xs
@@ -211,7 +211,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_resolve_using   = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
     dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
 
diff --git a/ext/DynaLoader/dl_hpux.xs b/ext/DynaLoader/dl_hpux.xs
index 4acc8c1..e089190 100644
--- a/ext/DynaLoader/dl_hpux.xs
+++ b/ext/DynaLoader/dl_hpux.xs
@@ -191,7 +191,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
 
 #endif
diff --git a/ext/DynaLoader/dl_symbian.xs b/ext/DynaLoader/dl_symbian.xs
index 7f0c0d3..b509a6a 100644
--- a/ext/DynaLoader/dl_symbian.xs
+++ b/ext/DynaLoader/dl_symbian.xs
@@ -234,7 +234,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dl_vms.xs b/ext/DynaLoader/dl_vms.xs
index 6eb2c54..23cf11b 100644
--- a/ext/DynaLoader/dl_vms.xs
+++ b/ext/DynaLoader/dl_vms.xs
@@ -368,7 +368,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
 
 #endif
diff --git a/ext/DynaLoader/dl_win32.xs b/ext/DynaLoader/dl_win32.xs
index f5d56cf..ac59e11 100644
--- a/ext/DynaLoader/dl_win32.xs
+++ b/ext/DynaLoader/dl_win32.xs
@@ -48,7 +48,7 @@ OS_Error_String(pTHX)
     DWORD err = GetLastError();
     STRLEN len;
     if (!dl_error_sv)
-       dl_error_sv = newSVpvn("",0);
+       dl_error_sv = newSVpvs("");
     PerlProc_GetOSError(dl_error_sv,err);
     return SvPV(dl_error_sv,len);
 }
@@ -207,7 +207,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
diff --git a/ext/DynaLoader/dlutils.c b/ext/DynaLoader/dlutils.c
index 574ccad..29d9b91 100644
--- a/ext/DynaLoader/dlutils.c
+++ b/ext/DynaLoader/dlutils.c
@@ -92,7 +92,7 @@ dl_generic_private_init(pTHX) /* called by dl_*.xs 
dl_private_init() */
     char *perl_dl_nonlazy;
     MY_CXT_INIT;
 
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_nonlazy = 0;
 #ifdef DL_LOADONCEONLY
     dl_loaded_files = NULL;
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index 0ca1373..8f2ff10 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -1475,7 +1475,7 @@ tmpnam()
        STRLEN i;
        int len;
     CODE:
-       RETVAL = newSVpvn("", 0);
+       RETVAL = newSVpvs("");
        SvGROW(RETVAL, L_tmpnam);
        /* Yes, we know tmpnam() is bad.  So bad that some compilers
         * and linkers warn against using it.  But it is here for
diff --git a/ext/PerlIO-encoding/encoding.pm b/ext/PerlIO-encoding/encoding.pm
index 8d39ed9..b8da9be 100644
--- a/ext/PerlIO-encoding/encoding.pm
+++ b/ext/PerlIO-encoding/encoding.pm
@@ -1,7 +1,7 @@
 package PerlIO::encoding;
 
 use strict;
-our $VERSION = '0.18';
+our $VERSION = '0.19';
 our $DEBUG = 0;
 $DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
 
diff --git a/ext/PerlIO-encoding/encoding.xs b/ext/PerlIO-encoding/encoding.xs
index fababd1..cc329d3 100644
--- a/ext/PerlIO-encoding/encoding.xs
+++ b/ext/PerlIO-encoding/encoding.xs
@@ -650,7 +650,7 @@ BOOT:
        Perl_warner(aTHX_ packWARN(WARN_IO), ":encoding without 'use Encode'");
 #endif
        /* The SV is magically freed by load_module */
-       load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("Encode", 6), Nullsv, 
Nullsv);
+       load_module(PERL_LOADMOD_NOIMPORT, newSVpvs("Encode"), Nullsv, Nullsv);
        assert(sp == PL_stack_sp);
     }
     PUSHMARK(sp);
diff --git a/ext/PerlIO-mmap/mmap.pm b/ext/PerlIO-mmap/mmap.pm
index 22cab05..0f666d2 100644
--- a/ext/PerlIO-mmap/mmap.pm
+++ b/ext/PerlIO-mmap/mmap.pm
@@ -1,7 +1,7 @@
 package PerlIO::mmap;
 use strict;
 use warnings;
-our $VERSION = '0.012';
+our $VERSION = '0.013';
 
 use XSLoader;
 XSLoader::load(__PACKAGE__, __PACKAGE__->VERSION);
diff --git a/ext/PerlIO-scalar/scalar.pm b/ext/PerlIO-scalar/scalar.pm
index 7581f84..ebb6a3e 100644
--- a/ext/PerlIO-scalar/scalar.pm
+++ b/ext/PerlIO-scalar/scalar.pm
@@ -1,5 +1,5 @@
 package PerlIO::scalar;
-our $VERSION = '0.18';
+our $VERSION = '0.19';
 require XSLoader;
 XSLoader::load();
 1;
diff --git a/ext/PerlIO-scalar/scalar.xs b/ext/PerlIO-scalar/scalar.xs
index 8d217c9..ca5368e 100644
--- a/ext/PerlIO-scalar/scalar.xs
+++ b/ext/PerlIO-scalar/scalar.xs
@@ -46,7 +46,7 @@ PerlIOScalar_pushed(pTHX_ PerlIO * f, const char *mode, SV * 
arg,
        }
     }
     else {
-       s->var = newSVpvn("", 0);
+       s->var = newSVpvs("");
     }
     SvUPGRADE(s->var, SVt_PV);
 
diff --git a/ext/Win32CORE/Win32CORE.c b/ext/Win32CORE/Win32CORE.c
index 91759e8..64104d3 100644
--- a/ext/Win32CORE/Win32CORE.c
+++ b/ext/Win32CORE/Win32CORE.c
@@ -33,7 +33,7 @@ XS(w32_CORE_all){
      * subs
      */
     const char *function  = (const char *) XSANY.any_ptr;
-    Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvn("Win32",5), 
newSVnv(0.27));
+    Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvs("Win32"), 
newSVnv(0.27));
     SetLastError(err);
     errno = saved_errno;
     /* mark and SP from caller are passed through unchanged */
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index a692c51..b9b18f4 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -2433,7 +2433,7 @@ my_caller(level)
         ST(4) = cop_hints_fetch_pvs(cx->blk_oldcop, "foo", 0);
         ST(5) = cop_hints_fetch_pvn(cx->blk_oldcop, "foo", 3, 0, 0);
         ST(6) = cop_hints_fetch_sv(cx->blk_oldcop, 
-                sv_2mortal(newSVpvn("foo", 3)), 0, 0);
+                sv_2mortal(newSVpvs("foo")), 0, 0);
 
         hv = cop_hints_2hv(cx->blk_oldcop, 0);
         ST(7) = hv ? sv_2mortal(newRV_noinc((SV *)hv)) : &PL_sv_undef;
diff --git a/os2/OS2/OS2-Process/Process.pm b/os2/OS2/OS2-Process/Process.pm
index 55e8f61..babe470 100644
--- a/os2/OS2/OS2-Process/Process.pm
+++ b/os2/OS2/OS2-Process/Process.pm
@@ -20,7 +20,7 @@ BEGIN {
   #require AutoLoader;
 
   our @ISA = qw(Exporter);
-  our $VERSION = "1.09";
+  our $VERSION = "1.10";
   XSLoader::load('OS2::Process', $VERSION);
 }
 
diff --git a/os2/OS2/OS2-Process/Process.xs b/os2/OS2/OS2-Process/Process.xs
index 05befa0..81eb8fb 100644
--- a/os2/OS2/OS2-Process/Process.xs
+++ b/os2/OS2/OS2-Process/Process.xs
@@ -427,7 +427,7 @@ myQueryWindowText(HWND hwnd)
            return &PL_sv_undef;
        return &PL_sv_no;
     }
-    sv = newSVpvn("", 0);
+    sv = newSVpvs("");
     SvGROW(sv, l + 1);
     len = QueryWindowText(hwnd, l + 1, SvPV_force(sv, n_a));
     if (len != l) {
@@ -459,7 +459,7 @@ QueryWindowSWP(HWND hwnd)
 SV *
 myQueryClassName(HWND hwnd)
 {
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
     STRLEN l = 46, len = 0, n_a;
 
     while (l + 1 >= len) {
@@ -534,7 +534,7 @@ myWinQueryAtomName(ATOM atom, HATOMTBL hAtomTbl)
   ULONG len = QueryAtomLength(hAtomTbl, atom);
 
   if (len) {                   /* Probably always so... */
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
     STRLEN n_a;
 
     SvGROW(sv, len + 1);
@@ -755,7 +755,7 @@ swentries_list()
     int num, n = 0;
     STRLEN n_a;
     PSWBLOCK pswblk;
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
 
     if (!(_emx_env & 0x200)) 
             croak("swentries_list not implemented on DOS"); /* not OS/2. */
diff --git a/os2/os2.c b/os2/os2.c
index 4ae39e7..8c5e941 100644
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -3855,7 +3855,7 @@ XS(XS_OS2__headerInfo)
 
        if (size <= 0)
            Perl_croak(aTHX_ "OS2::_headerInfo(): unexpected size: %d", 
(int)size);
-       ST(0) = newSVpvn("",0);
+       ST(0) = newSVpvs("");
        SvGROW(ST(0), size + 1);
        sv_2mortal(ST(0));
 
@@ -3885,7 +3885,7 @@ XS(XS_OS2_libPath)
            Perl_croak(aTHX_ "OS2::_headerInfo(%ld,%ld,%ld,%ld) error: %s",
                       DQHI_QUERYLIBPATHSIZE, sizeof(size), 0, 0,
                       os2error(Perl_rc));
-       ST(0) = newSVpvn("",0);
+       ST(0) = newSVpvs("");
        SvGROW(ST(0), size + 1);
        sv_2mortal(ST(0));
 
diff --git a/pp_ctl.c b/pp_ctl.c
index 7f80ea4..96a7d2a 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3649,7 +3649,7 @@ S_doopen_pm(pTHX_ SV *name)
        Stat_t pmcstat;
 
        SvSetSV_nosteal(pmcsv,name);
-       sv_catpvn(pmcsv, "c", 1);
+       sv_catpvs(pmcsv, "c");
 
        if (PerlLIO_stat(SvPV_nolen_const(pmcsv), &pmcstat) >= 0)
            return check_type_and_open(pmcsv);
@@ -4078,7 +4078,7 @@ PP(pp_require)
                        sv_catpv(msg, " (you may need to install the ");
                        for (c = name; c < e; c++) {
                            if (*c == '/') {
-                               sv_catpvn(msg, "::", 2);
+                               sv_catpvs(msg, "::");
                            }
                            else {
                                sv_catpvn(msg, c, 1);
diff --git a/regcomp.c b/regcomp.c
index bc5d350..e7c6662 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -5720,7 +5720,7 @@ S_concat_pat(pTHX_ RExC_state_t * const pRExC_state,
     /* if we know we have at least two args, create an empty string,
      * then concatenate args to that. For no args, return an empty string */
     if (!pat && pat_count != 1) {
-        pat = newSVpvn("", 0);
+        pat = newSVpvs("");
         SAVEFREESV(pat);
         alloced = TRUE;
     }
@@ -14088,7 +14088,7 @@ parseit:
                         AV* this_array;
                         STRLEN cp_count = utf8_length(foldbuf,
                                                       foldbuf + foldlen);
-                        SV* multi_fold = sv_2mortal(newSVpvn("", 0));
+                        SV* multi_fold = sv_2mortal(newSVpvs(""));
 
                         Perl_sv_catpvf(aTHX_ multi_fold, "\\x{%"UVXf"}", 
value);
 
diff --git a/regexec.c b/regexec.c
index 6386d41..7e36001 100644
--- a/regexec.c
+++ b/regexec.c
@@ -7650,7 +7650,7 @@ Perl__get_regclass_nonbitmap_data(pTHX_ const regexp 
*prog,
        
     /* If requested, return a printable version of what this swash matches */
     if (listsvp) {
-       SV* matches_string = newSVpvn("", 0);
+       SV* matches_string = newSVpvs("");
 
         /* The swash should be used, if possible, to get the data, as it
          * contains the resolved data.  But this function can be called at
diff --git a/win32/win32.c b/win32/win32.c
index 9126eec..26d419e 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -279,7 +279,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        {
            dTHX;
            if (!*svp)
-               *svp = sv_2mortal(newSVpvn("",0));
+               *svp = sv_2mortal(newSVpvs(""));
            SvGROW(*svp, datalen);
            retval = RegQueryValueEx(handle, valuename, 0, NULL,
                                     (PBYTE)SvPVX(*svp), &datalen);
@@ -358,9 +358,9 @@ get_emd_part(SV **prev_pathp, STRLEN *const len, char 
*trailing_path, ...)
        /* directory exists */
        dTHX;
        if (!*prev_pathp)
-           *prev_pathp = sv_2mortal(newSVpvn("",0));
+           *prev_pathp = sv_2mortal(newSVpvs(""));
        else if (SvPVX(*prev_pathp))
-           sv_catpvn(*prev_pathp, ";", 1);
+           sv_catpvs(*prev_pathp, ";");
        sv_catpv(*prev_pathp, mod_name);
        if(len)
            *len = SvCUR(*prev_pathp);
@@ -418,7 +418,7 @@ win32_get_xlib(const char *pl, const char *xlib, const char 
*libname,
        sv1 = sv2;
     } else if (sv2) {
         dTHX;
-       sv_catpvn(sv1, ";", 1);
+       sv_catpv(sv1, ";");
        sv_catsv(sv1, sv2);
     }
 
@@ -1785,7 +1785,7 @@ win32_getenv(const char *name)
 
     needlen = GetEnvironmentVariableA(name,NULL,0);
     if (needlen != 0) {
-       curitem = sv_2mortal(newSVpvn("", 0));
+       curitem = sv_2mortal(newSVpvs(""));
         do {
             SvGROW(curitem, needlen+1);
             needlen = GetEnvironmentVariableA(name,SvPVX(curitem),
diff --git a/win32/wince.c b/win32/wince.c
index 63147cc..271df2b 100644
--- a/win32/wince.c
+++ b/win32/wince.c
@@ -146,7 +146,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        if (retval == ERROR_SUCCESS && type == REG_SZ) {
            dTHX;
            if (!*svp)
-               *svp = sv_2mortal(newSVpvn("",0));
+               *svp = sv_2mortal(newSVpvs(""));
            SvGROW(*svp, datalen);
            retval = XCERegQueryValueExA(handle, valuename, 0, NULL,
                                     (PBYTE)SvPVX(*svp), &datalen);
@@ -226,8 +226,8 @@ get_emd_part(SV **prev_pathp, STRLEN *const len, char 
*trailing_path, ...)
        /* directory exists */
        dTHX;
        if (!*prev_pathp)
-           *prev_pathp = sv_2mortal(newSVpvn("",0));
-       sv_catpvn(*prev_pathp, ";", 1);
+           *prev_pathp = sv_2mortal(newSVpvs(""));
+       sv_catpvs(*prev_pathp, ";");
        sv_catpv(*prev_pathp, mod_name);
        if(len)
            *len = SvCUR(*prev_pathp);
@@ -286,7 +286,7 @@ win32_get_xlib(const char *pl, const char *xlib, const char 
*libname,
     if (!sv1) {
        sv1 = sv2;
     } else if (sv2) {
-       sv_catpvn(sv1, ";", 1);
+       sv_catpvs(sv1, ";");
        sv_catsv(sv1, sv2);
     }
 

--
Perl5 Master Repository

Reply via email to