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>
index | next in thread | raw e-mail
>> 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. Brucehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504070906.TAA21424>
