summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--XMonad.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/XMonad.hs b/XMonad.hs
index 0d66d25..6e7cdd4 100644
--- a/XMonad.hs
+++ b/XMonad.hs
@@ -144,9 +144,9 @@ instance Show (SomeLayout a) where
show (SomeLayout l) = show l
readLayout :: [SomeLayout a] -> String -> [(SomeLayout a, String)]
-readLayout ls s = case concatMap rl ls of
- (x:_) -> [x]
- [] -> []
+readLayout ls s = take 1 $ concatMap rl ls
+ -- We take the first parse only, because multiple matches
+ -- indicate a bad parse.
where rl (SomeLayout x) = map (\(l,s') -> (SomeLayout l,s')) $ rl' x
rl' :: Layout l a => l a -> [(l a,String)]
rl' _ = reads s