aboutsummaryrefslogtreecommitdiff
path: root/Key.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-03-15 18:15:44 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-03-15 18:21:39 -0400
commit940c4e361dd5149d52c773a0e020150d1b5fed56 (patch)
tree3f48d71fead4e956cc98a0471ef8bc59f830fa6e /Key.hs
parentfe09c2b7231485afced594cd27582bc6bd32f250 (diff)
cleanup
Diffstat (limited to 'Key.hs')
-rw-r--r--Key.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/Key.hs b/Key.hs
index cc4effb11..cc089104e 100644
--- a/Key.hs
+++ b/Key.hs
@@ -60,19 +60,19 @@ instance Show Key where
field f = error $ "unknown key field" ++ show f
instance Read Key where
- readsPrec _ s = [(Key (meta s []), "")]
+ readsPrec _ s = [(Key (findfields s []), "")]
where
- meta (c:r) m = findfield c r m
- meta [] m = m
-
- findfield 'n' v m = (KeyName, v):m -- rest is name
- findfield c v m = let (v', _:r) = span (/= fieldSep) v in
- meta r (field c v' m)
+ findfields ('n':v) m = (KeyName, v):m -- rest is name
+ findfields (c:v) m =
+ case span (/= fieldSep) v of
+ (v', _:r) -> findfields r (field c v' m)
+ _ -> m
+ findfields [] m = m
field 'b' v m = (KeyBackend, v):m
field 's' v m = (KeySize, v):m
field 'm' v m = (KeyModTime, v):m
- field _ _ m = m -- just ignore unparseable fields
+ field _ _ m = m
-- for quickcheck
instance Arbitrary Key where