Index: src/backend/access/transam/xlog.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/access/transam/xlog.c,v
retrieving revision 1.112
diff -c -c -r1.112 xlog.c
*** src/backend/access/transam/xlog.c	21 Feb 2003 00:06:22 -0000	1.112
--- src/backend/access/transam/xlog.c	18 Apr 2003 00:48:32 -0000
***************
*** 1507,1513 ****
  	 * overwrite an existing logfile.  However, there shouldn't be one, so
  	 * rename() is an acceptable substitute except for the truly paranoid.
  	 */
! #if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__)
  	if (link(tmppath, path) < 0)
  		elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
  			 tmppath, path, log, seg);
--- 1507,1513 ----
  	 * overwrite an existing logfile.  However, there shouldn't be one, so
  	 * rename() is an acceptable substitute except for the truly paranoid.
  	 */
! #if HAVE_WORKING_LINK
  	if (link(tmppath, path) < 0)
  		elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
  			 tmppath, path, log, seg);
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
retrieving revision 1.311
diff -c -c -r1.311 postmaster.c
*** src/backend/postmaster/postmaster.c	17 Apr 2003 22:26:01 -0000	1.311
--- src/backend/postmaster/postmaster.c	18 Apr 2003 00:48:36 -0000
***************
*** 299,307 ****
  	char		path[MAXPGPATH];
  	FILE	   *fp;
  
- #ifndef __CYGWIN__
  	struct stat stat_buf;
- #endif
  
  	if (checkdir == NULL)
  	{
--- 299,305 ----
***************
*** 314,328 ****
  		ExitPostmaster(2);
  	}
  
- 	/*
- 	 * Check if the directory has group or world access.  If so, reject.
- 	 *
- 	 * XXX temporarily suppress check when on Windows, because there may not
- 	 * be proper support for Unix-y file permissions.  Need to think of a
- 	 * reasonable check to apply on Windows.
- 	 */
- #ifndef __CYGWIN__
- 
  	if (stat(checkdir, &stat_buf) == -1)
  	{
  		if (errno == ENOENT)
--- 312,317 ----
***************
*** 332,341 ****
  				 checkdir);
  	}
  
  	if (stat_buf.st_mode & (S_IRWXG | S_IRWXO))
  		elog(FATAL, "data directory %s has group or world access; permissions should be u=rwx (0700)",
  			 checkdir);
! #endif   /* !__CYGWIN__ */
  
  	/* Look for PG_VERSION before looking for pg_control */
  	ValidatePgVersion(checkdir);
--- 321,338 ----
  				 checkdir);
  	}
  
+ 	/*
+ 	 * Check if the directory has group or world access.  If so, reject.
+ 	 *
+ 	 * XXX temporarily suppress check when on Windows, because there may not
+ 	 * be proper support for Unix-y file permissions.  Need to think of a
+ 	 * reasonable check to apply on Windows.
+ 	 */
+ #if !defined(__CYGWIN__) && !defined(WIN32)
  	if (stat_buf.st_mode & (S_IRWXG | S_IRWXO))
  		elog(FATAL, "data directory %s has group or world access; permissions should be u=rwx (0700)",
  			 checkdir);
! #endif
  
  	/* Look for PG_VERSION before looking for pg_control */
  	ValidatePgVersion(checkdir);
Index: src/include/c.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/c.h,v
retrieving revision 1.137
diff -c -c -r1.137 c.h
*** src/include/c.h	6 Apr 2003 22:45:23 -0000	1.137
--- src/include/c.h	18 Apr 2003 00:48:37 -0000
***************
*** 51,57 ****
   */
  
  #include "pg_config.h"
! #include "pg_config_manual.h"
  #include "pg_config_os.h"
  #include "postgres_ext.h"
  
--- 51,57 ----
   */
  
  #include "pg_config.h"
! #include "pg_config_manual.h"	/* must be after pg_config.h */
  #include "pg_config_os.h"
  #include "postgres_ext.h"
  
***************
*** 65,74 ****
  #endif
  #include <sys/types.h>
  
- #ifdef __CYGWIN__
  #include <errno.h>
  #include <sys/fcntl.h>			/* ensure O_BINARY is available */
- #endif
  #ifdef HAVE_SUPPORTDEFS_H
  #include <SupportDefs.h>
  #endif
--- 65,72 ----
***************
*** 321,326 ****
--- 319,332 ----
  #define HAVE_INT64_TIMESTAMP
  #endif
  
