Обсуждение: Randomly placed definition of S_ISDIR() in psql/copy.c
Why does psql/copy.c contain this? #if defined(WIN32) && !defined(S_ISDIR) #define __S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) #define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) #endif Surely a better place for such a thing is src/include/port/win32.h ... where indeed there already is a definition of S_ISDIR(). So I think this is dead code as well as poor style. Any objection to seeing what happens if we remove it? regards, tom lane
On Sat, Apr 25, 2009 at 04:35:21PM -0400, Tom Lane wrote: > Why does psql/copy.c contain this? > > #if defined(WIN32) && !defined(S_ISDIR) > #define __S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) > #define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) > #endif > > Surely a better place for such a thing is src/include/port/win32.h > ... where indeed there already is a definition of S_ISDIR(). So I > think this is dead code as well as poor style. Any objection to > seeing what happens if we remove it? Nope :) Cheers, David. -- David Fetter <david@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter@gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate
Tom Lane wrote: > Why does psql/copy.c contain this? > > #if defined(WIN32) && !defined(S_ISDIR) > #define __S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) > #define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) > #endif > > Surely a better place for such a thing is src/include/port/win32.h > ... where indeed there already is a definition of S_ISDIR(). > So I think this is dead code as well as poor style. Any objection to > seeing what happens if we remove it? I believe that code pre-dates the full win32 port, and is from the time when we did just libpq + psql. So, +1 on killing it. //Magnus