summaryrefslogtreecommitdiff
path: root/ext/PerlIO-encoding
Commit message (Collapse)AuthorAgeFilesLines
* ext/PerlIO-encoding/t/encoding.t: Skip on EBCDICKarl Williamson2015-03-141-0/+4
| | | | encoding doesn't current work.
* PerlIO-encoding/t/nolooping.t: Skip on EBCDIC platformKarl Williamson2015-03-141-4/+5
|
* PerlIO-encoding/t/encoding.t: Generalize for non-ASCII platformKarl Williamson2015-03-051-7/+4
|
* const a PERLIO vtable in PerlIO::encodingDaniel Dragan2015-01-052-3/+3
| | | | | This makes PerlIO::encoding's shared library free of any perl caused RW static data.
* PerlIO::encoding:fallback.t: properly skip testsKarl Williamson2014-12-111-1/+2
| | | | | My moving the 'use Test::More' outside of the BEGIN block, I don't get the 'duplicate leader seen' error.
* PerlIO::encoding:fallback.t: White-space onlyKarl Williamson2014-11-261-1/+1
|
* PerlIO::encoding:fallback.t: Don't use undefined subKarl Williamson2014-11-261-1/+4
| | | | skip_all isn't defined under Test::More.
* Increase $PerlIO::encoding::VERSION to 0.20Father Chrysostomos2014-11-021-1/+1
|
* Record errno value in IO handlesFather Chrysostomos2014-11-021-0/+3
|
* bump $VERSION for PerlIO-encoding, PerlIO-mmap, PerlIO-scalar, OS2-ProcessTony Cook2014-06-121-1/+1
|
* Change newSVpvn("…", …) to newSVpvs("…")Dagfinn Ilmari Mannsåker2014-06-121-1/+1
| | | | | The dual-life dists affected use Devel::PPPort, so can safely use newSVpvs() even though it wasn't added until Perl v5.8.9.
* Purge sfio support, which has been broken for a decade.Nicholas Clark2013-12-272-2/+2
| | | | | | | | | | | The last Perl release that built with -Dusesfio was v5.8.0, and even that failed many regression tests. Every subsequent release fails to build, and in the decade that has passed we have had no bug reports about this. So it's safe to delete all the code. The Configure related code will be purged in a subsequent commit. 2 references to sfio intentionally remain in fakesdio.h and nostdio.h, as these appear to be for using its stdio API-compatibility layer.
* No need to wrap calls to Perl_load_module() in ENTER/LEAVENicholas Clark2013-11-221-2/+0
| | | | | | As of commit 53a7735b62aee146 (May 2007) Perl_vload_module() wraps its call to Perl_utilize() with ENTER/LEAVE, so there's no longer a need for callers of Perl_load_module() to also wrap with ENTER/LEAVE.
* Perl_load_module() no longer moves the current stack, so no need to save it.Nicholas Clark2013-11-221-3/+1
|
* Remove redundant SPAGAIN & PUTBACK after PUSHSTACKi().Nicholas Clark2013-11-222-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PUSHSTACKi() calls SWITCHSTACK(), which sets PL_stack_sp and sp like this: sp = PL_stack_sp = PL_stack_base + AvFILLp(t) Hence after PUSHSTACKi() both are identical, so use of SPAGAIN or PUTBACK to assign one to the other is redundant. The use of SPAGAIN in encoding.xs and via.xs was added with commit 24f59afc531955e5 (April 2002) which added the use of PUSHSTACKi(). It feels like cargo-cult. The use of PUTBACK in Perl_amagic_call() predates the introduction of nested stacks and PUSHSTACKi() in commit e336de0d01f30cc4 (April 1998). It dates from perl 5.000, but it's not clear that it was ever needed, as the code in question looked like this, and nothing could have moved the stack between the dSP and PUTBACK: dSP; BINOP myop; SV* res; Zero(&myop, 1, BINOP); myop.op_last = (OP *) &myop; myop.op_next = Nullop; myop.op_flags = OPf_KNOW|OPf_STACKED; ENTER; SAVESPTR(op); op = (OP *) &myop; PUTBACK; The PUTBACK and SPAGAIN in Perl_require_pv() were added by commit d3acc0f7e5197310 (June 1998) which also added the PUSHSTACKi(). They have both been redundant since they were added.
* Remove some IGNORABLE files from ext/ and lib/Steve Hay2013-10-181-4/+0
| | | | | | | | | | | There is surely no point in having any of these modules' MANIFEST files in the core distribution, but other IGNORABLE files should generally stay in ext/ and lib/ in case they ever get dual-lived (and likewise for modules in dist/, which are already dual-lived and some of which include even MANIFEST files, presumably used to roll CPAN releases from). However, XS-APItest's README file and DBM_Filter's Changes file offer nothing useful, so remove them.
* encoding.t: Skip 2 tests under debuggingFather Chrysostomos2012-12-041-0/+10
|
* Make PerlIO::encoding handle cowsFather Chrysostomos2012-10-152-1/+32
| | | | | | | | | | Commits 667763bdbf and e9a8753af fixed bugs involving buffer realloca- tions during encode and decode. But what was not taken into account was that the COW flags could still be left on even when buffer real- ocations were accounted for. This could result in SvPV_set and SvLEN_set(sv,0) being called on an SV with the COW flags still on, so SvPVX would be treated as a key inside a shared_he, resulting in assertion failures.
* Make PerlIO::encoding even more resilient to moving buffersFather Chrysostomos2012-10-152-6/+13
| | | | | | | | | | | | Commit 667763bdbf was not good enough. If the buffer passed to an encode method is reallocated, it may be smaller than the size (bufsiz) stored inside the encoding layer. So we need to extend the buffer in that case and make sure the buffer pointer is not pointing to freed memory. The test as modified by this commit causes malloc errors on stderr when I try it without the encoding.xs changes.
* Increase $PerlIO::encoding::VERSION to 0.16Father Chrysostomos2012-10-051-1/+1
|
* Make PerlIO::encoding more resilient to buffer changesFather Chrysostomos2012-10-052-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I was trying to figure out why Encode’s perlio.t was sometimes failing under PERL_OLD_COPY_ON_WRITE (depending on the number of comments in the source code, or metereological conditions). I noticed that PerlIO::encoding assumes that the buffer passed to the encode method will come back SvPOKp. (It accesses SvCUR without checking any flags.) That means it can come back as a typeglob, reference, or undefined, and PerlIO::encoding won’t care. This can result in crashes. Assign- ing $_[1] = *foo inside an encode method is not a smart thing to do, but it shouldn’t crash. PerlIO::encoding was also assuming that SvPVX would not change between calls to encode. It is very easy to reallocate it. This means the internal buffer used by the encoding layer (which is owned by the SV buffer passed to the encode method) can be freed and still subse- quently written too, which is not good. This commit makes PerlIO::encoding force stringification of the value returned. If it does not match its internal buffer pointers, it resets them based on the buffer SV. This probably makes Encode pass its tests under PERL_OLD_COPY_ON_WRITE, but I have yet to confirm it. Encoding mod- ules are expected to write to the buffer ($_[1] = '') in certain cases. If COW is enabled, that would cause the buffer’s SvPVX to point to the same string as the rhs, which would explain why the lack of accounting for SvPVX changes caused test failures under PERL_OLD_COPY_ON_WRITE.
* Bump the version of PerlIO::encoding following 1c2e8ccaafb0b2b1.Nicholas Clark2011-05-201-1/+1
| | | | 1c2e8ccaafb0b2b1 fixed a typo in a comment in the XS code.
* [perl #90306] Fix simple typosMarcel Grünauer2011-05-191-2/+2
|
* Convert ext/PerlIO-encoding/t/encoding.t to Test::More.Nicholas Clark2010-12-171-75/+35
|
* Version bumps for modules changed by a6d37805ca8a9ba8 ($Id$ removal).Nicholas Clark2010-12-161-1/+1
|
* Remove "dead" RCS $Id$ tags from files that we own.Nicholas Clark2010-12-161-4/+0
| | | | | All files have been modified more recently than their tag, rendering information in the tag redundant.
* fix various compiler warnings from XS codeZefram2010-12-111-0/+2
| | | | | | | | | | | Trivial changes to fix warnings of types * unclear precedence * assignment as conditional * signed/unsigned mixing * unused parameter/variable * value computed not used * wrong argument type for a printf format * variable may be used uninitialised (due to unhandled switch case)
* Convert modules in ext/ to pass minimal arguments to XSLoader::load().Nicholas Clark2010-10-141-3/+3
|
* Convert Fcntl and PerlIO::encoding's tests to Test::More.Nicholas Clark2010-06-301-3/+1
| | | | Remove one vestigial mention of MacOS.
* Bump version of PerlIO::encodingRafael Garcia-Suarez2010-01-151-1/+1
|
* The warnings emitted by PerlIO::encoding should be silenceable.Rafael Garcia-Suarez2010-01-151-5/+8
| | | | Make them mandatory warnings.
* This test was incorrectly skipped because it couldn't locate Encode anymoreRafael Garcia-Suarez2009-09-131-5/+0
|
* Make extensions in ext run their tests from the extension's own directory.Nicholas Clark2009-08-281-3/+1
| | | | | | | | | | | Inspired by, and in parts borrows from, Schwern's branch on github, but takes a slightly different approach in places. Not quite perfect yet - ext/File-Glob still runs from t, at least one FIXME needs fixing, and the changes to dual-life modules' tests need to be filtered back upstream, and possibly modified to suit their respective authors. But it works.
* make_ext.pl's automatic Makefile.PL generation can write these five for us.Nicholas Clark2009-03-261-7/+0
|
* Rename ext/PerlIO/encoding to ext/PerlIO-encodingNicholas Clark2009-02-097-0/+1011