Re: Updated VC++ patch

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Updated VC++ patch
Дата
Msg-id 200606072223.k57MNuE23497@candle.pha.pa.us
обсуждение исходный текст
Ответ на Updated VC++ patch  ("Magnus Hagander" <mha@sollentuna.net>)
Список pgsql-patches
Patch applied, adjusted version attached.  Thanks.

This still needs the the build script to produce the project files.

---------------------------------------------------------------------------


Magnus Hagander wrote:
> Here's an updated version of the VC++ patch. Changes since last time:
>
>
> * Moved _dosmaperr() to port (from backend/port), and use it in
> dirent.c, per Qingqing. (so backend/port/win32/error.c should be deleted
> now). Please double-check the configure.in change, because my autoconf
> just won't cooperate on win32 :-(
> This also adds a couple of #ifdef FRONTEND for the ereport calls.
>
> * Change definition of NAN, per Tom.
>
> * Change src/port/thread.c so it doesn't pull in pthread.h when building
> the backend, since it doesn't use any thread-specific functions there
> anyway.
>
>
> Tom has already committed a fix for the other float8 problem.
>
> //Magnus

Content-Description: vcbuild.patch

[ Attachment, skipping... ]

Content-Description: vcbuild_newfiles.tar.gz

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq

--
  Bruce Momjian   http://candle.pha.pa.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: configure
===================================================================
RCS file: /cvsroot/pgsql/configure,v
retrieving revision 1.494
diff -c -c -r1.494 configure
*** configure    30 May 2006 13:52:24 -0000    1.494
--- configure    7 Jun 2006 22:17:46 -0000
***************
*** 15064,15069 ****
--- 15064,15077 ----
    *) LIBOBJS="$LIBOBJS rand.$ac_objext" ;;
  esac

+ case $LIBOBJS in
+     "win32error.$ac_objext"   | \
+   *" win32error.$ac_objext"   | \
+     "win32error.$ac_objext "* | \
+   *" win32error.$ac_objext "* ) ;;
+   *) LIBOBJS="$LIBOBJS win32error.$ac_objext" ;;
+ esac
+

  cat >>confdefs.h <<\_ACEOF
  #define HAVE_SYMLINK 1
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql/configure.in,v
retrieving revision 1.465
diff -c -c -r1.465 configure.in
*** configure.in    30 May 2006 13:52:24 -0000    1.465
--- configure.in    7 Jun 2006 22:17:48 -0000
***************
*** 994,999 ****
--- 994,1000 ----
  AC_LIBOBJ(kill)
  AC_LIBOBJ(open)
  AC_LIBOBJ(rand)
