Fix sysread() on tied handle
authorSpider Boardman <spider@orb.nashua.nh.us>
Thu, 1 May 1997 06:01:20 +0000 (02:01 -0400)
committerChip Salzenberg <chip@atlantic.net>
Wed, 30 Apr 1997 12:00:00 +0000 (00:00 +1200)
Found in both perldelta.pod and perltie.pod:

: =item READ this LIST
:
: This method will be called when the handle is read from via the C<read>
: or C<sysread> functions.

This isn't true without the following patch:

p5p-msgid: 199705010601.CAA04926@Orb.Nashua.NH.US

pp_sys.c

index a03d9a4..ef769a5 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1195,7 +1195,7 @@ PP(pp_sysread)
     MAGIC *mg;
 
     gv = (GV*)*++MARK;
-    if (op->op_type == OP_READ &&
+    if ((op->op_type == OP_READ || op->op_type == OP_SYSREAD) &&
        SvMAGICAL(gv) && (mg = mg_find((SV*)gv, 'q')))
     {
        SV *sv;