+ /* Global variable holding time zone information. */
+ #ifndef HAVE_UNDERSCORE_TIMEZONE
+ #define TIMEZONE_GLOBAL timezone
+ #else
+ #define TIMEZONE_GLOBAL _timezone
+ #define tzname _tzname			/* should be in time.h? */
+ #endif
+ 
  /* sig_atomic_t is required by ANSI C, but may be missing on old platforms */
  #ifndef HAVE_SIG_ATOMIC_T
  typedef int sig_atomic_t;
***************
*** 680,686 ****
   * ----------------------------------------------------------------
   */
  
! #ifdef __CYGWIN__
  #define PG_BINARY	O_BINARY
  #define PG_BINARY_R "rb"
  #define PG_BINARY_W "wb"
--- 686,692 ----
   * ----------------------------------------------------------------
   */
  
! #if defined(__CYGWIN__) || defined(WIN32)
  #define PG_BINARY	O_BINARY
  #define PG_BINARY_R "rb"
  #define PG_BINARY_W "wb"
Index: src/include/pg_config_manual.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/pg_config_manual.h,v
retrieving revision 1.1
diff -c -c -r1.1 pg_config_manual.h
*** src/include/pg_config_manual.h	6 Apr 2003 22:45:23 -0000	1.1
--- src/include/pg_config_manual.h	18 Apr 2003 00:48:38 -0000
***************
*** 135,140 ****
--- 135,156 ----
  #endif
  
  /*
+  * Define this if your operating system supports link()
+  */
+ #if !defined(__QNX__) && !defined(__BEOS__) && \
+ 	!defined(__CYGWIN__) && !defined(WIN32)
+ # define HAVE_WORKING_LINK 1
+ #endif
+   
+ /*
+  * Define this if your operating system has _timezone rather than timezone
+  */
+ #if defined(__CYGWIN__) || defined(WIN32)
+ # define HAVE_INT_TIMEZONE		/* has int _timezone */
+ # define HAVE_UNDERSCORE_TIMEZONE 1
+ #endif
+   
+ /*
   * This is the default directory in which AF_UNIX socket files are
   * placed.  Caution: changing this risks breaking your existing client
   * applications, which are likely to continue to look in the old
Index: src/include/port/cygwin.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/port/cygwin.h,v
retrieving revision 1.1
diff -c -c -r1.1 cygwin.h
*** src/include/port/cygwin.h	21 Mar 2003 17:18:34 -0000	1.1
--- src/include/port/cygwin.h	18 Apr 2003 00:48:38 -0000
***************
*** 1,10 ****
  /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */
  
  #define HAS_TEST_AND_SET
  typedef unsigned char slock_t;
- 
- #define tzname _tzname			/* should be in time.h? */
- #define HAVE_INT_TIMEZONE		/* has int _timezone */
  
  #include <cygwin/version.h>
  
--- 1,9 ----
  /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */
  
+ #include <port/win32defs.h>
+ 
  #define HAS_TEST_AND_SET
  typedef unsigned char slock_t;
  
  #include <cygwin/version.h>
  
Index: src/include/port/win32.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/port/win32.h,v
retrieving revision 1.6
diff -c -c -r1.6 win32.h
*** src/include/port/win32.h	22 Jan 2002 19:02:40 -0000	1.6
--- src/include/port/win32.h	18 Apr 2003 00:48:38 -0000
***************
*** 1,3 ****
--- 1,7 ----
+ /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */
+ 
+ #include <port/win32defs.h>
+ 
  #define USES_WINSOCK
  #define NOFILE		  100
  
***************
*** 27,29 ****
--- 31,86 ----
  #define DLLIMPORT
  
  #endif
