import Foreign ( Addr )
import IOBase ( IOError(..), IOErrorType(..), thenIO_Prim, constructErrorAndFail )
import ArrBase ( indexAddrOffAddr )
-import PackedString ( unpackCString )
+import PackBase ( unpackCString )
\end{code}
import UnsafeST ( unsafePerformPrimIO )
import ST
import Ix
-import Foreign( Addr(..) )
-import Char (intToDigit)
-import PackedString (unpackPS, packCBytesST)
+import Foreign ( Addr(..) )
+import Char ( intToDigit )
+import PackBase ( unpackCString )
import Locale
\end{code}
allocChars 32 >>= \ buf ->
_ccall_ showTime (I# s#) (ByteArray bottom d#) buf
>>= \ str ->
- _ccall_ strlen str >>= \ len ->
- packCBytesST len str >>= \ ps ->
- return (unpackPS ps)
+ return (unpackCString str)
showList = showList__ (showsPrec 0)
\end{code}
_casm_ ``%r = ((struct tm *)%0)->tm_isdst;'' tm >>= \ isdst ->
_ccall_ ZONE tm >>= \ zone ->
_ccall_ GMTOFF tm >>= \ tz ->
- _ccall_ strlen zone >>= \ len ->
- packCBytesST len zone >>= \ tzname ->
+ let
+ tzname = unpackCString zone
+ in
returnPrimIO (CalendarTime (1900+year) mon mday hour min sec psec
- (toEnum wday) yday (unpackPS tzname) tz (isdst /= 0))
+ (toEnum wday) yday tzname tz (isdst /= 0))
toUTCTime :: ClockTime -> CalendarTime
toUTCTime (TOD sec@(J# a# s# d#) psec) = unsafePerformPrimIO (