diff options
author | Jan Dubois <jand@activestate.com> | 2011-03-16 17:45:29 -0700 |
---|---|---|
committer | Jan Dubois <jand@activestate.com> | 2011-03-16 17:59:44 -0700 |
commit | 270ca148cf26bc57d0c23f0208157e1323cd660b (patch) | |
tree | 1be645414766ca1743dd24a55874436a60a55d0c /MANIFEST | |
parent | 6241f69ed4d47a277df162e594581e52c94f541e (diff) | |
download | perl-270ca148cf26bc57d0c23f0208157e1323cd660b.tar.gz |
Read Perl code on Windows in text mode by default.
We used to read Perl code in binary mode to make life easier for
ByteLoder to include binary data in a source file. To maintain the
illusion of text mode for the DATA handle the filehandle was
transformed from binary mode to text mode when the parser reached the
__END__ or __DATA__ tokens.
This however never worked correctly, as the positions returned by
tell(DATA) were still based on reading part of the stream in binary
mode. And even worse, flushing all filehandles before calling
system(), backticks, or fork() would actually reposition the DATA
filehandle incorrectly, so future reads from it returned the wrong
data.
http://rt.perl.org/rt3/Ticket/Display.html?id=28106 contains several
bug reports that are all related to this problem. The new t/io/data.t
file contains the failing code samples from those bugs.
This patch changes the default build option for Windows to text mode.
ByteLoader will have to deal with this internally, e.g. by rewinding
DATA and switching to binary mode itself.
Diffstat (limited to 'MANIFEST')
-rw-r--r-- | MANIFEST | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -4682,6 +4682,7 @@ t/io/argv.t See if ARGV stuff works t/io/binmode.t See if binmode() works t/io/crlf.t See if :crlf works t/io/crlf_through.t See if pipe passes data intact with :crlf +t/io/data.t See if DATA works t/io/defout.t See if PL_defoutgv works t/io/dup.t See if >& works right t/io/eintr.t See if code called during EINTR is safe |