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