+ 
+ /*
+  * Supplement to <sys/types.h>.
+  */
+ #define uid_t int
+ #define gid_t int
+ #define pid_t unsigned long
+ #define ssize_t int
+ #define mode_t int
+ #define key_t long
+ #define ushort unsigned short
+ 
+ /*
+  * Supplement to <sys/stat.h>.
+  */
+ #define lstat slat
+ 
+ #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
+ #define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
+ 
+ #define S_IRUSR _S_IREAD
+ #define S_IWUSR _S_IWRITE
+ #define S_IXUSR _S_IEXEC
+ #define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
+ 
+ /*
+  * Supplement to <errno.h>.
+  */
+ #include <errno.h>
+ #undef EAGAIN
+ #undef EINTR
+ #define EINTR WSAEINTR
+ #define EAGAIN WSAEWOULDBLOCK
+ #define EMSGSIZE WSAEMSGSIZE
+ #define EAFNOSUPPORT WSAEAFNOSUPPORT
+ #define EWOULDBLOCK WSAEWOULDBLOCK
+ #define ECONNRESET WSAECONNRESET
+ #define EINPROGRESS WSAEINPROGRESS
+ 
+ /*
+  * Supplement to <math.h>.
+  */
+ #define isnan _isnan
+ #define finite _finite
+ extern double rint(double x);
+ 
+ /*
+  * Supplement to <stdio.h>.
+  */
+ #define snprintf _snprintf
+ #define vsnprintf _vsnprintf
+ 
+ 
Index: src/include/utils/datetime.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/utils/datetime.h,v
retrieving revision 1.37
diff -c -c -r1.37 datetime.h
*** src/include/utils/datetime.h	4 Apr 2003 04:50:44 -0000	1.37
--- src/include/utils/datetime.h	18 Apr 2003 00:48:38 -0000
***************
*** 216,228 ****
  } while(0)
  #endif
  
- /* Global variable holding time zone information. */
- #if defined(__CYGWIN__) || defined(N_PLAT_NLM)
- #define TIMEZONE_GLOBAL _timezone
- #else
- #define TIMEZONE_GLOBAL timezone
- #endif
- 
  /*
   * Date/time validation
   * Include check for leap year.
--- 216,221 ----
Index: src/interfaces/ecpg/include/sqlca.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/include/sqlca.h,v
retrieving revision 1.22
diff -c -c -r1.22 sqlca.h
*** src/interfaces/ecpg/include/sqlca.h	10 Mar 2003 22:28:21 -0000	1.22
--- src/interfaces/ecpg/include/sqlca.h	18 Apr 2003 00:48:39 -0000
***************
*** 2,8 ****
  #define POSTGRES_SQLCA_H
  
  #ifndef DLLIMPORT
! #ifdef __CYGWIN__
  #define DLLIMPORT __declspec (dllimport)
  #else
  #define DLLIMPORT
--- 2,8 ----
  #define POSTGRES_SQLCA_H
  
  #ifndef DLLIMPORT
! #if defined(__CYGWIN__) || defined(WIN32)
  #define DLLIMPORT __declspec (dllimport)
  #else
  #define DLLIMPORT
Index: src/interfaces/ecpg/pgtypeslib/dt.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/pgtypeslib/dt.h,v
retrieving revision 1.3
diff -c -c -r1.3 dt.h
*** src/interfaces/ecpg/pgtypeslib/dt.h	1 Apr 2003 14:37:25 -0000	1.3
--- src/interfaces/ecpg/pgtypeslib/dt.h	18 Apr 2003 00:48:39 -0000
***************
*** 216,225 ****
  #endif
  
  /* Global variable holding time zone information. */
! #if defined(__CYGWIN__) || defined(N_PLAT_NLM)
! #define TIMEZONE_GLOBAL _timezone
! #else
  #define TIMEZONE_GLOBAL timezone
  #endif
  
  /*
--- 216,226 ----
  #endif
  
  /* Global variable holding time zone information. */
! #if !defined(__CYGWIN__) && !defined(WIN32)
  #define TIMEZONE_GLOBAL timezone
+ #else
+ #define TIMEZONE_GLOBAL _timezone
+ #define tzname _tzname			/* should be in time.h? */
  #endif
  
  /*
Index: src/tools/entab/entab.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/tools/entab/entab.c,v
retrieving revision 1.11
diff -c -c -r1.11 entab.c
*** src/tools/entab/entab.c	9 Jan 2002 18:21:46 -0000	1.11
--- src/tools/entab/entab.c	18 Apr 2003 00:48:40 -0000
***************
*** 12,17 ****
--- 12,19 ----
  #include <stdlib.h>
  #include <string.h>
  
+ #include "../include/c.h"
+ 
  #define NUL				'\0'
  
  #ifndef TRUE
***************
*** 94,104 ****
  			in_file = stdin;
  		else
  		{
! #ifndef __CYGWIN__
! 			if ((in_file = fopen(*argv, "r")) == NULL)
! #else
! 			if ((in_file = fopen(*argv, "rb")) == NULL)
! #endif
  				halt("PERROR:  Can not open file %s\n", argv[0]);
  			argv++;
  		}
--- 96,102 ----
  			in_file = stdin;
  		else
  		{
! 			if ((in_file = fopen(*argv, PG_BINARY_R)) == NULL)
  				halt("PERROR:  Can not open file %s\n", argv[0]);
  			argv++;
  		}
