Bug #6542 2006-02-22 08:44

afb

_U and _C macros considered harmful

The following macros from C::B src/sdk/globals.h

conflict with /usr/include/ctype.h, on Mac OS X:

// Convenience macros until we update the codebase...

// TODO (mandrav##): Remove the leading underscores from the following macros

#define _U(x) cbC2U(x)

#define _C(x) cbU2C(x)

They are already defined in the system header as:

#define _CTYPE_C 0x00000200L /* Control */

#define _CTYPE_U 0x00008000L /* Upper */

/*

* Backward compatibility

*/

#define _C _CTYPE_C /* Control */

#define _U _CTYPE_U /* Upper */

I believe other BSDs than Darwin have this issue, too.

Perhaps add some #undef's to C::B, in the meantime ?

#undef _U

#define _U(x) cbC2U(x)

#undef _C

#define _C(x) cbU2C(x)

It gives some strange errors in some templates otherwise :-)

"32768 is not a function"

Category
 
Group
 
Status
Closed
Close date
2006-02-22 14:01
Assigned to
mandrav
mandrav 2006-02-22 13:54

Thanks afb.

I 've been wanting to remove them (as the comment says) but kept postponing it.

I 'm currently removing them completely. I 'll commit when I 'm done.

mandrav 2006-02-22 14:01

This bug is now fixed in HEAD.

Thank you for reporting it.