From: Axel S. <A....@ke...> - 2007-11-08 13:58:58
|
Mon Nov 5 07:53:03 PST 2007 A....@ke... * Replace toFlags with Peter Galvin's version. hunk ./glib/System/Glib/Flags.hs 30 - toFlags, - toFlags' + toFlags hunk ./glib/System/Glib/Flags.hs 43 --- * Note that this function falls over if bits are set for which no [_$_] --- constructurs are set. This could only be circumvented by catching --- the error raised in toEnum, enumerating all flags with [minBound.. --- maxBound] does NOT work. --- -toFlags :: Flags a => Int -> [a] -toFlags f = testBits f 1 - where testBits f n - | f == 0 = [] - | f `testBit` 0 = toEnum n : testBits (f `shiftR` 1) (n `shiftL` 1) - | otherwise = testBits (f `shiftR` 1) (n `shiftL` 1) - --- * Unlike 'toFlags', this function ignores bits set in the passed +-- * This function ignores bits set in the passed hunk ./glib/System/Glib/Flags.hs 45 -toFlags' :: Flags a => Int -> [a] -toFlags' n = catMaybes [ if n .&. fromEnum flag == fromEnum flag +toFlags :: Flags a => Int -> [a] +toFlags n = catMaybes [ if n .&. fromEnum flag == fromEnum flag |