Fix username merging.
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 15 Jul 2013 02:00:53 +0000 (22:00 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 15 Jul 2013 02:00:53 +0000 (22:00 -0400)
src/Configuration.hs
src/OptionalConfiguration.hs

index 39dd4e6f4cc46a58cd63be81471bbf2a80cfcbc0..f73bc615a7d81adbd8c2c2eca0aea3afc92ab5f9 100644 (file)
@@ -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)
index 11add85de7ae6081755d1821cf750a0c845b4af4..3018e9ecdae56bc913b319a843804b0ef2f810b8 100644 (file)
@@ -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) =