Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug
От | Florian G. Pflug |
---|---|
Тема | Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug |
Дата | |
Msg-id | 44C80F22.8050704@phlo.org обсуждение исходный текст |
Ответ на | Re: [PATCHES] Patch for VS.Net 2005's strxfrm() bug (andrew@dunslane.net) |
Список | 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 по дате отправления: