]> gitweb.michael.orlitzky.com - dead/halcyon.git/blobdiff - src/OptionalConfiguration.hs
Fix username merging.
[dead/halcyon.git] / src / OptionalConfiguration.hs
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))
       (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
     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
 
       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) =
 
 instance DCT.Configured [String] where
   convert (DCT.List xs) =