]> granicus.if.org Git - postgresql/commitdiff
Prepare code to be built by MSVC:
authorBruce Momjian <bruce@momjian.us>
Wed, 7 Jun 2006 22:24:46 +0000 (22:24 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 7 Jun 2006 22:24:46 +0000 (22:24 +0000)
o  remove many WIN32_CLIENT_ONLY defines
o  add WIN32_ONLY_COMPILER define
o  add 3rd argument to open() for portability
o  add include/port/win32_msvc directory for
   system includes

Magnus Hagander

49 files changed:
configure
configure.in
src/backend/libpq/ip.c
src/backend/port/dynloader/win32.c
src/backend/port/win32/Makefile
src/backend/postmaster/postmaster.c
src/backend/postmaster/syslogger.c
src/backend/utils/adt/float.c
src/backend/utils/fmgr/dfmgr.c
src/backend/utils/mb/encnames.c
src/bin/initdb/initdb.c
src/bin/pg_controldata/pg_controldata.c
src/bin/pg_ctl/pg_ctl.c
src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_backup_db.c
src/bin/pg_dump/pg_backup_null.c
src/bin/pg_dump/pg_backup_tar.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/bin/pg_dump/pg_restore.c
src/bin/pg_resetxlog/pg_resetxlog.c
src/bin/psql/command.c
src/bin/psql/copy.c
src/bin/psql/print.c
src/bin/psql/win32.mak
src/include/c.h
src/include/getaddrinfo.h
src/include/libpq/pqcomm.h
src/include/pg_config.h.win32
src/include/port.h
src/include/port/win32.h
src/include/port/win32_msvc/dirent.h [new file with mode: 0644]
src/include/port/win32_msvc/sys/file.h [new file with mode: 0644]
src/include/port/win32_msvc/sys/param.h [new file with mode: 0644]
src/include/port/win32_msvc/sys/time.h [new file with mode: 0644]
src/include/port/win32_msvc/unistd.h [new file with mode: 0644]
src/include/port/win32_msvc/utime.h [new file with mode: 0644]
src/include/storage/s_lock.h
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-misc.c
src/interfaces/libpq/win32.c
src/interfaces/libpq/win32.mak
src/port/dirent.c [new file with mode: 0644]
src/port/exec.c
src/port/getaddrinfo.c
src/port/inet_aton.c
src/port/thread.c
src/port/win32error.c [new file with mode: 0644]
src/timezone/localtime.c

index c7709d20e5f19eda6eeb3b4bd41e803d3faa2244..f7947ebe72e51907b695e3a9c29d0e186bb55a98 100755 (executable)
--- a/configure
+++ b/configure
@@ -15064,6 +15064,14 @@ case $LIBOBJS in
   *) 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 ae24a84b921be051e7ac5b9874aebc750b2797ee..9075690fccb1b572e0228409e6f608a9e5c564d4 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.465 2006/05/30 13:52:24 momjian Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.466 2006/06/07 22:24:43 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -994,6 +994,7 @@ AC_LIBOBJ(gettimeofday)
 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 d1cd2b152a0c3c897da49775fa6bdbe7bed36949..595c99a81b7f06810adb8ea7c7b18a3c6a52ff00 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.34 2006/03/05 15:58:27 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.35 2006/06/07 22:24:43 momjian Exp $
  *
  * This file and the IPV6 implementation were initially provided by
  * Nigel Kukard <nkukard@lbsd.net>, Linux Based Systems Design
@@ -20,7 +20,6 @@
 /* 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>
@@ -33,7 +32,6 @@
 #endif
 #include <arpa/inet.h>
 #include <sys/file.h>
-#endif
 
 #include "libpq/ip.h"
 
index c2547f5a28d7b15f8ba336a554681080e95e4c79..72d27fddcdc4d8c08f8e8e36b5f5d0294c6104d7 100644 (file)
@@ -1,7 +1,6 @@
-/* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.7 2005/10/15 02:49:23 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.8 2006/06/07 22:24:43 momjian Exp $ */
 
-#include <windows.h>
-#include <stdio.h>
+#include "postgres.h"
 
 char      *dlerror(void);
 int                    dlclose(void *handle);
index 67d6df8f0e207528984fd0477a62a57a5556e004..365d4a577d053a1525e5b293f62426065b892d48 100644 (file)
@@ -4,7 +4,7 @@
 #    Makefile for backend/port/win32
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/win32/Makefile,v 1.7 2006/04/29 20:52:56 tgl Exp $
+#    $PostgreSQL: pgsql/src/backend/port/win32/Makefile,v 1.8 2006/06/07 22:24:43 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -12,7 +12,7 @@ subdir = src/backend/port/win32
 top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
 
-OBJS = shmem.o timer.o socket.o signal.o security.o error.o
+OBJS = shmem.o timer.o socket.o signal.o security.o
 
 all: SUBSYS.o
 
index 2ee450945fd3e428fafdef8a0396a3d6226d9548..0fa564a8f51a30ef92215ddbfaf92d5bf0a94774 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.484 2006/05/19 15:15:37 alvherre Exp $
+ *       $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.485 2006/06/07 22:24:44 momjian Exp $
  *
  * NOTES
  *
@@ -1121,7 +1121,7 @@ pmdaemonize(void)
                ExitPostmaster(1);
        }
 #endif
-       i = open(NULL_DEV, O_RDWR);
+       i = open(NULL_DEV, O_RDWR, 0);
        dup2(i, 0);
        dup2(i, 1);
        dup2(i, 2);
