From: <cod...@go...> - 2008-09-28 18:52:27
|
Author: wol...@gm... Date: Sun Sep 28 11:51:23 2008 New Revision: 316 Modified: trunk/hoc/InterfaceGenerator2/HackEnumNames.hs Log: Also accept built-in integer types as base types for enums Bindings generated from OSX 10.5 SDK now compile. Modified: trunk/hoc/InterfaceGenerator2/HackEnumNames.hs ============================================================================== --- trunk/hoc/InterfaceGenerator2/HackEnumNames.hs (original) +++ trunk/hoc/InterfaceGenerator2/HackEnumNames.hs Sun Sep 28 11:51:23 2008 @@ -12,9 +12,9 @@ hackEnums1 :: (a -> Maybe Declaration) -> (Declaration -> a) -> [a] -> [a] hackEnums1 unwrap wrap (x : y : xs) | Just (CTypeDecl (CTEnum name1 vals)) <- unwrap x, - Just (Typedef (CTSimple baseType) name2) <- unwrap y, + Just (Typedef baseType name2) <- unwrap y, null name1 || name1 == name2 || name1 == '_' : name2, - baseType == "NSInteger" || baseType == "NSUInteger" + acceptableEnumBaseType baseType = wrap (Typedef (CTEnum name1 vals) name2) : hackEnums1 unwrap wrap xs hackEnums1 unwrap wrap (x : xs) @@ -27,3 +27,8 @@ decl other = Nothing hackEnums1 unwrap wrap [] = [] + acceptableEnumBaseType (CTSimple name) + | name == "NSInteger" || name == "NSUInteger" = True + acceptableEnumBaseType (CTBuiltin _ _ name) + | name == "int" = True + acceptableEnumBaseType _ = False |