Allow appending on a PerlIO::Scalar
Benjamin Sugars [Tue, 1 May 2001 16:32:03 +0000 (12:32 -0400)]
Message-ID: <Pine.LNX.4.21.0105011627110.1526-100000@marmot.rim.canoe.ca>

p4raw-id: //depot/perl@9939

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

index 1d12adf..f22193e 100644 (file)
@@ -38,7 +38,10 @@ PerlIOScalar_pushed(PerlIO *f, const char *mode, SV *arg)
    s->var = newSVpvn("",0);
   }
  sv_upgrade(s->var,SVt_PV);
- s->posn = 0;
+ if (strnEQ(mode,"a",1))
+   s->posn = SvCUR(SvRV(arg));
+ else
+   s->posn = 0;
  return PerlIOBase_pushed(f,mode,Nullsv);
 }
 
index 83716c6..928355e 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 }
 
 $| = 1;
-print "1..10\n";
+print "1..11\n";
 
 my $fh;
 my $var = "ok 2\n";
@@ -39,3 +39,10 @@ print $fh "Fred and Wilma ";
 print $fh "Flintstone";
 print "not " unless $var eq "Fred and Wilma Flintstone";
 print "ok 10\n";
+# Test appending
+close $fh;
+$var = "Fred and Wilma ";
+open $fh, ">>", \$var;
+print $fh "Flintstone";
+print "not " unless $var eq "Fred and Wilma Flintstone";
+print "ok 11\n";