fix for C<$/ = 42> setting paragraph mode (applied with small
M. J. T. Guy [Wed, 9 Jun 1999 18:27:51 +0000 (19:27 +0100)]
tweak)
Message-Id: <E10rm8l-00023T-00@ursa.cus.cam.ac.uk>
Subject: Re: [ID 19990608.002] Possible bug with binmode and <FH> on Perl 5.005_03 Win32

p4raw-id: //depot/perl@3610

perl.h
t/base/rs.t

diff --git a/perl.h b/perl.h
index b09660a..9def948 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2379,8 +2379,8 @@ enum {            /* pass one of these to get_vtbl */
 
 /* Various states of an input record separator SV (rs, nrs) */
 #define RsSNARF(sv)   (! SvOK(sv))
-#define RsSIMPLE(sv)  (SvOK(sv) && SvCUR(sv))
-#define RsPARA(sv)    (SvOK(sv) && ! SvCUR(sv))
+#define RsSIMPLE(sv)  (SvOK(sv) && (! SvPOK(sv) || SvCUR(sv)))
+#define RsPARA(sv)    (SvPOK(sv) && ! SvCUR(sv))
 #define RsRECORD(sv)  (SvROK(sv) && (SvIV(SvRV(sv)) > 0))
 
 /* Enable variables which are pointers to functions */
index 52a9572..07cc8fd 100755 (executable)
@@ -24,7 +24,7 @@ $bar = <TESTFILE>;
 if ($bar eq "12\n") {print "ok 2\n";} else {print "not ok 2\n";}
 
 # Try a non line terminator
-$/ = "3";
+$/ = 3;
 $bar = <TESTFILE>;
 if ($bar eq "123") {print "ok 3\n";} else {print "not ok 3\n";}