Skip site navigation (1)Skip section navigation (2)
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>