Date: Fri, 7 Apr 1995 19:06:39 +1000 From: Bruce Evans <bde@zeta.org.au> To: jkh@freefall.cdrom.com, pete@pelican.com Cc: current@FreeBSD.org, gie@charon.er.usgs.gov Subject: Re: preprocessor conflict in proj.4 (geodesic.h) Message-ID: <199504070906.TAA21424@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> The offending define is >> geodesic.h:# define f GEODESIC.FLAT >> ---------------------------------------------------------------- >> and lines in ctype.h: >> #if defined(_USE_CTYPE_INLINE_) >> static __inline int >> __istype(_BSD_RUNE_T_ c, unsigned long f) >Yeah.. This isn't the first time this has come up. >Last time, I prepended an undercore to all the macro argument names >but I also seem to recall that Garrett screamed something at me about >moving things from implementation space to frobutronic space, >or something.. I can't remember. >In any case, Garrett knows the right answer to this! I don't! >Garrett? :-) Macro argument names don't need leading underscores. Only inline function arg names need leading underscores (one). <ctype.h> has many other bugs. I have had fixes for them in my queue since December. The fixes are delayed waiting for similar fixes in <runetype.h>. <runetype.h> has many user names (e.g., `min' in structs) although it is otherwise careful about namespaces. Struct names don't need any protection from user variables but they can be clobbered by user macros. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504070906.TAA21424>