summaryrefslogtreecommitdiff
path: root/lib/Tie
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2012-06-21 19:02:28 -0700
committerFather Chrysostomos <sprout@cpan.org>2012-06-22 06:09:04 -0700
commit7762c3748b5616504fc9a8c5dd0c0e078d85eec5 (patch)
tree2b36a6051fe487b5311ec71f5d75da78a673f79e /lib/Tie
parentc033ac4eaec8bbabcbe8d8b4f8bfa5bbd61ca118 (diff)
downloadperl-7762c3748b5616504fc9a8c5dd0c0e078d85eec5.tar.gz
[perl #112826] Make Tie::StdHandle::READ respect offset
Tie::StdHandle::READ was ignoring the optional fourth argument to read(), specifying the offset into the target string.
Diffstat (limited to 'lib/Tie')
-rw-r--r--lib/Tie/Handle/stdhandle.t8
-rw-r--r--lib/Tie/StdHandle.pm2
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/Tie/Handle/stdhandle.t b/lib/Tie/Handle/stdhandle.t
index 13a8255155..b1ae7c455b 100644
--- a/lib/Tie/Handle/stdhandle.t
+++ b/lib/Tie/Handle/stdhandle.t
@@ -10,7 +10,7 @@ tie *tst,Tie::StdHandle;
$f = 'tst';
-print "1..13\n";
+print "1..14\n";
# my $file tests
@@ -42,6 +42,10 @@ print "ok 11\n";
$b = <$f>;
print "not " unless eof($f);
print "ok 12\n";
-print "not " unless close($f);
+seek($f,0,0);
+read($f,($b='scrinches'),4,4); # with offset
+print "'$b' not " unless $b eq 'scriSome';
print "ok 13\n";
+print "not " unless close($f);
+print "ok 14\n";
unlink("afile");
diff --git a/lib/Tie/StdHandle.pm b/lib/Tie/StdHandle.pm
index 42c46b6197..9192b2e5ee 100644
--- a/lib/Tie/StdHandle.pm
+++ b/lib/Tie/StdHandle.pm
@@ -57,7 +57,7 @@ sub OPEN
@_ == 2 ? open($_[0], $_[1]) : open($_[0], $_[1], $_[2]);
}
-sub READ { read($_[0],$_[1],$_[2]) }
+sub READ { &CORE::read(shift, \shift, @_) }
sub READLINE { my $fh = $_[0]; <$fh> }
sub GETC { getc($_[0]) }