Change 20954 by [EMAIL PROTECTED] on 2003/08/30 17:14:19
A new try at
Subject: [PATCH] maint / blead tweaks in perlio.c for Cygwin
From: "Gerrit P. Haase" <[EMAIL PROTECTED]>
Date: Thu, 28 Aug 2003 08:18:51 +0200
Message-ID: <[EMAIL PROTECTED]>
(this time Cygwin only)
Affected files ...
... //depot/perl/perlio.c#237 edit
Differences ...
==== //depot/perl/perlio.c#237 (text) ====
Index: perl/perlio.c
--- perl/perlio.c#236~20950~ Fri Aug 29 23:49:31 2003
+++ perl/perlio.c Sat Aug 30 10:14:19 2003
@@ -2609,7 +2609,7 @@
while (*mode) {
*tmode++ = *mode++;
}
-#ifdef PERLIO_USING_CRLF
+#if defined(PERLIO_USING_CRLF) || defined(__CYGWIN__)
*tmode++ = 'b';
#endif
*tmode = '\0';
@@ -2710,15 +2710,23 @@
fd = PerlLIO_open3(path, imode, perm);
}
else {
- FILE *stdio = PerlSIO_fopen(path, mode);
+ FILE *stdio;
+ bool appended = FALSE;
+#ifdef __CYGWIN__
+ /* Cygwin wants its 'b' early. */
+ appended = TRUE;
+ mode = PerlIOStdio_mode(mode, tmode);
+#endif
+ stdio = PerlSIO_fopen(path, mode);
if (stdio) {
PerlIOStdio *s;
if (!f) {
f = PerlIO_allocate(aTHX);
}
- if ((f = PerlIO_push(aTHX_ f, self,
- (mode = PerlIOStdio_mode(mode, tmode)),
- PerlIOArg))) {
+ if (!appended)
+ mode = PerlIOStdio_mode(mode, tmode);
+ f = PerlIO_push(aTHX_ f, self, mode, PerlIOArg);
+ if (f) {
s = PerlIOSelf(f, PerlIOStdio);
s->stdio = stdio;
PerlIOUnix_refcnt_inc(fileno(s->stdio));
End of Patch.