+ AC_LIBOBJ(win32error)
  AC_DEFINE([HAVE_SYMLINK], 1,
            [Define to 1 if you have the `symlink' function.])
  fi
Index: src/backend/libpq/ip.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/libpq/ip.c,v
retrieving revision 1.34
diff -c -c -r1.34 ip.c
*** src/backend/libpq/ip.c    5 Mar 2006 15:58:27 -0000    1.34
--- src/backend/libpq/ip.c    7 Jun 2006 22:17:51 -0000
***************
*** 20,26 ****
  /* This is intended to be used in both frontend and backend, so use c.h */
  #include "c.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <errno.h>
  #include <unistd.h>
  #include <sys/types.h>
--- 20,25 ----
***************
*** 33,39 ****
  #endif
  #include <arpa/inet.h>
  #include <sys/file.h>
- #endif

  #include "libpq/ip.h"

--- 32,37 ----
Index: src/backend/port/dynloader/win32.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/port/dynloader/win32.c,v
retrieving revision 1.7
diff -c -c -r1.7 win32.c
*** src/backend/port/dynloader/win32.c    15 Oct 2005 02:49:23 -0000    1.7
--- src/backend/port/dynloader/win32.c    7 Jun 2006 22:17:51 -0000
***************
*** 1,7 ****
  /* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.7 2005/10/15 02:49:23 momjian Exp $ */

! #include <windows.h>
! #include <stdio.h>

  char       *dlerror(void);
  int            dlclose(void *handle);
--- 1,6 ----
  /* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.7 2005/10/15 02:49:23 momjian Exp $ */

! #include "postgres.h"

  char       *dlerror(void);
  int            dlclose(void *handle);
Index: src/backend/port/win32/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/backend/port/win32/Makefile,v
retrieving revision 1.7
diff -c -c -r1.7 Makefile
*** src/backend/port/win32/Makefile    29 Apr 2006 20:52:56 -0000    1.7
--- src/backend/port/win32/Makefile    7 Jun 2006 22:17:52 -0000
***************
*** 12,18 ****
  top_builddir = ../../../..
  include $(top_builddir)/src/Makefile.global

! OBJS = shmem.o timer.o socket.o signal.o security.o error.o

  all: SUBSYS.o

--- 12,18 ----
  top_builddir = ../../../..
  include $(top_builddir)/src/Makefile.global

! OBJS = shmem.o timer.o socket.o signal.o security.o

  all: SUBSYS.o

Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.484
diff -c -c -r1.484 postmaster.c
*** src/backend/postmaster/postmaster.c    19 May 2006 15:15:37 -0000    1.484
--- src/backend/postmaster/postmaster.c    7 Jun 2006 22:17:58 -0000
***************
*** 1121,1127 ****
          ExitPostmaster(1);
      }
  #endif
!     i = open(NULL_DEV, O_RDWR);
      dup2(i, 0);
      dup2(i, 1);
      dup2(i, 2);
--- 1121,1127 ----
          ExitPostmaster(1);
      }
  #endif
!     i = open(NULL_DEV, O_RDWR, 0);
      dup2(i, 0);
      dup2(i, 1);
      dup2(i, 2);
Index: src/backend/postmaster/syslogger.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/postmaster/syslogger.c,v
retrieving revision 1.23
diff -c -c -r1.23 syslogger.c
*** src/backend/postmaster/syslogger.c    5 Mar 2006 15:58:36 -0000    1.23
--- src/backend/postmaster/syslogger.c    7 Jun 2006 22:18:00 -0000
***************
*** 153,159 ****
       */
      if (redirection_done)
      {
!         int            fd = open(NULL_DEV, O_WRONLY);

          /*
           * The closes might look redundant, but they are not: we want to be
--- 153,159 ----
       */
      if (redirection_done)
      {
!         int            fd = open(NULL_DEV, O_WRONLY, 0);

          /*
           * The closes might look redundant, but they are not: we want to be
Index: src/backend/utils/adt/float.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/float.c,v
retrieving revision 1.124
diff -c -c -r1.124 float.c
*** src/backend/utils/adt/float.c    24 Apr 2006 20:36:32 -0000    1.124
--- src/backend/utils/adt/float.c    7 Jun 2006 22:18:05 -0000
***************
*** 80,85 ****
--- 80,93 ----
  #define HAVE_FINITE 1
  #endif

+ /* Visual C++ etc lacks NAN, and won't accept 0.0/0.0.  NAN definition from
+  * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vclrfNotNumberNANItems.asp
+  */
+ #if defined(WIN32) && !defined(NAN)
+ static const uint32 nan[2] = {0xffffffff, 0x7fffffff};
+ #define NAN (*(const double *) nan)
+ #endif
+
  /* not sure what the following should be, but better to make it over-sufficient */
  #define MAXFLOATWIDTH    64
  #define MAXDOUBLEWIDTH    128
Index: src/backend/utils/fmgr/dfmgr.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v
retrieving revision 1.85
diff -c -c -r1.85 dfmgr.c
*** src/backend/utils/fmgr/dfmgr.c    31 May 2006 20:58:09 -0000    1.85
--- src/backend/utils/fmgr/dfmgr.c    7 Jun 2006 22:18:06 -0000
***************
*** 16,22 ****
--- 16,26 ----

  #include <sys/stat.h>

+ #ifndef WIN32_ONLY_COMPILER
  #include "dynloader.h"
+ #else
+ #include "port/dynloader/win32.h"
+ #endif
  #include "miscadmin.h"
  #include "utils/dynamic_loader.h"

Index: src/backend/utils/mb/encnames.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/mb/encnames.c,v
retrieving revision 1.29
diff -c -c -r1.29 encnames.c
*** src/backend/utils/mb/encnames.c    18 Feb 2006 16:15:22 -0000    1.29
--- src/backend/utils/mb/encnames.c    7 Jun 2006 22:18:07 -0000
***************
*** 13,21 ****
  #include "utils/builtins.h"
  #endif

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #include "mb/pg_wchar.h"
  #include <ctype.h>
--- 13,19 ----
Index: src/bin/initdb/initdb.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/initdb/initdb.c,v
retrieving revision 1.116
diff -c -c -r1.116 initdb.c
*** src/bin/initdb/initdb.c    27 May 2006 18:07:06 -0000    1.116
--- src/bin/initdb/initdb.c    7 Jun 2006 22:18:17 -0000
***************
*** 2269,2276 ****
  }

  #ifdef WIN32
! /* MingW headers are incomplete */
! typedef WINAPI BOOL (*__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD,
PLUID_AND_ATTRIBUTES,DWORD, PSID_AND_ATTRIBUTES, PHANDLE); 
  #define DISABLE_MAX_PRIVILEGE   0x1

  /*
--- 2269,2275 ----
  }

  #ifdef WIN32
! typedef BOOL (WINAPI *__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD,
PLUID_AND_ATTRIBUTES,DWORD, PSID_AND_ATTRIBUTES, PHANDLE); 
  #define DISABLE_MAX_PRIVILEGE   0x1

  /*
Index: src/bin/pg_controldata/pg_controldata.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_controldata/pg_controldata.c,v
retrieving revision 1.28
diff -c -c -r1.28 pg_controldata.c
*** src/bin/pg_controldata/pg_controldata.c    3 Apr 2006 23:35:04 -0000    1.28
--- src/bin/pg_controldata/pg_controldata.c    7 Jun 2006 22:18:18 -0000
***************
*** 104,110 ****

      snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);

!     if ((fd = open(ControlFilePath, O_RDONLY)) == -1)
      {
          fprintf(stderr, _("%s: could not open file \"%s\" for reading: %s\n"),
                  progname, ControlFilePath, strerror(errno));
--- 104,110 ----

      snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);

!     if ((fd = open(ControlFilePath, O_RDONLY, 0)) == -1)
      {
          fprintf(stderr, _("%s: could not open file \"%s\" for reading: %s\n"),
                  progname, ControlFilePath, strerror(errno));
Index: src/bin/pg_ctl/pg_ctl.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_ctl/pg_ctl.c,v
retrieving revision 1.67
diff -c -c -r1.67 pg_ctl.c
*** src/bin/pg_ctl/pg_ctl.c    5 Mar 2006 15:58:50 -0000    1.67
--- src/bin/pg_ctl/pg_ctl.c    7 Jun 2006 22:18:25 -0000
***************
*** 1159,1170 ****
   * also load the couple of functions that *do* exist in minwg headers but not
   * on NT4. That way, we don't break on NT4.
   */
! typedef WINAPI BOOL (*__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD,
PLUID_AND_ATTRIBUTES,DWORD, PSID_AND_ATTRIBUTES, PHANDLE); 
! typedef WINAPI BOOL (*__IsProcessInJob)(HANDLE, HANDLE, PBOOL);
! typedef WINAPI HANDLE (*__CreateJobObject)(LPSECURITY_ATTRIBUTES, LPCTSTR);
! typedef WINAPI BOOL (*__SetInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
! typedef WINAPI BOOL (*__AssignProcessToJobObject)(HANDLE, HANDLE);
! typedef WINAPI BOOL (*__QueryInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);

  /* Windows API define missing from MingW headers */
  #define DISABLE_MAX_PRIVILEGE   0x1
--- 1159,1170 ----
   * also load the couple of functions that *do* exist in minwg headers but not
   * on NT4. That way, we don't break on NT4.
   */
! typedef BOOL (WINAPI *__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD,
PLUID_AND_ATTRIBUTES,DWORD, PSID_AND_ATTRIBUTES, PHANDLE); 
! typedef BOOL (WINAPI *__IsProcessInJob)(HANDLE, HANDLE, PBOOL);
! typedef HANDLE (WINAPI *__CreateJobObject)(LPSECURITY_ATTRIBUTES, LPCTSTR);
! typedef BOOL (WINAPI *__SetInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
! typedef BOOL (WINAPI *__AssignProcessToJobObject)(HANDLE, HANDLE);
! typedef BOOL (WINAPI *__QueryInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);

  /* Windows API define missing from MingW headers */
  #define DISABLE_MAX_PRIVILEGE   0x1
Index: src/bin/pg_dump/pg_backup_archiver.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v
retrieving revision 1.131
diff -c -c -r1.131 pg_backup_archiver.c
*** src/bin/pg_dump/pg_backup_archiver.c    28 May 2006 21:13:54 -0000    1.131
--- src/bin/pg_dump/pg_backup_archiver.c    7 Jun 2006 22:18:33 -0000
***************
*** 28,36 ****

  #include <ctype.h>

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #ifdef WIN32
  #include <io.h>
--- 28,34 ----
Index: src/bin/pg_dump/pg_backup_db.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_db.c,v
retrieving revision 1.70
diff -c -c -r1.70 pg_backup_db.c
*** src/bin/pg_dump/pg_backup_db.c    3 Mar 2006 23:38:29 -0000    1.70
--- src/bin/pg_dump/pg_backup_db.c    7 Jun 2006 22:18:34 -0000
***************
*** 15,23 ****
  #include "pg_backup_db.h"
  #include "dumputils.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #include <ctype.h>

--- 15,21 ----
Index: src/bin/pg_dump/pg_backup_null.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_null.c,v
retrieving revision 1.17
diff -c -c -r1.17 pg_backup_null.c
*** src/bin/pg_dump/pg_backup_null.c    12 Feb 2006 06:11:50 -0000    1.17
--- src/bin/pg_dump/pg_backup_null.c    7 Jun 2006 22:18:34 -0000
***************
*** 25,33 ****
  #include "pg_backup.h"
  #include "pg_backup_archiver.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>                /* for dup */
- #endif

  #include "libpq/libpq-fs.h"

--- 25,31 ----
Index: src/bin/pg_dump/pg_backup_tar.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_tar.c,v
retrieving revision 1.51
diff -c -c -r1.51 pg_backup_tar.c
*** src/bin/pg_dump/pg_backup_tar.c    22 May 2006 11:21:54 -0000    1.51
--- src/bin/pg_dump/pg_backup_tar.c    7 Jun 2006 22:18:36 -0000
***************
*** 27,36 ****

  #include <ctype.h>
  #include <limits.h>
-
- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  static void _ArchiveEntry(ArchiveHandle *AH, TocEntry *te);
  static void _StartData(ArchiveHandle *AH, TocEntry *te);
--- 27,33 ----
Index: src/bin/pg_dump/pg_dump.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v
retrieving revision 1.436
diff -c -c -r1.436 pg_dump.c
*** src/bin/pg_dump/pg_dump.c    28 May 2006 21:13:54 -0000    1.436
--- src/bin/pg_dump/pg_dump.c    7 Jun 2006 22:18:59 -0000
***************
*** 24,32 ****
   */
  #include "postgres.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #include <ctype.h>
  #ifdef ENABLE_NLS
--- 24,30 ----
Index: src/bin/pg_dump/pg_dumpall.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v
retrieving revision 1.78
diff -c -c -r1.78 pg_dumpall.c
*** src/bin/pg_dump/pg_dumpall.c    31 May 2006 11:02:42 -0000    1.78
--- src/bin/pg_dump/pg_dumpall.c    7 Jun 2006 22:19:01 -0000
***************
*** 14,23 ****
  #include "postgres_fe.h"

  #include <time.h>
-
- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #ifdef ENABLE_NLS
  #include <locale.h>
--- 14,20 ----
Index: src/bin/pg_dump/pg_restore.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_restore.c,v
retrieving revision 1.77
diff -c -c -r1.77 pg_restore.c
*** src/bin/pg_dump/pg_restore.c    12 Apr 2006 22:18:48 -0000    1.77
--- src/bin/pg_dump/pg_restore.c    7 Jun 2006 22:19:02 -0000
***************
*** 53,61 ****
  #include <termios.h>
  #endif

- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #include "getopt_long.h"

--- 53,59 ----
Index: src/bin/pg_resetxlog/pg_resetxlog.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v
retrieving revision 1.47
diff -c -c -r1.47 pg_resetxlog.c
*** src/bin/pg_resetxlog/pg_resetxlog.c    3 Jun 2006 02:19:24 -0000    1.47
--- src/bin/pg_resetxlog/pg_resetxlog.c    7 Jun 2006 22:19:03 -0000
***************
*** 245,251 ****
       */
      snprintf(path, MAXPGPATH, "%s/postmaster.pid", DataDir);

!     if ((fd = open(path, O_RDONLY)) < 0)
      {
          if (errno != ENOENT)
          {
--- 245,251 ----
       */
      snprintf(path, MAXPGPATH, "%s/postmaster.pid", DataDir);

!     if ((fd = open(path, O_RDONLY, 0)) < 0)
      {
          if (errno != ENOENT)
          {
***************
*** 347,353 ****
      char       *buffer;
      pg_crc32    crc;

!     if ((fd = open(XLOG_CONTROL_FILE, O_RDONLY)) < 0)
      {
          /*
           * If pg_control is not there at all, or we can't read it, the odds
--- 347,353 ----
      char       *buffer;
      pg_crc32    crc;

!     if ((fd = open(XLOG_CONTROL_FILE, O_RDONLY, 0)) < 0)
      {
          /*
           * If pg_control is not there at all, or we can't read it, the odds
Index: src/bin/psql/command.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/command.c,v
retrieving revision 1.168
diff -c -c -r1.168 command.c
*** src/bin/psql/command.c    1 Jun 2006 00:15:36 -0000    1.168
--- src/bin/psql/command.c    7 Jun 2006 22:19:06 -0000
***************
*** 8,14 ****
  #include "postgres_fe.h"
  #include "command.h"

! #ifdef WIN32_CLIENT_ONLY        /* needed for BCC */
  #undef mkdir
  #endif

--- 8,14 ----
  #include "postgres_fe.h"
  #include "command.h"

! #ifdef __BORLANDC__        /* needed for BCC */
  #undef mkdir
  #endif

***************
*** 26,36 ****
  #include <io.h>
  #include <fcntl.h>
  #include <direct.h>
- #ifndef WIN32_CLIENT_ONLY
  #include <sys/types.h>            /* for umask() */
  #include <sys/stat.h>            /* for stat() */
  #endif
- #endif

  #include "libpq-fe.h"
  #include "pqexpbuffer.h"
--- 26,34 ----
***************
*** 1261,1270 ****
      bool        error = false;
      int            fd;

- #ifndef WIN32_CLIENT_ONLY
      struct stat before,
                  after;
- #endif

      if (filename_arg)
          fname = filename_arg;
--- 1259,1266 ----
***************
*** 1339,1357 ****
          }
      }

- #ifndef WIN32_CLIENT_ONLY
      if (!error && stat(fname, &before) != 0)
      {
          psql_error("%s: %s\n", fname, strerror(errno));
          error = true;
      }
- #endif

      /* call editor */
      if (!error)
          error = !editFile(fname);

- #ifndef WIN32_CLIENT_ONLY
      if (!error && stat(fname, &after) != 0)
      {
          psql_error("%s: %s\n", fname, strerror(errno));
--- 1335,1350 ----
***************
*** 1360,1369 ****

      if (!error && before.st_mtime != after.st_mtime)
      {
- #else
-     if (!error)
-     {
- #endif
          stream = fopen(fname, PG_BINARY_R);
          if (!stream)
          {
--- 1353,1358 ----
Index: src/bin/psql/copy.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/copy.c,v
retrieving revision 1.64
diff -c -c -r1.64 copy.c
*** src/bin/psql/copy.c    1 Jun 2006 01:28:00 -0000    1.64
--- src/bin/psql/copy.c    7 Jun 2006 22:19:07 -0000
***************
*** 26,32 ****
  #include "prompt.h"
  #include "stringutils.h"

! #if defined(WIN32) && (!defined(__MINGW32__))
  #define __S_ISTYPE(mode, mask)    (((mode) & S_IFMT) == (mask))
  #define S_ISDIR(mode)     __S_ISTYPE((mode), S_IFDIR)
  #endif
--- 26,32 ----
  #include "prompt.h"
  #include "stringutils.h"

! #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
Index: src/bin/psql/print.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/print.c,v
retrieving revision 1.85
diff -c -c -r1.85 print.c
*** src/bin/psql/print.c    5 Mar 2006 15:58:51 -0000    1.85
--- src/bin/psql/print.c    7 Jun 2006 22:19:10 -0000
***************
*** 11,20 ****

  #include <math.h>
  #include <signal.h>
-
- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #ifndef WIN32
  #include <sys/ioctl.h>            /* for ioctl() */
--- 11,17 ----
***************
*** 641,650 ****
          for (ptr = footers; *ptr; ptr++)
              fprintf(fout, "%s\n", *ptr);

! #ifndef __MINGW32__

      /*
!      * for some reason MinGW outputs an extra newline, so this supresses it
       */
      fputc('\n', fout);
  #endif
--- 638,647 ----
          for (ptr = footers; *ptr; ptr++)
              fprintf(fout, "%s\n", *ptr);

! #ifndef WIN32

      /*
!      * for some reason MinGW (and MSVC) outputs an extra newline, so this supresses it
       */
      fputc('\n', fout);
  #endif
Index: src/bin/psql/win32.mak
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/win32.mak,v
retrieving revision 1.30
diff -c -c -r1.30 win32.mak
*** src/bin/psql/win32.mak    3 Mar 2006 23:11:48 -0000    1.30
--- src/bin/psql/win32.mak    7 Jun 2006 22:19:10 -0000
***************
*** 28,34 ****

  CPP_PROJ=/nologo $(OPT) /W3 /GX /D "WIN32" $(DEBUGDEF) /D "_CONSOLE" /D\
   "_MBCS" /Fp"$(INTDIR)\psql.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
!  /I ..\..\include /I ..\..\interfaces\libpq /I ..\..\include\port\win32 \
   /I ..\pg_dump /I ..\..\backend \
   /D "HAVE_STRDUP" /D "FRONTEND"

--- 28,34 ----

  CPP_PROJ=/nologo $(OPT) /W3 /GX /D "WIN32" $(DEBUGDEF) /D "_CONSOLE" /D\
   "_MBCS" /Fp"$(INTDIR)\psql.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
!  /I ..\..\include /I ..\..\interfaces\libpq /I ..\..\include\port\win32 /I ..\..\include\port\win32_msvc \
   /I ..\pg_dump /I ..\..\backend \
   /D "HAVE_STRDUP" /D "FRONTEND"

***************
*** 57,62 ****
--- 57,63 ----
      -@erase "$(INTDIR)\exec.obj"
      -@erase "$(INTDIR)\getopt.obj"
      -@erase "$(INTDIR)\getopt_long.obj"
+     -@erase "$(INTDIR)\snprintf.obj"
      -@erase "$(INTDIR)\path.obj"
      -@erase "$(INTDIR)\pgstrcasecmp.obj"
      -@erase "$(INTDIR)\sprompt.obj"
***************
*** 91,96 ****
--- 92,98 ----
      "$(INTDIR)\exec.obj" \
      "$(INTDIR)\getopt.obj" \
      "$(INTDIR)\getopt_long.obj" \
+     "$(INTDIR)\snprintf.obj" \
      "$(INTDIR)\path.obj" \
      "$(INTDIR)\pgstrcasecmp.obj" \
      "$(INTDIR)\sprompt.obj" \
***************
*** 139,144 ****
--- 141,151 ----
      $(CPP_PROJ) ..\..\port\getopt_long.c
  <<

+ "$(INTDIR)\snprintf.obj" : "$(INTDIR)" ..\..\port\snprintf.c
+     $(CPP) @<<
+     $(CPP_PROJ) ..\..\port\snprintf.c
+ <<
+
  "$(INTDIR)\path.obj" : "$(INTDIR)" ..\..\port\path.c
      $(CPP) @<<
      $(CPP_PROJ) ..\..\port\path.c
Index: src/include/c.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/c.h,v
retrieving revision 1.202
diff -c -c -r1.202 c.h
*** src/include/c.h    28 May 2006 21:13:54 -0000    1.202
--- src/include/c.h    7 Jun 2006 22:19:12 -0000
***************
*** 52,68 ****

  #include "pg_config.h"
  #include "pg_config_manual.h"    /* must be after pg_config.h */
! #if !defined(WIN32) && !defined(__CYGWIN__)
  #include "pg_config_os.h"        /* must be before any system header files */
- #else
- #if defined(_MSC_VER) || defined(__BORLANDC__)
- #define WIN32_CLIENT_ONLY
- /* Some use MinGW-generated pg_config.h but MSVC for extensions. */
- #undef HAVE_STRINGS_H
- #endif
  #endif
  #include "postgres_ext.h"

  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
--- 52,66 ----

  #include "pg_config.h"
  #include "pg_config_manual.h"    /* must be after pg_config.h */
! #if !defined(WIN32) && !defined(__CYGWIN__) /* win32 will include further down */
  #include "pg_config_os.h"        /* must be before any system header files */
  #endif
  #include "postgres_ext.h"

+ #if defined(_MSC_VER) || defined(__BORLANDC__)
+ #define    WIN32_ONLY_COMPILER
+ #endif
+
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
***************
*** 82,94 ****
  #endif

  #if defined(WIN32) || defined(__CYGWIN__)
! #ifndef WIN32_CLIENT_ONLY
! /* We have to redefine some system functions after they are included above */
! #include "pg_config_os.h"
! #else
! #include "port/win32.h"            /* We didn't run configure, but this is our
!                                  * port file */
! #endif
  #endif

  /* Must be before gettext() games below */
--- 80,90 ----
  #endif

  #if defined(WIN32) || defined(__CYGWIN__)
! /* We have to redefine some system functions after they are included above.
!  *
!  * use port/win32.h directly to work on both mingw and non-mingw.
!  */
! #include "port/win32.h"
  #endif

  /* Must be before gettext() games below */
Index: src/include/getaddrinfo.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/getaddrinfo.h,v
retrieving revision 1.19
diff -c -c -r1.19 getaddrinfo.h
*** src/include/getaddrinfo.h    5 Mar 2006 15:58:53 -0000    1.19
--- src/include/getaddrinfo.h    7 Jun 2006 22:19:12 -0000
***************
*** 22,31 ****
  #ifndef GETADDRINFO_H
  #define GETADDRINFO_H

- #ifndef WIN32_CLIENT_ONLY
  #include <sys/socket.h>
  #include <netdb.h>
- #endif


  /* Various macros that ought to be in <netdb.h>, but might not be */
--- 22,29 ----
***************
*** 42,48 ****
  #define EAI_MEMORY        (-10)
  #define EAI_SYSTEM        (-11)
  #else                            /* WIN32 */
! #if defined(WIN32_CLIENT_ONLY)
  #define WSA_NOT_ENOUGH_MEMORY   (WSAENOBUFS)
  #define WSATYPE_NOT_FOUND       (WSABASEERR+109)
  #endif
--- 40,46 ----
  #define EAI_MEMORY        (-10)
  #define EAI_SYSTEM        (-11)
  #else                            /* WIN32 */
! #ifdef WIN32_ONLY_COMPILER
  #define WSA_NOT_ENOUGH_MEMORY   (WSAENOBUFS)
  #define WSATYPE_NOT_FOUND       (WSABASEERR+109)
  #endif
Index: src/include/pg_config.h.win32
===================================================================
RCS file: /cvsroot/pgsql/src/include/pg_config.h.win32,v
retrieving revision 1.29
diff -c -c -r1.29 pg_config.h.win32
*** src/include/pg_config.h.win32    30 May 2006 12:43:28 -0000    1.29
--- src/include/pg_config.h.win32    7 Jun 2006 22:19:14 -0000
***************
*** 1,72 ****
! /* $PostgreSQL: pgsql/src/include/pg_config.h.win32,v 1.29 2006/05/30 12:43:28 momjian Exp $ */

! #ifndef    pg_config_h_win32__
! #define    pg_config_h_win32__
! /*
!  * Parts of pg_config.h that you get with autoconf on other systems
   */
- #define PG_VERSION "8.2devel"
- #define PG_VERSION_STR "8.2devel (win32)"

  #define DEF_PGPORT 5432
  #define DEF_PGPORT_STR "5432"

! #define MAXIMUM_ALIGNOF 4
! #define ACCEPT_TYPE_ARG3 int

! #define MAXPGPATH 1024
! #define MEMSET_LOOP_LIMIT 1024

! #define INDEX_MAX_KEYS 32

! #define HAVE_ATEXIT
! #define HAVE_MEMMOVE

! #ifdef __BORLANDC__
! #define HAVE_RANDOM
  #endif

! #undef inline
! #define inline __inline

! #define INT64_FORMAT "%I64d"
! #define HAVE_DECL_VSNPRINTF 1

! /* use _snprintf and _vsnprintf */
  #define HAVE_DECL_SNPRINTF 1
! #define snprintf        _snprintf
  #define HAVE_DECL_VSNPRINTF 1
- #define vsnprintf       _vsnprintf

! /* defines for dynamic linking on Win32 platform */
! #ifdef __CYGWIN__

! #if __GNUC__ && ! defined (__declspec)
! #error You need egcs 1.1 or newer for compiling!
! #endif

! #ifdef BUILDING_DLL
! #define DLLIMPORT __declspec (dllexport)
! #else                            /* not BUILDING_DLL */
! #define DLLIMPORT __declspec (dllimport)
! #endif

! #elif defined(WIN32) && defined(_MSC_VER)        /* not CYGWIN */

! #if defined(_DLL)
! #define DLLIMPORT __declspec (dllexport)
! #else                            /* not _DLL */
! #define DLLIMPORT __declspec (dllimport)
! #endif

! #else                            /* not CYGWIN, not MSVC */

! #define DLLIMPORT

! #endif

! #ifndef __CYGWIN__
! #include <windows.h>
! #endif

! #endif /* pg_config_h_win32__ */
--- 1,660 ----
! /* src/include/pg_config.h.  Generated by configure.  */
! /* src/include/pg_config.h.in.  Generated from configure.in by autoheader.  */

! /* This file is generated from MingW ./configure, and with the following
!  * changes to be valid for Visual C++ (and compatible):
!  *
!  * HAVE_CBRT, HAVE_FUNCNAME_FUNC, HAVE_FUNCNAME_FUNCTION, HAVE_GETOPT,
!  * HAVE_GETOPT_H, HAVE_GETOPT_LONG, HAVE_RINT, HAVE_STRINGS_H,
!  * HAVE_STRTOLL, HAVE_STRTOULL, HAVE_STRUCT_OPTION, ENABLE_THREAD_SAFETY
!  *
!  * For now, also HAVE_IPV6
   */

+ /* Define to the type of arg 1 of 'accept' */
+ #define ACCEPT_TYPE_ARG1 unsigned int
+
+ /* Define to the type of arg 2 of 'accept' */
+ #define ACCEPT_TYPE_ARG2 struct sockaddr *
+
+ /* Define to the type of arg 3 of 'accept' */
+ #define ACCEPT_TYPE_ARG3 int
+
+ /* Define to the return type of 'accept' */
+ #define ACCEPT_TYPE_RETURN unsigned int PASCAL
+
+ /* The alignment requirement of a `double'. */
+ #define ALIGNOF_DOUBLE 8
+
+ /* The alignment requirement of a `int'. */
+ #define ALIGNOF_INT 4
+
+ /* The alignment requirement of a `long'. */
+ #define ALIGNOF_LONG 4
+
+ /* The alignment requirement of a `long long int'. */
+ #define ALIGNOF_LONG_LONG_INT 8
+
+ /* The alignment requirement of a `short'. */
+ #define ALIGNOF_SHORT 2
+
+ /* Define to the default TCP port number on which the server listens and to
+    which clients will try to connect. This can be overridden at run-time, but
+    it's convenient if your clients have the right default compiled in.
+    (--with-pgport=PORTNUM) */
  #define DEF_PGPORT 5432
+
+ /* Define to the default TCP port number as a string constant. */
  #define DEF_PGPORT_STR "5432"

! /* Define to 1 if you want National Language Support. (--enable-nls) */
! /* #undef ENABLE_NLS */

! /* Define to 1 to build client libraries as thread-safe code.
!    (--enable-thread-safety) */
! #define ENABLE_THREAD_SAFETY 1

! /* Define to 1 if getpwuid_r() takes a 5th argument. */
! /* #undef GETPWUID_R_5ARG */

! /* Define to 1 if gettimeofday() takes only 1 argument. */
! /* #undef GETTIMEOFDAY_1ARG */

! #ifdef GETTIMEOFDAY_1ARG
! # define gettimeofday(a,b) gettimeofday(a)
  #endif

! /* Define to 1 if you have the `atexit' function. */
! #define HAVE_ATEXIT 1

! /* Define to 1 if you have the `cbrt' function. */
! //#define HAVE_CBRT 1
!
! /* Define to 1 if you have the `class' function. */
! /* #undef HAVE_CLASS */
!
! /* Define to 1 if you have the `crypt' function. */
! /* #undef HAVE_CRYPT */
!
! /* Define to 1 if you have the <crypt.h> header file. */
! /* #undef HAVE_CRYPT_H */
!
! /* Define to 1 if you have the declaration of `fdatasync', and to 0 if you
!    don't. */
! #define HAVE_DECL_FDATASYNC 0
!
! /* Define to 1 if you have the declaration of `F_FULLFSYNC', and to 0 if you
!    don't. */
! #define HAVE_DECL_F_FULLFSYNC 0

! /* Define to 1 if you have the declaration of `snprintf', and to 0 if you
!    don't. */
  #define HAVE_DECL_SNPRINTF 1
!
! /* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
!    don't. */
  #define HAVE_DECL_VSNPRINTF 1

! /* Define to 1 if you have the <dld.h> header file. */
! /* #undef HAVE_DLD_H */

! /* Define to 1 if you have the `dlopen' function. */
! /* #undef HAVE_DLOPEN */

! /* Define to 1 if you have the <editline/history.h> header file. */
! /* #undef HAVE_EDITLINE_HISTORY_H */

! /* Define to 1 if you have the <editline/readline.h> header file. */
! /* #undef HAVE_EDITLINE_READLINE_H */

! /* Define to 1 if you have the <endian.h> header file. */
! /* #undef HAVE_ENDIAN_H */

! /* Define to 1 if you have the `fcvt' function. */
! #define HAVE_FCVT 1

! /* Define to 1 if you have the `fdatasync' function. */
! /* #undef HAVE_FDATASYNC */

! /* Define to 1 if you have finite(). */
! #define HAVE_FINITE 1

! /* Define to 1 if you have the `fpclass' function. */
! /* #undef HAVE_FPCLASS */
!
! /* Define to 1 if you have the `fp_class' function. */
! /* #undef HAVE_FP_CLASS */
!
! /* Define to 1 if you have the `fp_class_d' function. */
! /* #undef HAVE_FP_CLASS_D */
!
! /* Define to 1 if you have the <fp_class.h> header file. */
! /* #undef HAVE_FP_CLASS_H */
!
! /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
! /* #undef HAVE_FSEEKO */
!
! /* Define to 1 if your compiler understands __func__. */
! //#define HAVE_FUNCNAME__FUNC 1
!
! /* Define to 1 if your compiler understands __FUNCTION__. */
! #undef HAVE_FUNCNAME__FUNCTION
!
! /* Define to 1 if you have getaddrinfo(). */
! /* #undef HAVE_GETADDRINFO */
!
! /* Define to 1 if you have the `gethostbyname_r' function. */
! /* #undef HAVE_GETHOSTBYNAME_R */
!
! /* Define to 1 if you have the `getopt' function. */
! //#define HAVE_GETOPT 1
!
! /* Define to 1 if you have the <getopt.h> header file. */
! //#define HAVE_GETOPT_H 1
!
! /* Define to 1 if you have the `getopt_long' function. */
! //#define HAVE_GETOPT_LONG 1
!
! /* Define to 1 if you have the `getpeereid' function. */
! /* #undef HAVE_GETPEEREID */
!
! /* Define to 1 if you have the `getpwuid_r' function. */
! /* #undef HAVE_GETPWUID_R */
!
! /* Define to 1 if you have the `getrusage' function. */
! /* #undef HAVE_GETRUSAGE */
!
! /* Define to 1 if you have the <history.h> header file. */
! /* #undef HAVE_HISTORY_H */
!
! /* Define to 1 if you have the <ieeefp.h> header file. */
! /* #undef HAVE_IEEEFP_H */
!
! /* Define to 1 if you have the `inet_aton' function. */
! /* #undef HAVE_INET_ATON */
!
! /* Define to 1 if the system has the type `int64'. */
! /* #undef HAVE_INT64 */
!
! /* Define to 1 if the system has the type `int8'. */
! /* #undef HAVE_INT8 */
!
! /* Define to 1 if you have the <inttypes.h> header file. */
! #define HAVE_INTTYPES_H 1
!
! /* Define to 1 if you have the global variable 'int optreset'. */
! #define HAVE_INT_OPTRESET 1
!
! /* Define to 1 if you have the global variable 'int timezone'. */
! #define HAVE_INT_TIMEZONE
!
! /* Define to 1 if you have support for IPv6. */
! //#define HAVE_IPV6 1
!
! /* Define to 1 if you have isinf(). */
! #define HAVE_ISINF 1
!
! /* Define to 1 if you have the <kernel/image.h> header file. */
! /* #undef HAVE_KERNEL_IMAGE_H */
!
! /* Define to 1 if you have the <kernel/OS.h> header file. */
! /* #undef HAVE_KERNEL_OS_H */
!
! /* Define to 1 if `e_data' is member of `krb5_error'. */
! /* #undef HAVE_KRB5_ERROR_E_DATA */
!
! /* Define to 1 if `text.data' is member of `krb5_error'. */
! /* #undef HAVE_KRB5_ERROR_TEXT_DATA */
!
! /* Define to 1 if `client' is member of `krb5_ticket'. */
! /* #undef HAVE_KRB5_TICKET_CLIENT */
!
! /* Define to 1 if `enc_part2' is member of `krb5_ticket'. */
! /* #undef HAVE_KRB5_TICKET_ENC_PART2 */
!
! /* Define to 1 if you have the <langinfo.h> header file. */
! /* #undef HAVE_LANGINFO_H */
!
! /* Define to 1 if you have the <ldap.h> header file. */
! /* #undef HAVE_LDAP_H */
!
! /* Define to 1 if you have the `crypto' library (-lcrypto). */
! /* #undef HAVE_LIBCRYPTO */
!
! /* Define to 1 if you have the `eay32' library (-leay32). */
! /* #undef HAVE_LIBEAY32 */
!
! /* Define to 1 if you have the `ldap' library (-lldap). */
! /* #undef HAVE_LIBLDAP */
!
! /* Define to 1 if you have the `pam' library (-lpam). */
! /* #undef HAVE_LIBPAM */
!
! /* Define if you have a function readline library */
! /* #undef HAVE_LIBREADLINE */
!
! /* Define to 1 if you have the `ssl' library (-lssl). */
! /* #undef HAVE_LIBSSL */
!
! /* Define to 1 if you have the `ssleay32' library (-lssleay32). */
! /* #undef HAVE_LIBSSLEAY32 */
!
! /* Define to 1 if you have the `wldap32' library (-lwldap32). */
! /* #undef HAVE_LIBWLDAP32 */
!
! /* Define to 1 if you have the `z' library (-lz). */
! /* #undef HAVE_LIBZ */
!
! /* Define to 1 if constants of type 'long long int' should have the suffix LL.
!    */
! #define HAVE_LL_CONSTANTS 1
!
! /* Define to 1 if `long int' works and is 64 bits. */
! /* #undef HAVE_LONG_INT_64 */
!
! /* Define to 1 if `long long int' works and is 64 bits. */
! #define HAVE_LONG_LONG_INT_64
!
! /* Define to 1 if you have the `memmove' function. */
! #define HAVE_MEMMOVE 1
!
! /* Define to 1 if you have the <memory.h> header file. */
! #define HAVE_MEMORY_H 1
!
! /* Define to 1 if you have the <netinet/in.h> header file. */
! #define HAVE_NETINET_IN_H 1
!
! /* Define to 1 if you have the <netinet/tcp.h> header file. */
! /* #undef HAVE_NETINET_TCP_H */
!
! /* Define to 1 if you have the `on_exit' function. */
! /* #undef HAVE_ON_EXIT */
!
! /* Define to 1 if you have the <pam/pam_appl.h> header file. */
! /* #undef HAVE_PAM_PAM_APPL_H */
!
! /* Define to 1 if you have the `poll' function. */
! /* #undef HAVE_POLL */
!
! /* Define to 1 if you have the <poll.h> header file. */
! /* #undef HAVE_POLL_H */
!
! /* Define to 1 if you have the POSIX signal interface. */
! /* #undef HAVE_POSIX_SIGNALS */
!
! /* Define to 1 if you have the `pstat' function. */
! /* #undef HAVE_PSTAT */
!
! /* Define to 1 if the PS_STRINGS thing exists. */
! /* #undef HAVE_PS_STRINGS */
!
! /* Define if you have POSIX threads libraries and header files. */
! /* #undef HAVE_PTHREAD */
!
! /* Define to 1 if you have the <pwd.h> header file. */
! #define HAVE_PWD_H 1
!
! /* Define to 1 if you have the `random' function. */
! /* #undef HAVE_RANDOM */
!
! /* Define to 1 if you have the <readline.h> header file. */
! /* #undef HAVE_READLINE_H */
!
! /* Define to 1 if you have the <readline/history.h> header file. */
! /* #undef HAVE_READLINE_HISTORY_H */
!
! /* Define to 1 if you have the <readline/readline.h> header file. */
! /* #undef HAVE_READLINE_READLINE_H */
!
! /* Define to 1 if you have the `readlink' function. */
! /* #undef HAVE_READLINK */
!
! /* Define to 1 if you have the `replace_history_entry' function. */
! /* #undef HAVE_REPLACE_HISTORY_ENTRY */
!
! /* Define to 1 if you have the `rint' function. */
! /*#define HAVE_RINT 1*/
!
! /* Define to 1 if you have the global variable
!    'rl_completion_append_character'. */
! /* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
!
! /* Define to 1 if you have the `rl_completion_matches' function. */
! /* #undef HAVE_RL_COMPLETION_MATCHES */
!
! /* Define to 1 if you have the `rl_filename_completion_function' function. */
! /* #undef HAVE_RL_FILENAME_COMPLETION_FUNCTION */
!
! /* Define to 1 if you have the <security/pam_appl.h> header file. */
! /* #undef HAVE_SECURITY_PAM_APPL_H */
!
! /* Define to 1 if you have the `setproctitle' function. */
! /* #undef HAVE_SETPROCTITLE */
!
! /* Define to 1 if you have the `setsid' function. */
! /* #undef HAVE_SETSID */
!
! /* Define to 1 if you have the `sigprocmask' function. */
! /* #undef HAVE_SIGPROCMASK */
!
! /* Define to 1 if you have sigsetjmp(). */
! /* #undef HAVE_SIGSETJMP */
!
! /* Define to 1 if the system has the type `sig_atomic_t'. */
! #define HAVE_SIG_ATOMIC_T 1
!
! /* Define to 1 if you have the `snprintf' function. */
! /* #undef HAVE_SNPRINTF */
!
! /* Define to 1 if you have spinlocks. */
! #define HAVE_SPINLOCKS 1
!
! /* Define to 1 if you have the `srandom' function. */
! /* #undef HAVE_SRANDOM */
!
! /* Define to 1 if you have the <stdint.h> header file. */
! #define HAVE_STDINT_H 1
!
! /* Define to 1 if you have the <stdlib.h> header file. */
! #define HAVE_STDLIB_H 1
!
! /* Define to 1 if you have the `strdup' function. */
! #define HAVE_STRDUP 1
!
! /* Define to 1 if you have the `strerror' function. */
! #define HAVE_STRERROR 1
!
! /* Define to 1 if you have the `strerror_r' function. */
! /* #undef HAVE_STRERROR_R */
!
! /* Define to 1 if cpp supports the ANSI # stringizing operator. */
! #define HAVE_STRINGIZE 1
!
! /* Define to 1 if you have the <strings.h> header file. */
! /*#define HAVE_STRINGS_H 1 */
!
! /* Define to 1 if you have the <string.h> header file. */
! #define HAVE_STRING_H 1
!
! /* Define to 1 if you have the `strtol' function. */
! #define HAVE_STRTOL 1
!
! /* Define to 1 if you have the `strtoll' function. */
! //#define HAVE_STRTOLL 1
!
! /* Define to 1 if you have the `strtoq' function. */
! /* #undef HAVE_STRTOQ */
!
! /* Define to 1 if you have the `strtoul' function. */
! #define HAVE_STRTOUL 1
!
! /* Define to 1 if you have the `strtoull' function. */
! //#define HAVE_STRTOULL 1
!
! /* Define to 1 if you have the `strtouq' function. */
! /* #undef HAVE_STRTOUQ */
!
! /* Define to 1 if the system has the type `struct addrinfo'. */
! #define HAVE_STRUCT_ADDRINFO 1
!
! /* Define to 1 if the system has the type `struct cmsgcred'. */
! /* #undef HAVE_STRUCT_CMSGCRED */
!
! /* Define to 1 if the system has the type `struct fcred'. */
! /* #undef HAVE_STRUCT_FCRED */
!
! /* Define to 1 if the system has the type `struct option'. */
! //#define HAVE_STRUCT_OPTION 1
!
! /* Define to 1 if `sa_len' is member of `struct sockaddr'. */
! /* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
!
! /* Define to 1 if the system has the type `struct sockaddr_storage'. */
! #define HAVE_STRUCT_SOCKADDR_STORAGE 1
!
! /* Define to 1 if `ss_family' is member of `struct sockaddr_storage'. */
! #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
!
! /* Define to 1 if `ss_len' is member of `struct sockaddr_storage'. */
! /* #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */
!
! /* Define to 1 if `__ss_family' is member of `struct sockaddr_storage'. */
! /* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY */
!
! /* Define to 1 if `__ss_len' is member of `struct sockaddr_storage'. */
! /* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN */
!
! /* Define to 1 if the system has the type `struct sockaddr_un'. */
! /* #undef HAVE_STRUCT_SOCKADDR_UN */
!
! /* Define to 1 if the system has the type `struct sockcred'. */
! /* #undef HAVE_STRUCT_SOCKCRED */
!
! /* Define to 1 if `tm_zone' is member of `struct tm'. */
! /* #undef HAVE_STRUCT_TM_TM_ZONE */
!
! /* Define to 1 if you have the <SupportDefs.h> header file. */
! /* #undef HAVE_SUPPORTDEFS_H */
!
! /* Define to 1 if you have the `symlink' function. */
! #define HAVE_SYMLINK 1
!
! /* Define to 1 if you have the `sysconf' function. */
! /* #undef HAVE_SYSCONF */
!
! /* Define to 1 if you have the syslog interface. */
! /* #undef HAVE_SYSLOG */
!
! /* Define to 1 if you have the <sys/ipc.h> header file. */
! /* #undef HAVE_SYS_IPC_H */
!
! /* Define to 1 if you have the <sys/poll.h> header file. */
! /* #undef HAVE_SYS_POLL_H */
!
! /* Define to 1 if you have the <sys/pstat.h> header file. */
! /* #undef HAVE_SYS_PSTAT_H */
!
! /* Define to 1 if you have the <sys/select.h> header file. */
! /* #undef HAVE_SYS_SELECT_H */
!
! /* Define to 1 if you have the <sys/sem.h> header file. */
! /* #undef HAVE_SYS_SEM_H */
!
! /* Define to 1 if you have the <sys/shm.h> header file. */
! /* #undef HAVE_SYS_SHM_H */
!
! /* Define to 1 if you have the <sys/socket.h> header file. */
! #define HAVE_SYS_SOCKET_H 1
!
! /* Define to 1 if you have the <sys/stat.h> header file. */
! #define HAVE_SYS_STAT_H 1
!
! /* Define to 1 if you have the <sys/time.h> header file. */
! #define HAVE_SYS_TIME_H 1
!
! /* Define to 1 if you have the <sys/types.h> header file. */
! #define HAVE_SYS_TYPES_H 1
!
! /* Define to 1 if you have the <sys/un.h> header file. */
! /* #undef HAVE_SYS_UN_H */
!
! /* Define to 1 if you have the <termios.h> header file. */
! /* #undef HAVE_TERMIOS_H */
!
! /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
!    `HAVE_STRUCT_TM_TM_ZONE' instead. */
! /* #undef HAVE_TM_ZONE */
!
! /* Define to 1 if you have the `towlower' function. */
! #define HAVE_TOWLOWER 1
!
! /* Define to 1 if you have the external array `tzname'. */
! /* #undef HAVE_TZNAME */
!
! /* Define to 1 if the system has the type `uint64'. */
! /* #undef HAVE_UINT64 */
!
! /* Define to 1 if the system has the type `uint8'. */
! /* #undef HAVE_UINT8 */
!
! /* Define to 1 if the system has the type `union semun'. */
! /* #undef HAVE_UNION_SEMUN */
!
! /* Define to 1 if you have the <unistd.h> header file. */
! #define HAVE_UNISTD_H 1
!
! /* Define to 1 if you have unix sockets. */
! /* #undef HAVE_UNIX_SOCKETS */
!
! /* Define to 1 if you have the `unsetenv' function. */
! /* #undef HAVE_UNSETENV */
!
! /* Define to 1 if you have the `utime' function. */
! #define HAVE_UTIME 1
!
! /* Define to 1 if you have the `utimes' function. */
! /* #undef HAVE_UTIMES */
!
! /* Define to 1 if you have the <utime.h> header file. */
! #define HAVE_UTIME_H 1
!
! /* Define to 1 if you have the `vsnprintf' function. */
! /* #undef HAVE_VSNPRINTF */
!
! /* Define to 1 if you have the `waitpid' function. */
! /* #undef HAVE_WAITPID */
!
! /* Define to 1 if you have the <wchar.h> header file. */
! #define HAVE_WCHAR_H 1
!
! /* Define to 1 if you have the `wcstombs' function. */
! #define HAVE_WCSTOMBS 1
!
! /* Define to 1 if you have the <wctype.h> header file. */
! #define HAVE_WCTYPE_H 1
!
! /* Define to 1 if you have the <winldap.h> header file. */
! /* #undef HAVE_WINLDAP_H */
!
! /* Define to the appropriate snprintf format for 64-bit ints, if any. */
! #define INT64_FORMAT "%lld"
!
! /* Define to build with Kerberos 5 support. (--with-krb5) */
! /* #undef KRB5 */
!
! /* Define to the location of locale files. */
! /* #undef LOCALEDIR */
!
! /* Define as the maximum alignment requirement of any C data type. */
! #define MAXIMUM_ALIGNOF 8
!
! /* Define bytes to use libc memset(). */
! #define MEMSET_LOOP_LIMIT 1024
!
! /* Define to the address where bug reports for this package should be sent. */
! #define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
!
! /* Define to the full name of this package. */
! #define PACKAGE_NAME "PostgreSQL"
!
! /* Define to the full name and version of this package. */
! #define PACKAGE_STRING "PostgreSQL 8.2devel"
!
! /* Define to the one symbol short name of this package. */
! #define PACKAGE_TARNAME "postgresql"
!
! /* Define to the version of this package. */
! #define PACKAGE_VERSION "8.2devel"
!
! /* Define to the name of the default PostgreSQL service principal in Kerberos.
!    (--with-krb-srvnam=NAME) */
! #define PG_KRB_SRVNAM "postgres"
!
! /* PostgreSQL version as a string */
! #define PG_VERSION "8.2devel"
!
! /* PostgreSQL version as a number */
! #define PG_VERSION_NUM 80200
!
! /* A string containing the version number, platform, and C compiler */
! #define PG_VERSION_STR "Uninitialized version string (win32)"
!
! /* Define to the necessary symbol if this constant uses a non-standard name on
!    your system. */
! /* #undef PTHREAD_CREATE_JOINABLE */
!
! /* The size of a `size_t', as computed by sizeof. */
! #define SIZEOF_SIZE_T 4
!
! /* The size of a `unsigned long', as computed by sizeof. */
! #define SIZEOF_UNSIGNED_LONG 4
!
! /* Define to 1 if you have the ANSI C header files. */
! #define STDC_HEADERS 1
!
! /* Define to 1 if strerror_r() returns a int. */
! /* #undef STRERROR_R_INT */
!
! /* Define to 1 if your <sys/time.h> declares `struct tm'. */
! /* #undef TM_IN_SYS_TIME */
!
! /* Define to the appropriate snprintf format for unsigned 64-bit ints, if any.
!    */
! #define UINT64_FORMAT "%llu"
!
! /* Define to 1 to build with assertion checks. (--enable-cassert) */
! /* #undef USE_ASSERT_CHECKING */
!
! /* Define to 1 to build with Bonjour support. (--with-bonjour) */
! /* #undef USE_BONJOUR */
!
! /* Define to 1 if you want 64-bit integer timestamp and interval support.
!    (--enable-integer-datetimes) */
! /* #undef USE_INTEGER_DATETIMES */
!
! /* Define to 1 to build with LDAP support. (--with-ldap) */
! /* #undef USE_LDAP */
!
! /* Define to select named POSIX semaphores. */
! /* #undef USE_NAMED_POSIX_SEMAPHORES */
!
! /* Define to 1 to build with PAM support. (--with-pam) */
! /* #undef USE_PAM */
!
! /* Use replacement snprintf() functions. */
! #define USE_REPL_SNPRINTF 1
!
! /* Define to build with (Open)SSL support. (--with-openssl) */
! /* #undef USE_SSL */
!
! /* Define to select SysV-style semaphores. */
! #define USE_SYSV_SEMAPHORES 1
!
! /* Define to select SysV-style shared memory. */
! #define USE_SYSV_SHARED_MEMORY 1
!
! /* Define to select unnamed POSIX semaphores. */
! /* #undef USE_UNNAMED_POSIX_SEMAPHORES */
!
! /* Number of bits in a file offset, on hosts where this is settable. */
! /* #undef _FILE_OFFSET_BITS */
!
! /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
! /* #undef _LARGEFILE_SOURCE */
!
! /* Define for large files, on AIX-style hosts. */
! /* #undef _LARGE_FILES */
!
! /* Define to empty if `const' does not conform to ANSI C. */
! /* #undef const */
!
! /* Define as `__inline' if that's what the C compiler calls it, or to nothing
!    if it is not supported. */
! /* #undef inline */
!
! /* Define to empty if the C compiler does not understand signed types. */
! /* #undef signed */

! /* Define to empty if the keyword `volatile' does not work. Warning: valid
!    code using `volatile' can become incorrect without. Disable with care. */
! /* #undef volatile */
Index: src/include/port.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/port.h,v
retrieving revision 1.91
diff -c -c -r1.91 port.h
*** src/include/port.h    24 Apr 2006 04:03:24 -0000    1.91
--- src/include/port.h    7 Jun 2006 22:19:15 -0000
***************
*** 11,21 ****
   *-------------------------------------------------------------------------
   */

- #ifndef WIN32_CLIENT_ONLY
- /* for thread.c */
  #include <pwd.h>
  #include <netdb.h>
- #endif

  #include <ctype.h>

--- 11,18 ----
***************
*** 221,227 ****
  extern int    pgunlink(const char *path);

  /* Include this first so later includes don't see these defines */
! #ifdef WIN32_CLIENT_ONLY
  #include <io.h>
  #endif

--- 218,224 ----
  extern int    pgunlink(const char *path);

  /* Include this first so later includes don't see these defines */
! #ifdef WIN32_ONLY_COMPILER
  #include <io.h>
  #endif

***************
*** 249,258 ****

  /* open() replacement to allow delete of held files and passing
   * of special options. */
- #ifndef WIN32_CLIENT_ONLY
  extern int    win32_open(const char *, int,...);

! #define        open(a,b,...)    win32_open(a,b,##__VA_ARGS__)
  #endif

  #define popen(a,b) _popen(a,b)
--- 246,255 ----

  /* open() replacement to allow delete of held files and passing
   * of special options. */
  extern int    win32_open(const char *, int,...);

! #ifndef FRONTEND
! #define        open(a,b,c)    win32_open(a,b,c)
  #endif

  #define popen(a,b) _popen(a,b)
***************
*** 304,313 ****
  #endif

  #ifndef HAVE_INET_ATON
- #ifndef WIN32_CLIENT_ONLY
  #include <netinet/in.h>
  #include <arpa/inet.h>
- #endif
  extern int    inet_aton(const char *cp, struct in_addr * addr);
  #endif

--- 301,308 ----
Index: src/include/libpq/pqcomm.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/libpq/pqcomm.h,v
retrieving revision 1.100
diff -c -c -r1.100 pqcomm.h
*** src/include/libpq/pqcomm.h    17 May 2006 01:44:24 -0000    1.100
--- src/include/libpq/pqcomm.h    7 Jun 2006 22:19:15 -0000
***************
*** 16,36 ****
  #ifndef PQCOMM_H
  #define PQCOMM_H

- #ifdef WIN32
- #include <winsock.h>
- /* workaround for clashing defines of "ERROR" */
- #ifdef ELOG_H
- #undef ERROR
- #define ERROR    PGERROR
- #endif
- #else                            /* not WIN32 */
  #include <sys/socket.h>
  #include <netdb.h>
  #ifdef HAVE_SYS_UN_H
  #include <sys/un.h>
  #endif
  #include <netinet/in.h>
- #endif   /* not WIN32 */

  #ifdef HAVE_STRUCT_SOCKADDR_STORAGE

--- 16,27 ----
Index: src/include/port/win32.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/port/win32.h,v
retrieving revision 1.51
diff -c -c -r1.51 win32.h
*** src/include/port/win32.h    3 Mar 2006 20:52:36 -0000    1.51
--- src/include/port/win32.h    7 Jun 2006 22:19:16 -0000
***************
*** 4,21 ****
  #undef mkdir

  #undef ERROR
  #include <windows.h>
! #include <winsock.h>
  #include <process.h>
  #include <signal.h>
  #include <errno.h>
!
  #undef near

  /* Must be here to avoid conflicting with prototype in windows.h */
  #define mkdir(a,b)    mkdir(a)

-
  #define HAVE_FSYNC_WRITETHROUGH
  #define HAVE_FSYNC_WRITETHROUGH_ONLY
  #define ftruncate(a,b)    chsize(a,b)
--- 4,24 ----
  #undef mkdir

  #undef ERROR
+ #define _WINSOCKAPI_
  #include <windows.h>
! #include <winsock2.h>
! #include <ws2tcpip.h>
! #undef small
  #include <process.h>
  #include <signal.h>
  #include <errno.h>
! #include <direct.h>
! #include <sys/utime.h> /* for non-unicode version */
  #undef near

  /* Must be here to avoid conflicting with prototype in windows.h */
  #define mkdir(a,b)    mkdir(a)

  #define HAVE_FSYNC_WRITETHROUGH
  #define HAVE_FSYNC_WRITETHROUGH_ONLY
  #define ftruncate(a,b)    chsize(a,b)
***************
*** 28,34 ****
  #define USES_WINSOCK

  /* defines for dynamic linking on Win32 platform */
! #if defined(__MINGW32__) || defined(__CYGWIN__)

  #if __GNUC__ && ! defined (__declspec)
  #error You need egcs 1.1 or newer for compiling!
--- 31,37 ----
  #define USES_WINSOCK

  /* defines for dynamic linking on Win32 platform */
! #if defined(WIN32) || defined(__CYGWIN__)

  #if __GNUC__ && ! defined (__declspec)
  #error You need egcs 1.1 or newer for compiling!
***************
*** 40,58 ****
  #define DLLIMPORT __declspec (dllimport)
  #endif

- #elif defined(WIN32_CLIENT_ONLY)
-
- #if defined(_DLL)
- #define DLLIMPORT __declspec (dllexport)
- #else                            /* not _DLL */
- #define DLLIMPORT __declspec (dllimport)
- #endif
-
  #else                            /* not CYGWIN, not MSVC, not MingW */

  #define DLLIMPORT
  #endif

  /*
   *    IPC defines
   */
--- 43,54 ----
  #define DLLIMPORT __declspec (dllimport)
  #endif

  #else                            /* not CYGWIN, not MSVC, not MingW */

  #define DLLIMPORT
  #endif

+
  /*
   *    IPC defines
   */
***************
*** 175,181 ****
  #endif
  typedef long key_t;

! #ifdef WIN32_CLIENT_ONLY
  typedef int pid_t;
  #endif

--- 171,177 ----
  #endif
  typedef long key_t;

! #ifdef WIN32_ONLY_COMPILER
  typedef int pid_t;
  #endif

***************
*** 254,258 ****
  extern int    pgwin32_is_service(void);
  #endif

! /* in backend/port/win32/error.c */
  extern void _dosmaperr(unsigned long);
--- 250,286 ----
  extern int    pgwin32_is_service(void);
  #endif

! /* in port/win32error.c */
  extern void _dosmaperr(unsigned long);
+
+
+ /* Things that exist in MingW headers, but need to be added to MSVC */
+ #ifdef WIN32_ONLY_COMPILER
+ typedef long ssize_t;
+ typedef unsigned short mode_t;
+
+ #define inline __inline
+ #define __inline__ __inline
+
+ #define _S_IRWXU    (_S_IREAD | _S_IWRITE | _S_IEXEC)
+ #define _S_IXUSR    _S_IEXEC
+ #define _S_IWUSR    _S_IWRITE
+ #define _S_IRUSR    _S_IREAD
+ #define S_IRUSR        _S_IRUSR
+ #define S_IWUSR        _S_IWUSR
+ #define S_IXUSR        _S_IXUSR
+ #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+ #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+
+ #define F_OK 0
+ #define W_OK 2
+ #define R_OK 4
+
+ #define isinf(x) ((_fpclass(x) == _FPCLASS_PINF) || (_fpclass(x) == _FPCLASS_NINF))
+ #define isnan(x) _isnan(x)
+ #define finite(x) _finite(x)
+
+
+ /* Pulled from Makefile.port in mingw */
+ #define DLSUFFIX ".dll"
+ #endif
Index: src/include/storage/s_lock.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/storage/s_lock.h,v
retrieving revision 1.156
diff -c -c -r1.156 s_lock.h
*** src/include/storage/s_lock.h    19 May 2006 13:10:11 -0000    1.156
--- src/include/storage/s_lock.h    7 Jun 2006 22:19:18 -0000
***************
*** 784,789 ****
--- 784,807 ----
  #endif


+ #ifdef WIN32_ONLY_COMPILER
+ typedef LONG slock_t;
+
+ #define HAS_TEST_AND_SET
+ #define TAS(lock) (InterlockedCompareExchange(lock, 1, 0))
+
+ #define SPIN_DELAY() spin_delay()
+
+ static __forceinline void
+ spin_delay(void)
+ {
+     /* See comment for gcc code. Same code, MASM syntax */
+     __asm rep nop;
+ }
+
+ #endif
+
+
  #endif    /* !defined(HAS_TEST_AND_SET) */


Index: src/interfaces/libpq/fe-connect.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v
retrieving revision 1.332
diff -c -c -r1.332 fe-connect.c
*** src/interfaces/libpq/fe-connect.c    21 May 2006 20:19:23 -0000    1.332
--- src/interfaces/libpq/fe-connect.c    7 Jun 2006 22:19:26 -0000
***************
*** 20,28 ****
  #include <fcntl.h>
  #include <ctype.h>
  #include <time.h>
- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #ifndef HAVE_STRDUP
  #include "strdup.h"
--- 20,26 ----
Index: src/interfaces/libpq/fe-misc.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v
retrieving revision 1.127
diff -c -c -r1.127 fe-misc.c
*** src/interfaces/libpq/fe-misc.c    23 May 2006 19:28:45 -0000    1.127
--- src/interfaces/libpq/fe-misc.c    7 Jun 2006 22:19:27 -0000
***************
*** 34,43 ****
  #include <signal.h>
  #include <time.h>

- #ifndef WIN32_CLIENT_ONLY
  #include <netinet/in.h>
  #include <arpa/inet.h>
- #endif

  #ifdef WIN32
  #include "win32.h"
--- 34,41 ----
Index: src/interfaces/libpq/win32.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/win32.c,v
retrieving revision 1.16
diff -c -c -r1.16 win32.c
*** src/interfaces/libpq/win32.c    5 Mar 2006 15:59:10 -0000    1.16
--- src/interfaces/libpq/win32.c    7 Jun 2006 22:19:28 -0000
***************
*** 26,37 ****
  #define NOCRYPT

  #include <windows.h>
- #include <winsock.h>
  #include <stdio.h>
  #include "win32.h"
! #include "postgres_fe.h"
! #include "libpq-fe.h"
! #include "libpq-int.h"

  static struct WSErrorEntry
  {
--- 26,43 ----
  #define NOCRYPT

  #include <windows.h>
  #include <stdio.h>
  #include "win32.h"
!
! /* Declared here to avoid pulling in all includes, which causes name collissions */
! #ifdef ENABLE_NLS
! extern char *
! libpq_gettext(const char *msgid)
! __attribute__((format_arg(1)));
! #else
! #define libpq_gettext(x) (x)
! #endif
!

  static struct WSErrorEntry
  {
Index: src/interfaces/libpq/win32.mak
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/win32.mak,v
retrieving revision 1.36
diff -c -c -r1.36 win32.mak
*** src/interfaces/libpq/win32.mak    16 Sep 2005 18:58:48 -0000    1.36
--- src/interfaces/libpq/win32.mak    7 Jun 2006 22:19:28 -0000
***************
*** 68,73 ****
--- 68,74 ----
      -@erase "$(INTDIR)\wchar.obj"
      -@erase "$(INTDIR)\encnames.obj"
      -@erase "$(INTDIR)\pthread-win32.obj"
+     -@erase "$(INTDIR)\snprintf.obj"
      -@erase "$(OUTDIR)\$(OUTFILENAME).lib"
      -@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
      -@erase "$(OUTDIR)\libpq.res"
***************
*** 103,108 ****
--- 104,110 ----
      "$(INTDIR)\pqsignal.obj" \
      "$(INTDIR)\wchar.obj" \
      "$(INTDIR)\encnames.obj" \
+     "$(INTDIR)\snprintf.obj" \
      "$(INTDIR)\pthread-win32.obj"


***************
*** 117,123 ****
  "$(OUTDIR)" :
      if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

! CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /I. /D "FRONTEND" $(DEBUGDEF) /D\
   "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
   /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"

--- 119,125 ----
  "$(OUTDIR)" :
      if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

! CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /I "..\..\include\port\win32" /I "..\..\include\port\win32_msvc"
/I./D "FRONTEND" $(DEBUGDEF) /D\ 
   "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
   /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"

***************
*** 212,217 ****
--- 214,224 ----
      $(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
  <<

+ "$(INTDIR)\snprintf.obj" : ..\..\port\snprintf.c
+     $(CPP) @<<
+     $(CPP_PROJ) /I"." ..\..\port\snprintf.c
+ <<
+
  .c{$(CPP_OBJS)}.obj:
      $(CPP) $(CPP_PROJ) $<

Index: src/port/exec.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/exec.c,v
retrieving revision 1.41
diff -c -c -r1.41 exec.c
*** src/port/exec.c    5 Mar 2006 15:59:10 -0000    1.41
--- src/port/exec.c    7 Jun 2006 22:19:29 -0000
***************
*** 24,32 ****
  #include <pwd.h>
  #include <sys/stat.h>
  #include <sys/wait.h>
- #ifndef WIN32_CLIENT_ONLY
  #include <unistd.h>
- #endif

  #ifndef S_IRUSR                    /* XXX [TRH] should be in a header */
  #define S_IRUSR         S_IREAD
--- 24,30 ----
***************
*** 48,54 ****
  #define log_error(str, param)    (fprintf(stderr, str, param), fputc('\n', stderr))
  #endif

! #ifdef WIN32_CLIENT_ONLY
  #define getcwd(cwd,len)  GetCurrentDirectory(len, cwd)
  #endif

--- 46,52 ----
  #define log_error(str, param)    (fprintf(stderr, str, param), fputc('\n', stderr))
  #endif

! #ifdef WIN32_ONLY_COMPILER
  #define getcwd(cwd,len)  GetCurrentDirectory(len, cwd)
  #endif

Index: src/port/getaddrinfo.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/getaddrinfo.c,v
retrieving revision 1.23
diff -c -c -r1.23 getaddrinfo.c
*** src/port/getaddrinfo.c    5 Mar 2006 15:59:10 -0000    1.23
--- src/port/getaddrinfo.c    7 Jun 2006 22:19:29 -0000
***************
*** 24,46 ****
  /* This is intended to be used in both frontend and backend, so use c.h */
  #include "c.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <sys/socket.h>
  #include <netdb.h>
  #include <netinet/in.h>
  #include <arpa/inet.h>
- #endif

  #include "getaddrinfo.h"


  #ifdef WIN32
-
- #define WIN32_LEAN_AND_MEAN
-
- #include <windows.h>
-
- #if !defined(WIN32_CLIENT_ONLY)
  /*
   * The native routines may or may not exist on the Windows platform we are on,
   * so we dynamically look up the routines, and call them via function pointers.
--- 24,38 ----
***************
*** 130,136 ****
      return (getaddrinfo_ptr != NULL);
  }
  #endif
- #endif


  /*
--- 122,127 ----
***************
*** 151,157 ****
                 *psin;
      struct addrinfo hints;

! #if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)

      /*
       * If Windows has native IPv6 support, use the native Windows routine.
--- 142,148 ----
                 *psin;
      struct addrinfo hints;

! #ifdef WIN32

      /*
       * If Windows has native IPv6 support, use the native Windows routine.
***************
*** 274,280 ****
  {
      if (res)
      {
! #if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)

          /*
           * If Windows has native IPv6 support, use the native Windows routine.
--- 265,271 ----
  {
      if (res)
      {
! #ifdef WIN32

          /*
           * If Windows has native IPv6 support, use the native Windows routine.
***************
*** 337,345 ****
--- 328,338 ----
              return "Not enough memory";
  #endif
  #ifdef EAI_NODATA
+ #ifndef WIN32_ONLY_COMPILER    /* MSVC complains because another case has the same value */
          case EAI_NODATA:
              return "No host data of that type was found";
  #endif
+ #endif
  #ifdef EAI_SERVICE
          case EAI_SERVICE:
              return "Class type not found";
***************
*** 366,372 ****
              char *node, int nodelen,
              char *service, int servicelen, int flags)
  {
! #if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)

      /*
       * If Windows has native IPv6 support, use the native Windows routine.
--- 359,365 ----
              char *node, int nodelen,
              char *service, int servicelen, int flags)
  {
! #ifdef WIN32

      /*
       * If Windows has native IPv6 support, use the native Windows routine.
Index: src/port/inet_aton.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/inet_aton.c,v
retrieving revision 1.8
diff -c -c -r1.8 inet_aton.c
*** src/port/inet_aton.c    15 Oct 2005 02:49:51 -0000    1.8
--- src/port/inet_aton.c    7 Jun 2006 22:19:30 -0000
***************
*** 44,53 ****

  #include "c.h"

- #ifndef WIN32_CLIENT_ONLY
  #include <netinet/in.h>
  #include <ctype.h>
- #endif

  /*
   * Check whether "cp" is a valid ascii representation
--- 44,51 ----
Index: src/port/thread.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/thread.c,v
retrieving revision 1.32
diff -c -c -r1.32 thread.c
*** src/port/thread.c    5 Mar 2006 15:59:10 -0000    1.32
--- src/port/thread.c    7 Jun 2006 22:19:33 -0000
***************
*** 14,25 ****

  #include "c.h"

- #ifdef WIN32_CLIENT_ONLY
- #undef ERROR
- #else
  #include <pwd.h>
! #endif
! #if defined(ENABLE_THREAD_SAFETY)
  #include <pthread.h>
  #endif

--- 14,21 ----

  #include "c.h"

  #include <pwd.h>
! #if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY)
  #include <pthread.h>
  #endif

Index: src/timezone/localtime.c
===================================================================
RCS file: /cvsroot/pgsql/src/timezone/localtime.c,v
retrieving revision 1.13
diff -c -c -r1.13 localtime.c
*** src/timezone/localtime.c    9 Apr 2006 19:21:34 -0000    1.13
--- src/timezone/localtime.c    7 Jun 2006 22:19:37 -0000
***************
*** 157,163 ****
          }
          if (doaccess && access(name, R_OK) != 0)
              return -1;
!         if ((fid = open(name, O_RDONLY | PG_BINARY)) == -1)
              return -1;
      }
      {
--- 157,163 ----
          }
          if (doaccess && access(name, R_OK) != 0)
              return -1;
!         if ((fid = open(name, O_RDONLY | PG_BINARY, 0)) == -1)
              return -1;
      }
      {

В списке pgsql-patches по дате отправления:

Предыдущее
От: Robert Treat
Дата:
Сообщение: fix minor spelling issues in FAQ
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: fix minor spelling issues in FAQ