X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FTime.hsc;h=4db1d61efb6cf0ea20239069437759e517943020;hb=9fa9bc17072a58c0bae2cce4764d38677e96ac29;hp=cd264530dc485fb7881af3b75924ba9d22eba633;hpb=8dc47e1c982ae32f799e55266203b260f77aef43;p=ghc-base.git diff --git a/System/Time.hsc b/System/Time.hsc index cd26453..4db1d61 100644 --- a/System/Time.hsc +++ b/System/Time.hsc @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- +-- | -- Module : System.Time -- Copyright : (c) The University of Glasgow 2001 -- License : BSD-style (see the file libraries/core/LICENSE) @@ -8,7 +8,7 @@ -- Stability : provisional -- Portability : portable -- --- $Id: Time.hsc,v 1.8 2002/02/11 12:29:27 simonmar Exp $ +-- $Id: Time.hsc,v 1.12 2002/04/24 16:31:45 simonmar Exp $ -- -- The standard Time library. -- @@ -317,10 +317,11 @@ gmtoff x = (#peek struct tm,tm_gmtoff) x # define tzname _tzname # endif # ifndef mingw32_TARGET_OS -foreign label tzname :: Ptr (Ptr CChar) +foreign import ccall unsafe "&tzname" tzname :: Ptr (Ptr CChar) +foreign import ccall unsafe "timezone" timezone :: Ptr CLong # else -foreign import "ghcTimezone" unsafe timezone :: Ptr CLong -foreign import "ghcTzname" unsafe tzname :: Ptr (Ptr CChar) +foreign import ccall unsafe "__hscore_timezone" timezone :: Ptr CLong +foreign import ccall unsafe "__hscore_tzname" tzname :: Ptr (Ptr CChar) # endif zone x = do dst <- (#peek struct tm,tm_isdst) x @@ -331,13 +332,13 @@ zone x = do # endif /* ! HAVE_TZNAME */ -- Get the offset in secs from UTC, if (struct tm) doesn't supply it. */ -#if defined(mingw32_TARGET_OS) || defined(cygwin32_TARGET_OS) +#if defined(mingw32_TARGET_OS) #define timezone _timezone #endif # if HAVE_ALTZONE -foreign label altzone :: Ptr CTime -foreign label timezone :: Ptr CTime +foreign import ccall "&altzone" :: Ptr CTime +foreign import ccall "&timezone" :: Ptr CTime gmtoff x = do dst <- (#peek struct tm,tm_isdst) x tz <- if dst then peek altzone else peek timezone @@ -617,28 +618,28 @@ formatTimeDiff l fmt td@(TimeDiff year month day hour min sec _) type CTm = () -- struct tm #if HAVE_LOCALTIME_R -foreign import unsafe localtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) +foreign import ccall unsafe localtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) #else -foreign import unsafe localtime :: Ptr CTime -> IO (Ptr CTm) +foreign import ccall unsafe localtime :: Ptr CTime -> IO (Ptr CTm) #endif #if HAVE_GMTIME_R -foreign import unsafe gmtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) +foreign import ccall unsafe gmtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) #else -foreign import unsafe gmtime :: Ptr CTime -> IO (Ptr CTm) +foreign import ccall unsafe gmtime :: Ptr CTime -> IO (Ptr CTm) #endif -foreign import unsafe mktime :: Ptr CTm -> IO CTime -foreign import unsafe time :: Ptr CTime -> IO CTime +foreign import ccall unsafe mktime :: Ptr CTm -> IO CTime +foreign import ccall unsafe time :: Ptr CTime -> IO CTime #if HAVE_GETTIMEOFDAY type CTimeVal = () -foreign import unsafe gettimeofday :: Ptr CTimeVal -> Ptr () -> IO CInt +foreign import ccall unsafe gettimeofday :: Ptr CTimeVal -> Ptr () -> IO CInt #endif #if HAVE_FTIME type CTimeB = () #ifndef mingw32_TARGET_OS -foreign import unsafe ftime :: Ptr CTimeB -> IO CInt +foreign import ccall unsafe ftime :: Ptr CTimeB -> IO CInt #else -foreign import unsafe ftime :: Ptr CTimeB -> IO () +foreign import ccall unsafe ftime :: Ptr CTimeB -> IO () #endif #endif