System/Environment.hs System/Exit.hs System/Locale.hs \
System/Directory.hs System/Mem.hs System/Cmd.hs System/Info.hs \
System/Console/GetOpt.hs System/Random.hs \
+ System/CPUTime.hsc System/Time.hsc \
Foreign/Ptr.hs Foreign/StablePtr.hs Foreign/Storable.hs \
Foreign/ForeignPtr.hs Foreign/C/Types.hs \
Foreign/Marshal/Alloc.hs Foreign/Marshal/Array.hs \
# [Data/Dynamic.hs] Data/Generics.hs Data/STRef.hs Data/Unique.hs
# Debug/QuickCheck.hs
-# System/CPUTime.hsc System/Time.hsc
# System/Mem.hs System/Mem/StableName.hs System/Mem/Weak.hs
# System/Posix/Types.hs System/Posix/Signals.hsc
# Text/ParserCombinators/ReadP.hs Text/ParserCombinators/ReadPrec.hs
) where
-#ifndef __HUGS__
+#ifdef __GLASGOW_HASKELL__
#include "HsBase.h"
#endif
+#ifdef __NHC__
+#include <time.h>
+#define HAVE_TM_ZONE 1
+import Ix
+#endif
+
import Prelude
import Data.Ix
cal = toUTCTime (TOD (c_sec + sec_diff) (c_psec + psec))
-- FIXME! ^^^^
new_mon = fromEnum (ctMonth cal) + r_mon
- (month', yr_diff)
+ month' = fst tmp
+ yr_diff = snd tmp
+ tmp
| new_mon < 0 = (toEnum (12 + new_mon), (-1))
| new_mon > 11 = (toEnum (new_mon `mod` 12), 1)
| otherwise = (toEnum new_mon, 0)