index 4334024b843d907ac13358b2def20a75095b21ca..339f4605af25c1dcdf40020c8bba870f784f20e7 100644 (file)
@@ -18,7 +18,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.23 2006/03/05 15:58:36 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.24 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -153,7 +153,7 @@ SysLoggerMain(int argc, char *argv[])
         */
        if (redirection_done)
        {
-               int                     fd = open(NULL_DEV, O_WRONLY);
+               int                     fd = open(NULL_DEV, O_WRONLY, 0);
 
                /*
                 * The closes might look redundant, but they are not: we want to be
index b5147c9aa451ed303b8bdfd11a30fbe737f0778b..132e6a11e4588e7da29104fdc861472376c7473c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.124 2006/04/24 20:36:32 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.125 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #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 0aacf2be99549d7766f2aa884f40db4239e06744..4c50e421e571cde658d250532e18206858a86879 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.85 2006/05/31 20:58:09 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.86 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #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 f628fcd679e0cca69d902b7e2032e31bfc1e39df..3760bd78cfe0683b4d7b6547fc1cd791499567e6 100644 (file)
@@ -2,7 +2,7 @@
  * Encoding names and routines for work with it. All
  * in this file is shared bedween FE and BE.
  *
- * $PostgreSQL: pgsql/src/backend/utils/mb/encnames.c,v 1.29 2006/02/18 16:15:22 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/encnames.c,v 1.30 2006/06/07 22:24:44 momjian Exp $
  */
 #ifdef FRONTEND
 #include "postgres_fe.h"
@@ -13,9 +13,7 @@
 #include "utils/builtins.h"
 #endif
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #include "mb/pg_wchar.h"
 #include <ctype.h>
index 82743bdb0a237f9d3844c5e6bc01f2aa821a6029..343f428ddd9cd3699e0e552ec162581b36d0cf7f 100644 (file)
@@ -42,7 +42,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.116 2006/05/27 18:07:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.117 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2269,8 +2269,7 @@ setlocales(void)
 }
 
 #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);
+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 b2d0e01e02630e4b0cb81d6284b929bbd5bdbcd6..dd56ea787e6259e33a844beeb1b4e53327aef625 100644 (file)
@@ -6,7 +6,7 @@
  * copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
  * licence: BSD
  *
- * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.28 2006/04/03 23:35:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.29 2006/06/07 22:24:44 momjian Exp $
  */
 #include "postgres.h"
 
@@ -104,7 +104,7 @@ main(int argc, char *argv[])
 
        snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
 
-       if ((fd = open(ControlFilePath, O_RDONLY)) == -1)
+       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 57d7337e6b26887365f9cfdf64c14c1095bd442a..c000a46f06b0f6428b89243cd2c0cdd204317dbf 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.67 2006/03/05 15:58:50 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.68 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1159,12 +1159,12 @@ pgwin32_doRunAsService(void)
  * 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);
+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 904de34a7c7288eabeeee2d5b86e04de9c6cc4de..61e87ac28cf7e4af60dbfc2482592910c2f168ae 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.131 2006/05/28 21:13:54 tgl Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.132 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,9 +28,7 @@
 
 #include <ctype.h>
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #ifdef WIN32
 #include <io.h>
index 77c4086d3d260789bb327faca6fd31c0615a9455..19d0d5bb0537520ddd844546db2fae7feb22e746 100644 (file)
@@ -5,7 +5,7 @@
  *     Implements the basic DB functions used by the archiver.
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.70 2006/03/03 23:38:29 tgl Exp $
+ *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.71 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -15,9 +15,7 @@
 #include "pg_backup_db.h"
 #include "dumputils.h"
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #include <ctype.h>
 
index 9dd373f252e4a3c690a33807be31e2450ea85da3..deecf192b381d2f5da45903bdef53cd8ecb31183 100644 (file)
@@ -17,7 +17,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_null.c,v 1.17 2006/02/12 06:11:50 momjian Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_null.c,v 1.18 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,9 +25,7 @@
 #include "pg_backup.h"
 #include "pg_backup_archiver.h"
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>                            /* for dup */
-#endif
 
 #include "libpq/libpq-fs.h"
 
index bb490e2aefbd8a619272018a76a31e7df5f72569..5fa080b06ac6ed2225fb969fe67a5f569713283f 100644 (file)
@@ -16,7 +16,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.51 2006/05/22 11:21:54 petere Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.52 2006/06/07 22:24:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #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);
index daf7829b5112866e445b43f323d4b3ffb9e6b137..2f30b17428f90ae49e2bf4bdad81c9a25effb89d 100644 (file)
@@ -12,7 +12,7 @@
  *     by PostgreSQL
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.436 2006/05/28 21:13:54 tgl Exp $
+ *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.437 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,9 +24,7 @@
  */
 #include "postgres.h"
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #include <ctype.h>
 #ifdef ENABLE_NLS
index e57f9c5050d9fd803ccae9c4dd1e5da85ed5743b..ecbd15f28c447b036d09c7d175608289f9b56526 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.78 2006/05/31 11:02:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.79 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres_fe.h"
 
 #include <time.h>
-
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #ifdef ENABLE_NLS
 #include <locale.h>
index f9799be68b3209643a7254fd542b8bc9943faf84..e34a475051ea3694dc17a2b9fd71f011e393399e 100644 (file)
@@ -34,7 +34,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.77 2006/04/12 22:18:48 tgl Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.78 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,9 +53,7 @@
 #include <termios.h>
 #endif
 
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #include "getopt_long.h"
 
