Something went wrong in change #20929;
Jarkko Hietaniemi [Sat, 30 Aug 2003 06:49:31 +0000 (06:49 +0000)]
linux 2.4.18-bf2.4 didn't like it:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-08/msg01992.html
and similar failure pattern also seen in Solaris 8.
p4raw-link: @20929 on //depot/perl: 1403d6bf1ee303dd613942fa2f6df0519a053ba6

p4raw-id: //depot/perl@20950

perlio.c

index 7ee1eda..a508b64 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -2609,7 +2609,7 @@ PerlIOStdio_mode(const char *mode, char *tmode)
     while (*mode) {
        *tmode++ = *mode++;
     }
-#if defined(PERLIO_USING_CRLF) || defined(__CYGWIN__)
+#ifdef PERLIO_USING_CRLF
     *tmode++ = 'b';
 #endif
     *tmode = '\0';
@@ -2710,28 +2710,25 @@ PerlIOStdio_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers,
                fd = PerlLIO_open3(path, imode, perm);
            }
            else {
-                /* Append the 'b' - more correct for CRLF platforms
-                 * and Cygwin and should be harmless (since it's a
-                 * no-op) elsewhere. */
-                mode = PerlIOStdio_mode(mode, tmode);
-                {
-                     FILE *stdio = PerlSIO_fopen(path, mode);
-                     if (stdio) {
-                          PerlIOStdio *s;
-                          if (!f) {
-                               f = PerlIO_allocate(aTHX);
-                          }
-                          if ((f = PerlIO_push(aTHX_ f, self,
-                                               mode, PerlIOArg))) {
-                               s = PerlIOSelf(f, PerlIOStdio);
-                               s->stdio = stdio;
-                               PerlIOUnix_refcnt_inc(fileno(s->stdio));
-                         }
-                         return f;
-                     }
-                }
+               FILE *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))) {
+                       s = PerlIOSelf(f, PerlIOStdio);
+                       s->stdio = stdio;
+                       PerlIOUnix_refcnt_inc(fileno(s->stdio));
+                   }
+                   return f;
+               }
+               else {
+                   return NULL;
+               }
            }
-           return NULL;
        }
        if (fd >= 0) {
            FILE *stdio = NULL;