Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug - Mailing list pgsql-hackers

From Florian G. Pflug
Subject Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug
Date
Msg-id 44C80F22.8050704@phlo.org
Whole thread Raw
In response to Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug  (andrew@dunslane.net)
List pgsql-hackers
andrew@dunslane.net wrote:
>> Bruce Momjian wrote:
>>>>> Why is this better than:
>>>>>
>>>>>   #if _MSC_VER == 1400
>>>>>
>>>>> Surely this will not be true if _MSC_VER is undefined?
>>>> I experienced injustice and the reason of in OSX for it.
>>> What was the problem with OSX?  Did it throw a warning of you did an
>>> equality test on an undefined symbol?
>> The following if evaluated to true on osx, although I'm pretty sure that
>> _MSC_VER isn't defined on osx ;-)
>> #if (_MSC_VER < 1300)
>> ...
>> #endif
>>
>> replacing it with
>> #ifdef WIN32
>> #if (_MSC_VER < 1300)
>> ...
>> #endif
>> #endif
>>
>> fixed the problem.
>
> No doubt, but that's quite a different test.
I mainly posted this to show what the offending ifdef in pgadmin3 looked like,
since someone referenced it, not as an argument against "#if _MSC_VER = 1400".

I guess "_MSC_VER < 1300" gets interpreted as "0 < 1300" if _MSC_VER is undefined,
so "_MSC_VER = 1400" would actually work.

But it still suprised me a lot that "_MSC_VER < 1300" evaluated to true if _MSC_VER
is undefined - maybe thats the _real_ reason why some people don't like the tri-state
logic in sql - it's because they get confused when trying to use the c preprocessor ;-)

greetings, Florian Pflug


pgsql-hackers by date:

Previous
From: andrew@dunslane.net
Date:
Subject: Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug
Next
From: "Hiroshi Saito"
Date:
Subject: Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug