projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0abdb89
)
[project @ 1997-08-25 22:37:54 by sof]
author
sof
<unknown>
Mon, 25 Aug 1997 22:37:54 +0000
(22:37 +0000)
committer
sof
<unknown>
Mon, 25 Aug 1997 22:37:54 +0000
(22:37 +0000)
Changed to use PackBase
ghc/lib/required/IO.lhs
patch
|
blob
|
history
diff --git
a/ghc/lib/required/IO.lhs
b/ghc/lib/required/IO.lhs
index
cf7d581
..
7af7b1c
100644
(file)
--- a/
ghc/lib/required/IO.lhs
+++ b/
ghc/lib/required/IO.lhs
@@
-38,7
+38,7
@@
import UnsafeST ( unsafePerformPrimIO, unsafeInterleavePrimIO )
import IOBase
import ArrBase ( MutableByteArray(..), newCharArray )
import IOHandle -- much of the real stuff is in here
import IOBase
import ArrBase ( MutableByteArray(..), newCharArray )
import IOHandle -- much of the real stuff is in here
-import PackedString ( nilPS, packCBytesST, unpackPS )
+import PackBase ( unpackNBytesST )
import PrelBase
import GHC
import Foreign ( ForeignObj, Addr, makeForeignObj, writeForeignObj )
import PrelBase
import GHC
import Foreign ( ForeignObj, Addr, makeForeignObj, writeForeignObj )
@@
-118,6
+118,10
@@
instance Eq Handle where
instance Show Handle where {showsPrec p h = showString "<<Handle>>"}
instance Show Handle where {showsPrec p h = showString "<<Handle>>"}
+--Type declared in IOHandle, instance here because it depends on Eq.Handle
+instance Eq HandlePosn where
+ (HandlePosn h1 p1) == (HandlePosn h2 p2) = p1==p2 && h1==h2
+
\end{code}
%*********************************************************
\end{code}
%*********************************************************
@@
-334,8
+338,8
@@
lazyReadBlock handle =
SemiClosedHandle fp (buf, size) ->
_ccall_ readBlock buf fp size >>= \ bytes ->
(if bytes <= 0
SemiClosedHandle fp (buf, size) ->
_ccall_ readBlock buf fp size >>= \ bytes ->
(if bytes <= 0
- then return nilPS
- else packCBytesST bytes buf) >>= \ some ->
+ then return ""
+ else unpackNBytesST buf bytes) >>= \ some ->
if bytes < 0 then
_ccall_ free buf >>= \ () ->
_ccall_ closeFile fp >>
if bytes < 0 then
_ccall_ free buf >>= \ () ->
_ccall_ closeFile fp >>
@@
-345,12
+349,12
@@
lazyReadBlock handle =
#else
ioToST (writeHandle handle (SemiClosedHandle ``NULL'' (``NULL'', 0))) >>
#endif
#else
ioToST (writeHandle handle (SemiClosedHandle ``NULL'' (``NULL'', 0))) >>
#endif
- returnPrimIO (unpackPS some)
+ returnPrimIO some
else
ioToST (writeHandle handle htype) >>
unsafeInterleavePrimIO (lazyReadBlock handle)
>>= \ more ->
else
ioToST (writeHandle handle htype) >>
unsafeInterleavePrimIO (lazyReadBlock handle)
>>= \ more ->
- returnPrimIO (unpackPS some ++ more)
+ returnPrimIO (some ++ more)
lazyReadLine handle =
ioToST (readHandle handle) >>= \ htype ->
lazyReadLine handle =
ioToST (readHandle handle) >>= \ htype ->
@@
-362,8
+366,8
@@
lazyReadLine handle =
SemiClosedHandle fp (buf, size) ->
_ccall_ readLine buf fp size >>= \ bytes ->
(if bytes <= 0
SemiClosedHandle fp (buf, size) ->
_ccall_ readLine buf fp size >>= \ bytes ->
(if bytes <= 0
- then return nilPS
- else packCBytesST bytes buf) >>= \ some ->
+ then return ""
+ else unpackNBytesST buf bytes) >>= \ some ->
if bytes < 0 then
_ccall_ free buf >>= \ () ->
_ccall_ closeFile fp >>
if bytes < 0 then
_ccall_ free buf >>= \ () ->
_ccall_ closeFile fp >>
@@
-373,12
+377,12
@@
lazyReadLine handle =
#else
ioToST (writeHandle handle (SemiClosedHandle ``NULL'' (``NULL'', 0))) >>
#endif
#else
ioToST (writeHandle handle (SemiClosedHandle ``NULL'' (``NULL'', 0))) >>
#endif
- returnPrimIO (unpackPS some)
+ return some
else
ioToST (writeHandle handle htype) >>
unsafeInterleavePrimIO (lazyReadLine handle)
>>= \ more ->
else
ioToST (writeHandle handle htype) >>
unsafeInterleavePrimIO (lazyReadLine handle)
>>= \ more ->
- returnPrimIO (unpackPS some ++ more)
+ return (some ++ more)
lazyReadChar handle =
ioToST (readHandle handle) >>= \ htype ->
lazyReadChar handle =
ioToST (readHandle handle) >>= \ htype ->