From: "Greg Stein" <gstein@lyra.org>
Sent: Tuesday, January 29, 2002 5:50 AM
> One short comment...
>
> On Tue, Jan 29, 2002 at 01:25:33AM -0600, William A. Rowe, Jr. wrote:
> > From: "Mladen Turk" <mturk@mappingsoft.com>
> > Sent: Monday, January 28, 2002 3:48 PM
> >...
> > +++ apr_general.h 28 Jan 2002 21:41:22 -0000
> > @@ -133,13 +133,21 @@
> > * have it
> > */
> > #if (!APR_HAVE_STRCASECMP) && (APR_HAVE_STRICMP)
> > +#ifdef _MSC_VER
> > +#define strcasecmp(s1, s2) _stricmp(s1, s2)
> >
> >
> > You are looking to define a new APR_HAVE__STRICMP (or APR_HAVE_uSTRICMP,
> > whichever you find clearer.) It must be defined to 0 in apr.h.in.
> >
> > _MSC_VER is not namespace protected for APR, and apr_general.h is included
>
> _MSC_VER doesn't have to be namespace protected. He's only testing for it
> (to see if the compiler sets it). Why would it have to be protected?
For the same reason as HAVE_FOO must be protected using buildconf, etc.
Only MS considers _MSC_VER a globally recognized symbol. Since this is not a
win32 specific (or even a win32+os2+netware common file) - it's not even
scoped within APR but has global scope, we need some alternate APR_HAVE symbol.
If you hadn't noticed, we are having enough namespace problems lately. I'm
only being incredibly picky about apr/include/*.h ... our own sources either
build or die, and someone will report that.
In foo/win32/*.c or include/arch/win32 this is obviously not an issue at all.
Even in foo/unix/*.c or include/apr.hw it's not that significant.
Bill
|