[project @ 1999-07-08 08:10:52 by simonmar]
authorsimonmar <unknown>
Thu, 8 Jul 1999 08:10:52 +0000 (08:10 +0000)
committersimonmar <unknown>
Thu, 8 Jul 1999 08:10:52 +0000 (08:10 +0000)
Back out rev 1.30 - it broke a lot of things.

ghc/lib/std/PrelHandle.lhs

index 337184f..52d6682 100644 (file)
@@ -242,16 +242,7 @@ stdout = unsafePerformIO (do
            (bm, bf_size)  <- getBMode__ fo
            mkBuffer__ fo bf_size
 #endif
-           hdl <- newHandle (Handle__ fo WriteHandle bm "stdout")
-            -- when stdin and stdout are both connected to a terminal, ensure
-            -- that anything buffered on stdout is flushed prior to reading from stdin.
-            -- 
-           hConnectTerms hdl stdin
-            -- when stderr and stdout are both connected to a terminal, ensure
-            -- that anything buffered on stdout is flushed prior to writing to
-            -- stderr.
-           hConnectTo hdl stderr
-           return hdl
+           newHandle (Handle__ fo WriteHandle bm "stdout")
        _ -> do ioError <- constructError "stdout"
                newHandle (mkErrorHandle__ ioError)
   )
@@ -277,7 +268,12 @@ stdin = unsafePerformIO (do
 #endif
            (bm, bf_size) <- getBMode__ fo
            mkBuffer__ fo bf_size
-           newHandle (Handle__ fo ReadHandle bm "stdin")
+           hdl <- newHandle (Handle__ fo ReadHandle bm "stdin")
+            -- when stdin and stdout are both connected to a terminal, ensure
+            -- that anything buffered on stdout is flushed prior to reading from stdin.
+            -- 
+           hConnectTerms stdout hdl
+           return hdl
        _ -> do ioError <- constructError "stdin"
                newHandle (mkErrorHandle__ ioError)
   )
@@ -302,7 +298,12 @@ stderr = unsafePerformIO (do
             fo <- makeForeignObj fo
            addForeignFinalizer fo (freeStdFileObject fo)
 #endif
-            newHandle (Handle__ fo WriteHandle NoBuffering "stderr")
+            hdl <- newHandle (Handle__ fo WriteHandle NoBuffering "stderr")
+           -- when stderr and stdout are both connected to a terminal, ensure
+           -- that anything buffered on stdout is flushed prior to writing to
+           -- stderr.
+           hConnectTo stdout hdl
+           return hdl
 
        _ -> do ioError <- constructError "stderr"
                newHandle (mkErrorHandle__ ioError)