(merge' (from_address cfg) (OC.from_address opt_cfg))
(merge' (to_address cfg) (OC.to_address opt_cfg))
(merge (verbose cfg) (OC.verbose opt_cfg))
- ((usernames cfg) ++ (OC.usernames opt_cfg))
+ all_usernames
where
merge :: a -> Maybe a -> a
merge x Nothing = x
merge' (Just x) Nothing = Just x
merge' Nothing (Just x) = Just x
merge' (Just _) (Just y) = Just y
+
+ -- If there are any optional usernames, use only those.
+ all_usernames = if (null (OC.usernames opt_cfg))
+ then (usernames cfg)
+ else (OC.usernames opt_cfg)
(merge (from_address cfg1) (from_address cfg2))
(merge (to_address cfg1) (to_address cfg2))
(merge (verbose cfg1) (verbose cfg2))
- (usernames cfg2) -- Use only the usernames from cfg2
+ all_usernames
where
merge :: (Maybe a) -> (Maybe a) -> (Maybe a)
merge Nothing Nothing = Nothing
merge Nothing (Just x) = Just x
merge (Just _) (Just y) = Just y
+ -- Use only the latter usernames if there are any.
+ all_usernames = if (null (usernames cfg2))
+ then (usernames cfg1)
+ else (usernames cfg2)
instance DCT.Configured [String] where
convert (DCT.List xs) =