From: chromatic Date: Tue, 25 Sep 2001 23:57:07 +0000 (-0600) Subject: Re: binmode(STDOUT, ":unix") busted when STDOUT is piped. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=89aec743e18bc6ebc8fe067d7c780485893d0a8c;p=p5sagit%2Fp5-mst-13.2.git Re: binmode(STDOUT, ":unix") busted when STDOUT is piped. Message-ID: <20010926060233.7554.qmail@onion.perl.org> p4raw-id: //depot/perl@12236 --- diff --git a/perlio.c b/perlio.c index d05bf3c..eb32a04 100644 --- a/perlio.c +++ b/perlio.c @@ -945,15 +945,16 @@ PerlIO_binmode(pTHX_ PerlIO *f, int iotype, int mode, const char *names) PerlIO_debug("PerlIO_binmode f=%p %s %c %x %s\n", f, PerlIOBase(f)->tab->name, iotype, mode, (names) ? names : "(Null)"); + PerlIO_flush(f); if (!names && (O_TEXT != O_BINARY && (mode & O_BINARY))) { PerlIO *top = f; while (*top) { if (PerlIOBase(top)->tab == &PerlIO_crlf) { - PerlIO_flush(top); PerlIOBase(top)->flags &= ~PERLIO_F_CRLF; break; } top = PerlIONext(top); + PerlIO_flush(top); } } return PerlIO_apply_layers(aTHX_ f, NULL, names) == 0 ? TRUE : FALSE;