|
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
|