[commit: packages/time] master: Allow a colon between the hours and minutes when parsing with %z and %Z. (e6e4837)

git at git.haskell.org git at git.haskell.org
Fri Jan 23 22:58:39 UTC 2015


Repository : ssh://git@git.haskell.org/time

On branch  : master
Link       : http://git.haskell.org/packages/time.git/commitdiff/e6e4837310610731a112dced280b3a14e9fe9e8b

>---------------------------------------------------------------

commit e6e4837310610731a112dced280b3a14e9fe9e8b
Author: bjorn <bjorn at bringert.net>
Date:   Tue Oct 16 12:52:39 2007 -0700

    Allow a colon between the hours and minutes when parsing with %z and %Z.
    
    darcs-hash:20071016195239-6cdb2-17cf31be16d40e755740f2d3d264094be8e344a3


>---------------------------------------------------------------

e6e4837310610731a112dced280b3a14e9fe9e8b
 Data/Time/Format/Parse.hs | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/Data/Time/Format/Parse.hs b/Data/Time/Format/Parse.hs
index bee16e8..7e4c319 100644
--- a/Data/Time/Format/Parse.hs
+++ b/Data/Time/Format/Parse.hs
@@ -110,9 +110,9 @@ parseInput l = liftM catMaybes . mapM p
 parseValue :: TimeLocale -> Char -> ReadP String
 parseValue l c = 
     case c of
-      'z' -> liftM2 (:) (choice [char '+', char '-']) (digits 4)
+      'z' -> numericTZ
       'Z' -> munch1 isUpper <++
-             liftM2 (:) (choice [char '+', char '-']) (digits 4) <++
+             numericTZ <++
              return "" -- produced by %Z for LocalTime
       'P' -> oneOf (let (am,pm) = amPm l 
                      in [map toLower am, map toLower pm])
@@ -154,8 +154,11 @@ parseValue l c =
     upTo :: Int -> ReadP a -> ReadP [a]
     upTo 0 _ = return []
     upTo n x = liftM2 (:) x (upTo (n-1) x) <++ return []
-
-
+    numericTZ = do s <- choice [char '+', char '-']
+                   h <- digits 2
+                   optional (char ':')
+                   m <- digits 2
+                   return (s:h++m)
 
 --
 -- * Instances for the time package types



More information about the ghc-commits mailing list