# endif /* ! HAVE_TZNAME */
-- Get the offset in secs from UTC, if (struct tm) doesn't supply it. */
-# if HAVE_ALTZONE
+# if HAVE_DECL_ALTZONE
foreign import ccall "&altzone" altzone :: Ptr CTime
foreign import ccall "&timezone" timezone :: Ptr CTime
gmtoff x = do
dst <- (#peek struct tm,tm_isdst) x
tz <- if dst then peek altzone else peek timezone
return (-fromIntegral tz)
-# else /* ! HAVE_ALTZONE */
+# else /* ! HAVE_DECL_ALTZONE */
#if !defined(mingw32_TARGET_OS)
foreign import ccall unsafe "timezone" timezone :: Ptr CLong
-- This module assumes the interpretation of tm_gmtoff, i.e., offsets
-- are > 0 East of the Prime Meridian, so flip the sign.
return (- (if dst then (fromIntegral tz - 3600) else tz))
-# endif /* ! HAVE_ALTZONE */
+# endif /* ! HAVE_DECL_ALTZONE */
#endif /* ! HAVE_TM_ZONE */
#endif /* ! __HUGS__ */
clockToCalendarTime_static :: (Ptr CTime -> IO (Ptr CTm)) -> Bool -> ClockTime
-> IO CalendarTime
clockToCalendarTime_static fun is_utc (TOD secs psec) = do
- withObject (fromIntegral secs :: CTime) $ \ p_timer -> do
+ with (fromIntegral secs :: CTime) $ \ p_timer -> do
p_tm <- fun p_timer -- can't fail, according to POSIX
clockToCalendarTime_aux is_utc p_tm psec
clockToCalendarTime_reentrant :: (Ptr CTime -> Ptr CTm -> IO ()) -> Bool -> ClockTime
-> IO CalendarTime
clockToCalendarTime_reentrant fun is_utc (TOD secs psec) = do
- withObject (fromIntegral secs :: CTime) $ \ p_timer -> do
+ with (fromIntegral secs :: CTime) $ \ p_timer -> do
allocaBytes (#const sizeof(struct tm)) $ \ p_tm -> do
fun p_timer p_tm
clockToCalendarTime_aux is_utc p_tm psec
toClockTime :: CalendarTime -> ClockTime
#ifdef __HUGS__
toClockTime (CalendarTime yr mon mday hour min sec psec
- _wday _yday _tzname tz isdst) =
+ _wday _yday _tzname tz _isdst) =
unsafePerformIO $ do
- s <- toClockTimePrim (yr-1900) (fromEnum mon) mday
- hour min sec
- tz (if isdst then 1 else 0)
+ s <- toClockTimePrim (yr-1900) (fromEnum mon) mday hour min sec tz
return (TOD (fromIntegral s) psec)
#else /* ! __HUGS__ */
toClockTime (CalendarTime year mon mday hour min sec psec