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>

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.

Bruce


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504070906.TAA21424>