diff options
author | Joey Hess <joey@kitenet.net> | 2011-03-15 18:15:44 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-03-15 18:21:39 -0400 |
commit | 940c4e361dd5149d52c773a0e020150d1b5fed56 (patch) | |
tree | 3f48d71fead4e956cc98a0471ef8bc59f830fa6e /Key.hs | |
parent | fe09c2b7231485afced594cd27582bc6bd32f250 (diff) |
cleanup
Diffstat (limited to 'Key.hs')
-rw-r--r-- | Key.hs | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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 |