X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=time-http.git;a=blobdiff_plain;f=Data%2FTime%2FHTTP%2FCommon.hs;h=e0a899e6c7e801d4dc4f18d601635aaab4dfa272;hp=6cb59b3bc63aaf06b1701c0ba978dc80870d3c4c;hb=82afb594c5b4254385435491700befcbea185a5d;hpb=01d923fe509a76afa27efdc7370438c5d4900492 diff --git a/Data/Time/HTTP/Common.hs b/Data/Time/HTTP/Common.hs index 6cb59b3..e0a899e 100644 --- a/Data/Time/HTTP/Common.hs +++ b/Data/Time/HTTP/Common.hs @@ -18,7 +18,7 @@ module Data.Time.HTTP.Common , read2 , read4 - , showTZ + , show4digitsTZ , read4digitsTZ , assertWeekDayIsGood @@ -26,12 +26,10 @@ module Data.Time.HTTP.Common , assertTimeOfDayIsGood ) where - import Control.Monad import Data.Fixed import Data.Time import Data.Time.Calendar.WeekDate -import Text.Parsec shortWeekDayName :: Int -> String shortWeekDayName 1 = "Mon" @@ -164,13 +162,13 @@ show4 :: Integral i => i -> String show4 i | i >= 0 && i < 10 = "000" ++ show i | i >= 0 && i < 100 = "00" ++ show i - | i >= 0 && i < 1000 = "0" ++ show i + | i >= 0 && i < 1000 = '0' : show i | i >= 0 && i < 10000 = show i | otherwise = error ("show4: the integer i must satisfy 0 <= i < 10000: " ++ show i) show2 :: Integral i => i -> String show2 i - | i >= 0 && i < 10 = "0" ++ show i + | i >= 0 && i < 10 = '0' : show i | i >= 0 && i < 100 = show i | otherwise = error ("show2: the integer i must satisfy 0 <= i < 100: " ++ show i) @@ -202,8 +200,8 @@ fromC '8' = 8 fromC '9' = 9 fromC _ = undefined -showTZ :: TimeZone -> String -showTZ tz +show4digitsTZ :: TimeZone -> String +show4digitsTZ tz = case timeZoneMinutes tz of offset | offset < 0 -> '-' : showTZ' (negate offset) | otherwise -> '+' : showTZ' offset @@ -212,7 +210,7 @@ showTZ tz = let h = offset `div` 60 m = offset - h * 60 in - concat [show2 h, show2 m] + show2 h ++ show2 m read4digitsTZ :: Stream s m Char => ParsecT s u m TimeZone read4digitsTZ @@ -222,7 +220,7 @@ read4digitsTZ hour <- read2 minute <- read2 let tz = TimeZone { - timeZoneMinutes = (sign * (hour * 60 + minute)) + timeZoneMinutes = sign * (hour * 60 + minute) , timeZoneSummerOnly = False , timeZoneName = timeZoneOffsetString tz }