|
|
4dad76 |
From a4e94e39cfa6852b1d57e61ee122c8083ab9d82e Mon Sep 17 00:00:00 2001
|
|
|
4dad76 |
From: Hauke D <haukex@zero-g.net>
|
|
|
4dad76 |
Date: Mon, 20 Nov 2017 15:31:57 +0100
|
|
|
4dad76 |
Subject: [PATCH] Tie::StdHandle::BINMODE: handle layer argument
|
|
|
4dad76 |
MIME-Version: 1.0
|
|
|
4dad76 |
Content-Type: text/plain; charset=UTF-8
|
|
|
4dad76 |
Content-Transfer-Encoding: 8bit
|
|
|
4dad76 |
|
|
|
4dad76 |
Fixes #16262
|
|
|
4dad76 |
|
|
|
4dad76 |
BINMODE was not handling the LAYER argument.
|
|
|
4dad76 |
Also bump the version number.
|
|
|
4dad76 |
|
|
|
4dad76 |
(cherry picked from commit 479d04b98e5b747e5c9ead7368d3e132f524a2b7)
|
|
|
4dad76 |
Signed-off-by: Nicolas R <atoomic@cpan.org>
|
|
|
4dad76 |
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
|
4dad76 |
---
|
|
|
4dad76 |
lib/Tie/Handle/stdhandle.t | 13 ++++++++++++-
|
|
|
4dad76 |
lib/Tie/StdHandle.pm | 4 ++--
|
|
|
4dad76 |
2 files changed, 14 insertions(+), 3 deletions(-)
|
|
|
4dad76 |
|
|
|
4dad76 |
diff --git a/lib/Tie/Handle/stdhandle.t b/lib/Tie/Handle/stdhandle.t
|
|
|
4dad76 |
index d2f04bcc5c..6c20d90f2b 100644
|
|
|
4dad76 |
--- a/lib/Tie/Handle/stdhandle.t
|
|
|
4dad76 |
+++ b/lib/Tie/Handle/stdhandle.t
|
|
|
4dad76 |
@@ -5,7 +5,7 @@ BEGIN {
|
|
|
4dad76 |
@INC = '../lib';
|
|
|
4dad76 |
}
|
|
|
4dad76 |
|
|
|
4dad76 |
-use Test::More tests => 27;
|
|
|
4dad76 |
+use Test::More tests => 29;
|
|
|
4dad76 |
|
|
|
4dad76 |
use_ok('Tie::StdHandle');
|
|
|
4dad76 |
|
|
|
4dad76 |
@@ -72,6 +72,17 @@ is($b, "rhubarbX\n", "b eq rhubarbX");
|
|
|
4dad76 |
$b = <$f>;
|
|
|
4dad76 |
is($b, "89\n", "b eq 89");
|
|
|
4dad76 |
|
|
|
4dad76 |
+# binmode should pass through layer argument
|
|
|
4dad76 |
+
|
|
|
4dad76 |
+binmode $f, ':raw';
|
|
|
4dad76 |
+ok !grep( $_ eq 'utf8', PerlIO::get_layers(tied(*$f)) ),
|
|
|
4dad76 |
+ 'no utf8 in layers after binmode :raw';
|
|
|
4dad76 |
+binmode $f, ':utf8';
|
|
|
4dad76 |
+ok grep( $_ eq 'utf8', PerlIO::get_layers(tied(*$f)) ),
|
|
|
4dad76 |
+ 'utf8 is in layers after binmode :utf8';
|
|
|
4dad76 |
+
|
|
|
4dad76 |
+# finish up
|
|
|
4dad76 |
+
|
|
|
4dad76 |
ok(eof($f), "eof");
|
|
|
4dad76 |
ok(close($f), "close");
|
|
|
4dad76 |
|
|
|
4dad76 |
diff --git a/lib/Tie/StdHandle.pm b/lib/Tie/StdHandle.pm
|
|
|
4dad76 |
index dfb86634f0..fb79a986c6 100644
|
|
|
4dad76 |
--- a/lib/Tie/StdHandle.pm
|
|
|
4dad76 |
+++ b/lib/Tie/StdHandle.pm
|
|
|
4dad76 |
@@ -4,7 +4,7 @@ use strict;
|
|
|
4dad76 |
|
|
|
4dad76 |
use Tie::Handle;
|
|
|
4dad76 |
our @ISA = 'Tie::Handle';
|
|
|
4dad76 |
-our $VERSION = '4.5';
|
|
|
4dad76 |
+our $VERSION = '4.6';
|
|
|
4dad76 |
|
|
|
4dad76 |
=head1 NAME
|
|
|
4dad76 |
|
|
|
4dad76 |
@@ -48,7 +48,7 @@ sub TELL { tell($_[0]) }
|
|
|
4dad76 |
sub FILENO { fileno($_[0]) }
|
|
|
4dad76 |
sub SEEK { seek($_[0],$_[1],$_[2]) }
|
|
|
4dad76 |
sub CLOSE { close($_[0]) }
|
|
|
4dad76 |
-sub BINMODE { binmode($_[0]) }
|
|
|
4dad76 |
+sub BINMODE { &CORE::binmode(shift, @_) }
|
|
|
4dad76 |
|
|
|
4dad76 |
sub OPEN
|
|
|
4dad76 |
{
|
|
|
4dad76 |
--
|
|
|
4dad76 |
2.21.0
|
|
|
4dad76 |
|