Multiple consecutive writes on PerlIO::Scalar
Benjamin Sugars [Tue, 1 May 2001 14:58:24 +0000 (10:58 -0400)]
Message-ID: <Pine.LNX.4.21.0105011431300.1526-100000@marmot.rim.canoe.ca>

p4raw-id: //depot/perl@9931

ext/PerlIO/Scalar/Scalar.xs
t/lib/io_scalar.t

index 8674615..1d12adf 100644 (file)
@@ -108,7 +108,7 @@ PerlIOScalar_unread(PerlIO *f, const void *vbuf, Size_t count)
  dTHX;
  PerlIOScalar *s = PerlIOSelf(f,PerlIOScalar);
  char *dst = SvGROW(s->var,s->posn+count);
- Move(vbuf,dst,count,char);
+ Move(vbuf,dst+s->posn,count,char);
  s->posn += count;
  SvCUR_set(s->var,s->posn);
  SvPOK_on(s->var);
index 3679550..83716c6 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 }
 
 $| = 1;
-print "1..9\n";
+print "1..10\n";
 
 my $fh;
 my $var = "ok 2\n";
@@ -32,4 +32,10 @@ print "not " if eof($fh);
 print "ok 8\n";
 print "not " unless <$fh> eq "foo\n";
 print "ok 9\n";
-
+# Test multiple consecutive writes to $var
+$var = "";
+seek($fh, 0, 0);
+print $fh "Fred and Wilma ";
+print $fh "Flintstone";
+print "not " unless $var eq "Fred and Wilma Flintstone";
+print "ok 10\n";