From 90c763c607d9eceb718b2229bb420134c9931544 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 14 Jul 2013 22:00:53 -0400 Subject: [PATCH] Fix username merging. --- src/Configuration.hs | 7 ++++++- src/OptionalConfiguration.hs | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Configuration.hs b/src/Configuration.hs index 39dd4e6..f73bc61 100644 --- a/src/Configuration.hs +++ b/src/Configuration.hs @@ -57,7 +57,7 @@ merge_optional cfg opt_cfg = (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 @@ -69,3 +69,8 @@ merge_optional cfg opt_cfg = 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) diff --git a/src/OptionalConfiguration.hs b/src/OptionalConfiguration.hs index 11add85..3018e9e 100644 --- a/src/OptionalConfiguration.hs +++ b/src/OptionalConfiguration.hs @@ -70,7 +70,7 @@ instance Monoid OptionalCfg where (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 @@ -78,6 +78,10 @@ instance Monoid OptionalCfg where 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) = -- 2.43.2