index 22232eddf553a20ba1694a2d3ef35b02f7ee3c72..7d2f295a01d55a7756fd0b7aca96bf5b6c3b6eed 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.47 2006/06/03 02:19:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.48 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -245,7 +245,7 @@ main(int argc, char *argv[])
         */
        snprintf(path, MAXPGPATH, "%s/postmaster.pid", DataDir);
 
-       if ((fd = open(path, O_RDONLY)) < 0)
+       if ((fd = open(path, O_RDONLY, 0)) < 0)
        {
                if (errno != ENOENT)
                {
@@ -347,7 +347,7 @@ ReadControlFile(void)
        char       *buffer;
        pg_crc32        crc;
 
-       if ((fd = open(XLOG_CONTROL_FILE, O_RDONLY)) < 0)
+       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 63161edd45707c60ec336d6f463b839baf2113e7..3c5bd6740f101b9d5ca1e65919fb1e759f9f1736 100644 (file)
@@ -3,12 +3,12 @@
  *
  * Copyright (c) 2000-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.168 2006/06/01 00:15:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.169 2006/06/07 22:24:45 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "command.h"
 
-#ifdef WIN32_CLIENT_ONLY               /* needed for BCC */
+#ifdef __BORLANDC__            /* needed for BCC */
 #undef mkdir
 #endif
 
 #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"
@@ -1261,10 +1259,8 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf)
        bool            error = false;
        int                     fd;
 
-#ifndef WIN32_CLIENT_ONLY
        struct stat before,
                                after;
-#endif
 
        if (filename_arg)
                fname = filename_arg;
@@ -1339,19 +1335,16 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf)
                }
        }
 
