Wed Mar 26 21:24:46 PDT 2008 Duncan Coutts <duncan at haskell.org>
* Add *Verbose flags back in with the old type
Abuse the Monoid instances for the flags types to keep the extra
non-Flag type field up-to-date wrt the real Flag Verbosity field.
Here's the pattern:
copyVerbose = fromFlagOrDefault (copyVerbose a) (copyVerbosity b),
copyVerbosity = combine copyVerbosity
We update copyVerbosity normally and we transfer the new value of
(copyVerbosity b) to the copyVerbose field, unless the new value
is NoFlag in which case the old value remains. To make this actually
work we have to make sure the set of flags are `mappend`ed to the
default set of flag rather than merely accumulated on top of them
field by field. So we now accumulate on top of mempty and `mappend`
to the default flags. We do this in the command line handling code.
M ./Distribution/Simple/Command.hs -2 +4
M ./Distribution/Simple/Setup.hs +41
View patch online:
http://darcs.haskell.org/cabal-branches/cabal-1.4/_darcs/patches/20080327042446-adfee-b8fc6b478a20b0cb765e472454b414588099f439.gz