-#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));
@@ -1360,10 +1353,6 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf)
 
        if (!error && before.st_mtime != after.st_mtime)
        {
-#else
-       if (!error)
-       {
-#endif
                stream = fopen(fname, PG_BINARY_R);
                if (!stream)
                {
index ba89eb5b3892eb5255760ea7bc55da3835bfed01..abf4b6034225c214d288382319195986038bb0fd 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.64 2006/06/01 01:28:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.65 2006/06/07 22:24:45 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "copy.h"
@@ -26,7 +26,7 @@
 #include "prompt.h"
 #include "stringutils.h"
 
-#if defined(WIN32) && (!defined(__MINGW32__))
+#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 d3b70896bfe76debb5b141df16637e7375f55745..1ad04783d0c3018441c8aeca74abaec5bb67f994 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.85 2006/03/05 15:58:51 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.86 2006/06/07 22:24:45 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "common.h"
 
 #include <math.h>
 #include <signal.h>
-
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #ifndef WIN32
 #include <sys/ioctl.h>                 /* for ioctl() */
@@ -641,10 +638,10 @@ print_aligned_text(const char *title, const char *const * headers,
                for (ptr = footers; *ptr; ptr++)
                        fprintf(fout, "%s\n", *ptr);
 
-#ifndef __MINGW32__
+#ifndef WIN32
 
        /*
-        * for some reason MinGW outputs an extra newline, so this supresses it
+        * for some reason MinGW (and MSVC) outputs an extra newline, so this supresses it
         */
        fputc('\n', fout);
 #endif
index e63004d95f0264afe3d24f6db2562811e3b0de78..67b1b8e5b58956d6920ae6b4c29e1e26f24ef909 100644 (file)
@@ -28,7 +28,7 @@ REFDOCDIR= ../../../doc/src/sgml/ref
 
 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 /I ..\..\interfaces\libpq /I ..\..\include\port\win32 /I ..\..\include\port\win32_msvc \
  /I ..\pg_dump /I ..\..\backend \
  /D "HAVE_STRDUP" /D "FRONTEND"
 
@@ -57,6 +57,7 @@ CLEAN :
        -@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,6 +92,7 @@ LINK32_OBJS= \
        "$(INTDIR)\exec.obj" \
        "$(INTDIR)\getopt.obj" \
        "$(INTDIR)\getopt_long.obj" \
+       "$(INTDIR)\snprintf.obj" \
        "$(INTDIR)\path.obj" \
        "$(INTDIR)\pgstrcasecmp.obj" \
        "$(INTDIR)\sprompt.obj" \
@@ -139,6 +141,11 @@ LINK32_OBJS        = $(LINK32_OBJS) "..\..\interfaces\libpq\Release\libpqdll.lib"
     $(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 679981ea6cd86b60cd43c23eb867e978125f9786..acf5738e4ae69076589f0032d0587e3b248ff41e 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/c.h,v 1.202 2006/05/28 21:13:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/c.h,v 1.203 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "pg_config.h"
 #include "pg_config_manual.h"  /* must be after pg_config.h */
-#if !defined(WIN32) && !defined(__CYGWIN__)
+#if !defined(WIN32) && !defined(__CYGWIN__) /* win32 will include further down */
 #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"
 
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+#define        WIN32_ONLY_COMPILER
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #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
+/* 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 ec82583c9701a7a0593032d5d313bf900eca8f0e..6393ccfeae08b7362c6e0b8e125275da702f196c 100644 (file)
  *
  * Copyright (c) 2003-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.19 2006/03/05 15:58:53 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.20 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #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 */
@@ -42,7 +40,7 @@
 #define EAI_MEMORY             (-10)
 #define EAI_SYSTEM             (-11)
 #else                                                  /* WIN32 */
-#if defined(WIN32_CLIENT_ONLY)
+#ifdef WIN32_ONLY_COMPILER
 #define WSA_NOT_ENOUGH_MEMORY   (WSAENOBUFS)
 #define WSATYPE_NOT_FOUND       (WSABASEERR+109)
 #endif
index 35c1d4bca726bcc5c8bd0b7a0526bc819dcb42e1..02fa9132bf9e8b92f06e6c18229a4d1da8af9a51 100644 (file)
@@ -9,28 +9,19 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/libpq/pqcomm.h,v 1.100 2006/05/17 01:44:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/libpq/pqcomm.h,v 1.101 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #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
 
index d76b14a2dac805140320c42248ea229e85a69d0d..430ab02a2f1bf337403294c807ef0ac7b92bcdad 100644 (file)
-/* $PostgreSQL: pgsql/src/include/pg_config.h.win32,v 1.29 2006/05/30 12:43:28 momjian Exp $ */
+/* src/include/pg_config.h.  Generated by configure.  */
+/* src/include/pg_config.h.in.  Generated from configure.in by autoheader.  */
 
-#ifndef        pg_config_h_win32__
-#define        pg_config_h_win32__
-/*
- * Parts of pg_config.h that you get with autoconf on other systems
+/* 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 PG_VERSION "8.2devel"
-#define PG_VERSION_STR "8.2devel (win32)"
 
+/* 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 MAXIMUM_ALIGNOF 4
-#define ACCEPT_TYPE_ARG3 int
+/* Define to 1 if you want National Language Support. (--enable-nls) */
+/* #undef ENABLE_NLS */
 
-#define MAXPGPATH 1024
-#define MEMSET_LOOP_LIMIT 1024
+/* Define to 1 to build client libraries as thread-safe code.
+   (--enable-thread-safety) */
+#define ENABLE_THREAD_SAFETY 1
 
-#define INDEX_MAX_KEYS 32
+/* Define to 1 if getpwuid_r() takes a 5th argument. */
+/* #undef GETPWUID_R_5ARG */
 
-#define HAVE_ATEXIT
-#define HAVE_MEMMOVE
+/* Define to 1 if gettimeofday() takes only 1 argument. */
+/* #undef GETTIMEOFDAY_1ARG */
 
-#ifdef __BORLANDC__
-#define HAVE_RANDOM
+#ifdef GETTIMEOFDAY_1ARG
+# define gettimeofday(a,b) gettimeofday(a)
 #endif
 
-#undef inline
-#define inline __inline
+/* Define to 1 if you have the `atexit' function. */
+#define HAVE_ATEXIT 1
 
-#define INT64_FORMAT "%I64d"
-#define HAVE_DECL_VSNPRINTF 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
 
-/* use _snprintf and _vsnprintf */
+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+   don't. */
 #define HAVE_DECL_SNPRINTF 1
-#define snprintf        _snprintf
+
+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
+   don't. */
 #define HAVE_DECL_VSNPRINTF 1
-#define vsnprintf       _vsnprintf
 
-/* defines for dynamic linking on Win32 platform */
-#ifdef __CYGWIN__
+/* Define to 1 if you have the <dld.h> header file. */
+/* #undef HAVE_DLD_H */
 
-#if __GNUC__ && ! defined (__declspec)
-#error You need egcs 1.1 or newer for compiling!
-#endif
+/* Define to 1 if you have the `dlopen' function. */
+/* #undef HAVE_DLOPEN */
 
-#ifdef BUILDING_DLL
-#define DLLIMPORT __declspec (dllexport)
-#else                                                  /* not BUILDING_DLL */
-#define DLLIMPORT __declspec (dllimport)
-#endif
+/* Define to 1 if you have the <editline/history.h> header file. */
+/* #undef HAVE_EDITLINE_HISTORY_H */
 
-#elif defined(WIN32) && defined(_MSC_VER)              /* not CYGWIN */
+/* Define to 1 if you have the <editline/readline.h> header file. */
+/* #undef HAVE_EDITLINE_READLINE_H */
 
-#if defined(_DLL)
-#define DLLIMPORT __declspec (dllexport)
-#else                                                  /* not _DLL */
-#define DLLIMPORT __declspec (dllimport)
-#endif
+/* Define to 1 if you have the <endian.h> header file. */
+/* #undef HAVE_ENDIAN_H */
 
-#else                                                  /* not CYGWIN, not MSVC */
+/* Define to 1 if you have the `fcvt' function. */
+#define HAVE_FCVT 1
 
-#define DLLIMPORT
+/* Define to 1 if you have the `fdatasync' function. */
+/* #undef HAVE_FDATASYNC */
 
-#endif
+/* Define to 1 if you have finite(). */
+#define HAVE_FINITE 1
 
-#ifndef __CYGWIN__
-#include <windows.h>
-#endif
+/* 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 */
 
-#endif /* pg_config_h_win32__ */
+/* 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 a17ad800f034277276770f7278630070fb6b2126..b195e95c7c1aac8e743e175b7f04d7864d7a65bd 100644 (file)
@@ -6,16 +6,13 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/port.h,v 1.91 2006/04/24 04:03:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.92 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
-#ifndef WIN32_CLIENT_ONLY
-/* for thread.c */
 #include <pwd.h>
 #include <netdb.h>
-#endif
 
 #include <ctype.h>
 
@@ -221,7 +218,7 @@ extern int  pgrename(const char *from, const char *to);
 extern int     pgunlink(const char *path);
 
 /* Include this first so later includes don't see these defines */
-#ifdef WIN32_CLIENT_ONLY
+#ifdef WIN32_ONLY_COMPILER
 #include <io.h>
 #endif
 
@@ -249,10 +246,10 @@ extern bool rmtree(char *path, bool rmtopdir);
 
 /* 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__)
+#ifndef FRONTEND
+#define                open(a,b,c)     win32_open(a,b,c)
 #endif
 
 #define popen(a,b) _popen(a,b)
@@ -304,10 +301,8 @@ extern double rint(double x);
 #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
 
index 40c1365198de4859361cbf75ab1cde2e8afa5317..60ac755a15aa8807eb8ab76b153ee5339d41db46 100644 (file)
@@ -1,21 +1,24 @@
-/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.51 2006/03/03 20:52:36 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.52 2006/06/07 22:24:45 momjian Exp $ */
 
 /* undefine and redefine after #include */
 #undef mkdir
 
 #undef ERROR
+#define _WINSOCKAPI_
 #include <windows.h>
-#include <winsock.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,7 +31,7 @@
 #define USES_WINSOCK
 
 /* defines for dynamic linking on Win32 platform */
-#if defined(__MINGW32__) || defined(__CYGWIN__)
+#if defined(WIN32) || defined(__CYGWIN__)
 
 #if __GNUC__ && ! defined (__declspec)
 #error You need egcs 1.1 or newer for compiling!
 #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
  */
@@ -175,7 +171,7 @@ typedef int gid_t;
 #endif
 typedef long key_t;
 
-#ifdef WIN32_CLIENT_ONLY
+#ifdef WIN32_ONLY_COMPILER
 typedef int pid_t;
 #endif
 
@@ -254,5 +250,37 @@ extern int pgwin32_is_admin(void);
 extern int     pgwin32_is_service(void);
 #endif
 
-/* in backend/port/win32/error.c */
+/* 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
diff --git a/src/include/port/win32_msvc/dirent.h b/src/include/port/win32_msvc/dirent.h
new file mode 100644 (file)
index 0000000..42af9bd
--- /dev/null
@@ -0,0 +1,21 @@
+/*\r
+ * Headers for port/dirent.c, win32 native implementation of dirent functions\r
+ *\r
+ * $PostgreSQL: pgsql/src/include/port/win32_msvc/dirent.h,v 1.1 2006/06/07 22:24:45 momjian Exp $\r
+ */\r
+\r
+#ifndef _WIN32VC_DIRENT_H\r
+#define _WIN32VC_DIRENT_H\r
+struct dirent {\r
+       long d_ino;\r
+       unsigned short d_reclen;\r
+       unsigned short d_namlen;\r
+       char d_name[MAX_PATH];\r
+};\r
+\r
+typedef struct DIR DIR;\r
+\r
+DIR* opendir(const char *);\r
+struct dirent* readdir(DIR *);\r
+int closedir(DIR*);\r
+#endif\r
diff --git a/src/include/port/win32_msvc/sys/file.h b/src/include/port/win32_msvc/sys/file.h
new file mode 100644 (file)
index 0000000..b02d4ad
--- /dev/null
@@ -0,0 +1 @@
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/file.h,v 1.1 2006/06/07 22:24:45 momjian Exp $ */ \r
diff --git a/src/include/port/win32_msvc/sys/param.h b/src/include/port/win32_msvc/sys/param.h
new file mode 100644 (file)
index 0000000..8efec5a
--- /dev/null
@@ -0,0 +1 @@
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/param.h,v 1.1 2006/06/07 22:24:45 momjian Exp $ */ \r
diff --git a/src/include/port/win32_msvc/sys/time.h b/src/include/port/win32_msvc/sys/time.h
new file mode 100644 (file)
index 0000000..0295788
--- /dev/null
@@ -0,0 +1 @@
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/time.h,v 1.1 2006/06/07 22:24:45 momjian Exp $ */ \r
diff --git a/src/include/port/win32_msvc/unistd.h b/src/include/port/win32_msvc/unistd.h
new file mode 100644 (file)
index 0000000..b0072a0
--- /dev/null
@@ -0,0 +1 @@
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/unistd.h,v 1.1 2006/06/07 22:24:45 momjian Exp $ */ \r
diff --git a/src/include/port/win32_msvc/utime.h b/src/include/port/win32_msvc/utime.h
new file mode 100644 (file)
index 0000000..2209604
--- /dev/null
@@ -0,0 +1 @@
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/utime.h,v 1.1 2006/06/07 22:24:45 momjian Exp $ */ \r
index dff5ffc8c24157161b9d8b2ccc951b45eb010dba..23f4cc9cd4af95506ff7ec26430efb15a4914598 100644 (file)
@@ -66,7 +66,7 @@
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *       $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.156 2006/05/19 13:10:11 momjian Exp $
+ *       $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.157 2006/06/07 22:24:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -784,6 +784,24 @@ extern slock_t pg_atomic_cas(volatile slock_t *lock, slock_t with,
 #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 66347589486c8723edea79aa1b5353c3c2b8222d..74dfe3a9cf581a4a44d55d89eba9ef009bbb794f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.332 2006/05/21 20:19:23 tgl Exp $
+ *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.333 2006/06/07 22:24:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,9 +20,7 @@
 #include <fcntl.h>
 #include <ctype.h>
 #include <time.h>
-#ifndef WIN32_CLIENT_ONLY
 #include <unistd.h>
-#endif
 
 #ifndef HAVE_STRDUP
 #include "strdup.h"
index 5c113ae988de3f878646f4a663cb50b6415c849c..011e57120c031703b4f1eaf313058067dee76a73 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.127 2006/05/23 19:28:45 momjian Exp $
+ *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.128 2006/06/07 22:24:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include <signal.h>
 #include <time.h>
 
-#ifndef WIN32_CLIENT_ONLY
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#endif
 
 #ifdef WIN32
 #include "win32.h"
index 28b6a1a5bd21408ad7e0cc19bd03415f54926809..2c5a58bef143103e11d6e11b3846f6f5d943970f 100644 (file)
 #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"
+
+/* 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 3af69669972f6e9abfc2c9bca2a1e4c8640f14bf..48bf70af0b5ccf86c4630c6ea1da21aeb590c43d 100644 (file)
@@ -68,6 +68,7 @@ CLEAN :
        -@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,6 +104,7 @@ LIB32_OBJS= \
        "$(INTDIR)\pqsignal.obj" \
        "$(INTDIR)\wchar.obj" \
        "$(INTDIR)\encnames.obj" \
+       "$(INTDIR)\snprintf.obj" \
        "$(INTDIR)\pthread-win32.obj"
 
 
@@ -117,7 +119,7 @@ pg_config_paths.h: win32.mak
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
-CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /I. /D "FRONTEND" $(DEBUGDEF) /D\
+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,6 +214,11 @@ LINK32_OBJS= \
        $(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) $<
 
diff --git a/src/port/dirent.c b/src/port/dirent.c
new file mode 100644 (file)
index 0000000..3722db8
--- /dev/null
@@ -0,0 +1,108 @@
+/*-------------------------------------------------------------------------\r
+ *\r
+ * dirent.c\r
+ *       opendir/readdir/closedir for win32/msvc\r
+ *\r
+ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group\r
+ * Portions Copyright (c) 1994, Regents of the University of California\r
+ *\r
+ *\r
+ * IDENTIFICATION\r
+ *       $PostgreSQL: pgsql/src/port/dirent.c,v 1.1 2006/06/07 22:24:46 momjian Exp $\r
+ *\r
+ *-------------------------------------------------------------------------\r
+ */\r
+\r
+#include "postgres.h"\r
+#include <dirent.h>\r
+\r
+\r
+struct DIR {\r
+       char *dirname;\r
+       struct dirent ret; /* Used to return to caller */\r
+       HANDLE handle;\r
+};\r
+\r
+DIR* opendir(const char *dirname)\r
+{\r
+       DWORD attr;\r
+       DIR *d;\r
+\r
+       /* Make sure it is a directory */\r
+       attr = GetFileAttributes(dirname);\r
+       if (attr == INVALID_FILE_ATTRIBUTES) \r
+       {\r
+               errno = ENOENT;\r
+               return NULL;\r
+       }\r
+       if ((attr & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY)\r
+       {\r
+               errno = ENOTDIR;\r
+               return NULL;\r
+       }\r
+\r
+       d = malloc(sizeof(DIR));\r
+       if (!d)\r
+       {\r
+               errno = ENOMEM;\r
+               return NULL;\r
+       }\r
+       d->dirname = malloc(strlen(dirname)+4);\r
+       if (!d->dirname)\r
+       {\r
+               errno = ENOMEM;\r
+               free(d);\r
+               return NULL;\r
+       }\r
+       strcpy(d->dirname, dirname);\r
+       if (d->dirname[strlen(d->dirname)-1] != '/' &&\r
+           d->dirname[strlen(d->dirname)-1] != '\\')\r
+               strcat(d->dirname,"\\"); /* Append backslash if not already there */\r
+       strcat(d->dirname,"*");          /* Search for entries named anything */\r
+       d->handle = INVALID_HANDLE_VALUE;\r
+       d->ret.d_ino = 0; /* no inodes on win32 */\r
+       d->ret.d_reclen =  0; /* not used on win32 */\r
+\r
+       return d;\r
+}\r
+\r
+struct dirent* readdir(DIR * d)\r
+{\r
+       WIN32_FIND_DATA fd;\r
+\r
+       if (d->handle == INVALID_HANDLE_VALUE)\r
+       {\r
+               d->handle = FindFirstFile(d->dirname, &fd);\r
+               if (d->handle == INVALID_HANDLE_VALUE)\r
+               {\r
+                       errno = ENOENT;\r
+                       return NULL;\r
+               }\r
+       }\r
+       else \r
+       {\r
+               if (!FindNextFile(d->handle, &fd))\r
+               {\r
+                       if (GetLastError() == ERROR_NO_MORE_FILES)\r
+                       {\r
+                               /* No more files, force errno=0 (unlike mingw) */\r
+                               errno = 0;\r
+                               return NULL;\r
+                       }\r
+                       _dosmaperr(GetLastError());\r
+                       return NULL;\r
+               }\r
+       }\r
+       strcpy(d->ret.d_name, fd.cFileName); /* Both strings are MAX_PATH long */\r
+       d->ret.d_namlen = strlen(d->ret.d_name);\r
+       return &d->ret;\r
+}\r
+\r
+int closedir(DIR *d)\r
+{\r
+       if (d->handle != INVALID_HANDLE_VALUE)\r
+               FindClose(d->handle);\r
+       free(d->dirname);\r
+       free(d);\r
+       return 0;\r
+}\r
index 563d986ec6d4458e784f2d3e3226cc52a91b6cf3..7abc3d650b6def297797b3862e1b54a3adb751d3 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/exec.c,v 1.41 2006/03/05 15:59:10 momjian Exp $
+ *       $PostgreSQL: pgsql/src/port/exec.c,v 1.42 2006/06/07 22:24:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,9 +24,7 @@
 #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
@@ -48,7 +46,7 @@
 #define log_error(str, param)  (fprintf(stderr, str, param), fputc('\n', stderr))
 #endif
 
-#ifdef WIN32_CLIENT_ONLY
+#ifdef WIN32_ONLY_COMPILER
 #define getcwd(cwd,len)  GetCurrentDirectory(len, cwd)
 #endif
 
index 3117db052719563426ce10d94cfff4ea8d9a86af..51e31c18c06e580678e052f9d1c1430e660af857 100644 (file)
@@ -16,7 +16,7 @@
  * Copyright (c) 2003-2006, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.23 2006/03/05 15:59:10 momjian Exp $
+ *       $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.24 2006/06/07 22:24:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 /* 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.
@@ -130,7 +122,6 @@ haveNativeWindowsIPv6routines(void)
        return (getaddrinfo_ptr != NULL);
 }
 #endif
-#endif
 
 
 /*
@@ -151,7 +142,7 @@ getaddrinfo(const char *node, const char *service,
                           *psin;
        struct addrinfo hints;
 
-#if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)
+#ifdef WIN32
 
        /*
         * If Windows has native IPv6 support, use the native Windows routine.
@@ -274,7 +265,7 @@ freeaddrinfo(struct addrinfo * res)
 {
        if (res)
        {
-#if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)
+#ifdef WIN32
 
                /*
                 * If Windows has native IPv6 support, use the native Windows routine.
@@ -337,9 +328,11 @@ gai_strerror(int errcode)
                        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,7 +359,7 @@ getnameinfo(const struct sockaddr * sa, int salen,
                        char *node, int nodelen,
                        char *service, int servicelen, int flags)
 {
-#if defined(WIN32) && !defined(WIN32_CLIENT_ONLY)
+#ifdef WIN32
 
        /*
         * If Windows has native IPv6 support, use the native Windows routine.
index f5a64dbdbb53af2d20d8d850a623b1c2b274e6ea..7ea3512a6db0329651d0e0c7767775bb71875f2a 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/port/inet_aton.c,v 1.8 2005/10/15 02:49:51 momjian Exp $
+/* $PostgreSQL: pgsql/src/port/inet_aton.c,v 1.9 2006/06/07 22:24:46 momjian Exp $
  *
  *     This inet_aton() function was taken from the GNU C library and
  *     incorporated into Postgres for those systems which do not have this
 
 #include "c.h"
 
-#ifndef WIN32_CLIENT_ONLY
 #include <netinet/in.h>
 #include <ctype.h>
-#endif
 
 /*
  * Check whether "cp" is a valid ascii representation
index ed6e48a4e7b209acf6f1f63e106a95d031184ceb..def2fcfa1dac4ee60e442a213e3f01f1ff92bda2 100644 (file)
@@ -7,19 +7,15 @@
  *
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/port/thread.c,v 1.32 2006/03/05 15:59:10 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/thread.c,v 1.33 2006/06/07 22:24:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "c.h"
 
-#ifdef WIN32_CLIENT_ONLY
-#undef ERROR
-#else
 #include <pwd.h>
-#endif
-#if defined(ENABLE_THREAD_SAFETY)
+#if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY)
 #include <pthread.h>
 #endif
 
diff --git a/src/port/win32error.c b/src/port/win32error.c
new file mode 100644 (file)
index 0000000..31127b6
--- /dev/null
@@ -0,0 +1,200 @@
+/*-------------------------------------------------------------------------\r
+ *\r
+ * win32error.c\r
+ *       Map win32 error codes to errno values\r
+ *\r
+ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group\r
+ *\r
+ * IDENTIFICATION\r
+ *       $PostgreSQL: pgsql/src/port/win32error.c,v 1.1 2006/06/07 22:24:46 momjian Exp $\r
+ *\r
+ *-------------------------------------------------------------------------\r
+ */\r
+\r
+#include "postgres.h"\r
+\r
+static const struct\r
+{\r
+       DWORD           winerr;\r
+       int                     doserr;\r
+}      doserrors[] =\r
+\r
+{\r
+       {\r
+               ERROR_INVALID_FUNCTION, EINVAL\r
+       },\r
+       {\r
+               ERROR_FILE_NOT_FOUND, ENOENT\r
+       },\r
+       {\r
+               ERROR_PATH_NOT_FOUND, ENOENT\r
+       },\r
+       {\r
+               ERROR_TOO_MANY_OPEN_FILES, EMFILE\r
+       },\r
+       {\r
+               ERROR_ACCESS_DENIED, EACCES\r
+       },\r
+       {\r
+               ERROR_INVALID_HANDLE, EBADF\r
+       },\r
+       {\r
+               ERROR_ARENA_TRASHED, ENOMEM\r
+       },\r
+       {\r
+               ERROR_NOT_ENOUGH_MEMORY, ENOMEM\r
+       },\r
+       {\r
+               ERROR_INVALID_BLOCK, ENOMEM\r
+       },\r
+       {\r
+               ERROR_BAD_ENVIRONMENT, E2BIG\r
+       },\r
+       {\r
+               ERROR_BAD_FORMAT, ENOEXEC\r
+       },\r
+       {\r
+               ERROR_INVALID_ACCESS, EINVAL\r
+       },\r
+       {\r
+               ERROR_INVALID_DATA, EINVAL\r
+       },\r
+       {\r
+               ERROR_INVALID_DRIVE, ENOENT\r
+       },\r
+       {\r
+               ERROR_CURRENT_DIRECTORY, EACCES\r
+       },\r
+       {\r
+               ERROR_NOT_SAME_DEVICE, EXDEV\r
+       },\r
+       {\r
+               ERROR_NO_MORE_FILES, ENOENT\r
+       },\r
+       {\r
+               ERROR_LOCK_VIOLATION, EACCES\r
+       },\r
+       {\r
+               ERROR_SHARING_VIOLATION, EACCES\r
+       },\r
+       {\r
+               ERROR_BAD_NETPATH, ENOENT\r
+       },\r
+       {\r
+               ERROR_NETWORK_ACCESS_DENIED, EACCES\r
+       },\r
+       {\r
+               ERROR_BAD_NET_NAME, ENOENT\r
+       },\r
+       {\r
+               ERROR_FILE_EXISTS, EEXIST\r
+       },\r
+       {\r
+               ERROR_CANNOT_MAKE, EACCES\r
+       },\r
+       {\r
+               ERROR_FAIL_I24, EACCES\r
+       },\r
+       {\r
+               ERROR_INVALID_PARAMETER, EINVAL\r
+       },\r
+       {\r
+               ERROR_NO_PROC_SLOTS, EAGAIN\r
+       },\r
+       {\r
+               ERROR_DRIVE_LOCKED, EACCES\r
+       },\r
+       {\r
+               ERROR_BROKEN_PIPE, EPIPE\r
+       },\r
+       {\r
+               ERROR_DISK_FULL, ENOSPC\r
+       },\r
+       {\r
+               ERROR_INVALID_TARGET_HANDLE, EBADF\r
+       },\r
+       {\r
+               ERROR_INVALID_HANDLE, EINVAL\r
+       },\r
+       {\r
+               ERROR_WAIT_NO_CHILDREN, ECHILD\r
+       },\r
+       {\r
+               ERROR_CHILD_NOT_COMPLETE, ECHILD\r
+       },\r
+       {\r
+               ERROR_DIRECT_ACCESS_HANDLE, EBADF\r
+       },\r
+       {\r
+               ERROR_NEGATIVE_SEEK, EINVAL\r
+       },\r
+       {\r
+               ERROR_SEEK_ON_DEVICE, EACCES\r
+       },\r
+       {\r
+               ERROR_DIR_NOT_EMPTY, ENOTEMPTY\r
+       },\r
+       {\r
+               ERROR_NOT_LOCKED, EACCES\r
+       },\r
+       {\r
+               ERROR_BAD_PATHNAME, ENOENT\r
+       },\r
+       {\r
+               ERROR_MAX_THRDS_REACHED, EAGAIN\r
+       },\r
+       {\r
+               ERROR_LOCK_FAILED, EACCES\r
+       },\r
+       {\r
+               ERROR_ALREADY_EXISTS, EEXIST\r
+       },\r
+       {\r
+               ERROR_FILENAME_EXCED_RANGE, ENOENT\r
+       },\r
+       {\r
+               ERROR_NESTING_NOT_ALLOWED, EAGAIN\r
+       },\r
+       {\r
+               ERROR_NOT_ENOUGH_QUOTA, ENOMEM\r
+       }\r
+};\r
+\r
+void\r
+_dosmaperr(unsigned long e)\r
+{\r
+       int                     i;\r
+\r
+       if (e == 0)\r
+       {\r
+               errno = 0;\r
+               return;\r
+       }\r
+\r
+       for (i = 0; i < lengthof(doserrors); i++)\r
+       {\r
+               if (doserrors[i].winerr == e)\r
+               {\r
+                       errno = doserrors[i].doserr;\r
+#ifndef FRONTEND\r
+                       ereport(DEBUG5,\r
+                                       (errmsg_internal("mapped win32 error code %lu to %d",\r
+                                                                        e, errno)));\r
+#else\r
+                       fprintf(stderr, _("mapped win32 error code %lu to %d"), e, errno);\r
+#endif\r
+                       return;\r
+               }\r
+       }\r
+\r
+#ifndef FRONTEND\r
+       ereport(LOG,\r
+                       (errmsg_internal("unrecognized win32 error code: %lu",\r
+                                                        e)));\r
+#else\r
+       fprintf(stderr, _("unrecognized win32 error code: %lu"), e);\r
+#endif\r
+\r
+       errno = EINVAL;\r
+       return;\r
+}\r
index fd609aba17f419150369db1a6828bde3d1cbf26c..35fa21ef87432b1c65c317bd78926de1570a0486 100644 (file)
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.13 2006/04/09 19:21:34 tgl Exp $
+ *       $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.14 2006/06/07 22:24:46 momjian Exp $
  */
 
 /*
@@ -157,7 +157,7 @@ tzload(const char *name, struct state * sp)
                }
                if (doaccess && access(name, R_OK) != 0)
                        return -1;
-               if ((fid = open(name, O_RDONLY | PG_BINARY)) == -1)
+               if ((fid = open(name, O_RDONLY | PG_BINARY, 0)) == -1)
                        return -1;
        }
        {