Index: src/backend/access/transam/xlog.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/access/transam/xlog.c,v
retrieving revision 1.138
diff -c -r1.138 xlog.c
*** src/backend/access/transam/xlog.c	22 Mar 2004 04:16:57 -0000	1.138
--- src/backend/access/transam/xlog.c	13 Apr 2004 05:27:31 -0000
***************
*** 2830,2836 ****
  	/* This is just to allow attaching to startup process with a debugger */
  #ifdef XLOG_REPLAY_DELAY
  	if (ControlFile->state != DB_SHUTDOWNED)
! 		sleep(60);
  #endif
  
  	/*
--- 2830,2836 ----
  	/* This is just to allow attaching to startup process with a debugger */
  #ifdef XLOG_REPLAY_DELAY
  	if (ControlFile->state != DB_SHUTDOWNED)
! 		pg_usleep(60000000L);
  #endif
  
  	/*
***************
*** 3360,3366 ****
  	while (!LWLockConditionalAcquire(CheckpointLock, LW_EXCLUSIVE))
  	{
  		CHECK_FOR_INTERRUPTS();
! 		sleep(1);
  	}
  
  	/*
--- 3360,3366 ----
  	while (!LWLockConditionalAcquire(CheckpointLock, LW_EXCLUSIVE))
  	{
  		CHECK_FOR_INTERRUPTS();
! 		pg_usleep(1000000L);
  	}
  
  	/*
Index: src/backend/commands/dbcommands.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/dbcommands.c,v
retrieving revision 1.131
diff -c -r1.131 dbcommands.c
*** src/backend/commands/dbcommands.c	10 Feb 2004 01:55:25 -0000	1.131
--- src/backend/commands/dbcommands.c	13 Apr 2004 05:27:32 -0000
***************
*** 64,70 ****
--- 64,72 ----
  	char	   *alt_loc;
  	char	   *target_dir;
  	char		src_loc[MAXPGPATH];
+ #ifndef WIN32
  	char		buf[2 * MAXPGPATH + 100];
+ #endif
  	Oid			src_dboid;
  	AclId		src_owner;
  	int			src_encoding;
Index: src/backend/libpq/md5.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/libpq/md5.c,v
retrieving revision 1.23
diff -c -r1.23 md5.c
*** src/backend/libpq/md5.c	24 Mar 2004 03:44:58 -0000	1.23
--- src/backend/libpq/md5.c	13 Apr 2004 05:27:33 -0000
***************
*** 33,41 ****
  
  #ifdef FRONTEND
  #include "postgres_fe.h"
- #ifndef WIN32
  #include "libpq/crypt.h"
- #endif   /* WIN32 */
  #endif   /* FRONTEND */
  
  #ifdef MD5_ODBC
--- 33,39 ----
Index: src/backend/main/main.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/main/main.c,v
retrieving revision 1.76
diff -c -r1.76 main.c
*** src/backend/main/main.c	15 Mar 2004 16:14:26 -0000	1.76
--- src/backend/main/main.c	13 Apr 2004 05:27:33 -0000
***************
*** 50,56 ****
--- 50,58 ----
  main(int argc, char *argv[])
  {
  	int			len;
+ #ifndef WIN32
  	struct passwd *pw;
+ #endif
  	char	   *pw_name_persist;
  
  	/*
Index: src/backend/port/sysv_shmem.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/port/sysv_shmem.c,v
retrieving revision 1.32
diff -c -r1.32 sysv_shmem.c
*** src/backend/port/sysv_shmem.c	25 Feb 2004 19:41:22 -0000	1.32
--- src/backend/port/sysv_shmem.c	13 Apr 2004 05:27:33 -0000
***************
*** 259,265 ****
  		PGSharedMemoryDetach();
  		UsedShmemSegAddr = origUsedShmemSegAddr;
  #endif
! 		elog(DEBUG3,"Attaching to %x",UsedShmemSegAddr);
  		hdr = PGSharedMemoryAttach((IpcMemoryKey) UsedShmemSegID, &shmid);
  		if (hdr == NULL)
  			elog(FATAL, "could not attach to proper memory at fixed address: shmget(key=%d, addr=%p) failed: %m",
--- 259,265 ----
  		PGSharedMemoryDetach();
  		UsedShmemSegAddr = origUsedShmemSegAddr;
  #endif
! 		elog(DEBUG3,"Attaching to %p",UsedShmemSegAddr);
  		hdr = PGSharedMemoryAttach((IpcMemoryKey) UsedShmemSegID, &shmid);
  		if (hdr == NULL)
  			elog(FATAL, "could not attach to proper memory at fixed address: shmget(key=%d, addr=%p) failed: %m",
Index: src/backend/port/win32/shmem.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/port/win32/shmem.c,v
retrieving revision 1.4
diff -c -r1.4 shmem.c
*** src/backend/port/win32/shmem.c	12 Feb 2004 20:37:34 -0000	1.4
--- src/backend/port/win32/shmem.c	13 Apr 2004 05:27:34 -0000
***************
*** 22,28 ****
  int
  shmdt(const void *shmaddr)
  {
! 	if (UnmapViewOfFile(shmaddr))
  		return 0;
  	else
  		return -1;
--- 22,28 ----
  int
  shmdt(const void *shmaddr)
  {
! 	if (UnmapViewOfFile((LPCVOID*)shmaddr))
  		return 0;
  	else
  		return -1;
Index: src/backend/port/win32/timer.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/port/win32/timer.c,v
retrieving revision 1.1
diff -c -r1.1 timer.c
*** src/backend/port/win32/timer.c	18 Feb 2004 16:25:12 -0000	1.1
--- src/backend/port/win32/timer.c	13 Apr 2004 05:27:34 -0000
***************
*** 43,51 ****
  		timerHandle = CreateWaitableTimer(NULL, TRUE, NULL);
  		if (timerHandle == NULL)
  			ereport(FATAL,
! 					(errmsg_internal("failed to create waitable timer: %i",GetLastError())));
  	}
! 	
  	if (value->it_value.tv_sec == 0 &&
  		value->it_value.tv_usec == 0) {
  		/* Turn timer off */
--- 43,51 ----
  		timerHandle = CreateWaitableTimer(NULL, TRUE, NULL);
  		if (timerHandle == NULL)
  			ereport(FATAL,
! 					(errmsg_internal("failed to create waitable timer: %i",(int)GetLastError())));
  	}
! 
  	if (value->it_value.tv_sec == 0 &&
  		value->it_value.tv_usec == 0) {
  		/* Turn timer off */
***************
*** 55,65 ****
  
  	/* Negative time to SetWaitableTimer means relative time */
  	dueTime.QuadPart = -(value->it_value.tv_usec*10 + value->it_value.tv_sec*10000000L);
! 	
  	/* Turn timer on, or change timer */
! 	if (!SetWaitableTimer(timerHandle, &dueTime, 0, timer_completion, NULL, FALSE)) 
  		ereport(FATAL,
! 				(errmsg_internal("failed to set waitable timer: %i",GetLastError())));
  
  	return 0;
  }
--- 55,65 ----
  
  	/* Negative time to SetWaitableTimer means relative time */
  	dueTime.QuadPart = -(value->it_value.tv_usec*10 + value->it_value.tv_sec*10000000L);
! 
  	/* Turn timer on, or change timer */
! 	if (!SetWaitableTimer(timerHandle, &dueTime, 0, timer_completion, NULL, FALSE))
  		ereport(FATAL,
! 				(errmsg_internal("failed to set waitable timer: %i",(int)GetLastError())));
  
  	return 0;
  }
Index: src/backend/postmaster/pgstat.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/postmaster/pgstat.c,v
retrieving revision 1.66
diff -c -r1.66 pgstat.c
*** src/backend/postmaster/pgstat.c	12 Apr 2004 16:19:18 -0000	1.66
--- src/backend/postmaster/pgstat.c	13 Apr 2004 05:27:35 -0000
***************
*** 1730,1742 ****
  				{
  					if (errno == EINTR)
  						continue;
- #ifdef WIN32
- 					if (WSAGetLastError() == WSAECONNRESET) /* EOF on the pipe! (win32 socket based implementation) */
- 					{
- 						pipeEOF = true;
- 						break;
- 					}
- #endif
  					ereport(LOG,
  							(errcode_for_socket_access(),
  							 errmsg("could not read from statistics collector pipe: %m")));
--- 1730,1735 ----
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
retrieving revision 1.380
diff -c -r1.380 postmaster.c
*** src/backend/postmaster/postmaster.c	12 Apr 2004 16:19:18 -0000	1.380
--- src/backend/postmaster/postmaster.c	13 Apr 2004 05:27:38 -0000
***************
*** 314,321 ****
  void read_backend_variables(unsigned long id, Port *port);
  static bool write_backend_variables(Port *port);
  
- size_t 		ShmemBackendArraySize(void);
- void 		ShmemBackendArrayAllocation(void);
  static void	ShmemBackendArrayAdd(Backend *bn);
  static void ShmemBackendArrayRemove(pid_t pid);
  #endif
--- 314,319 ----
***************
*** 2561,2567 ****
  	 * PGOPTIONS, but it is not honored until after authentication.)
  	 */
  	if (PreAuthDelay > 0)
! 		sleep(PreAuthDelay);
  
  	/* Will exit on failure */
  	BackendInit(port);
--- 2559,2565 ----
  	 * PGOPTIONS, but it is not honored until after authentication.)
  	 */
  	if (PreAuthDelay > 0)
! 		pg_usleep(PreAuthDelay*1000000L);
  
  	/* Will exit on failure */
  	BackendInit(port);
***************
*** 3455,3462 ****
  		}
  	}
  
! 	/* FIXME: [fork/exec] some sort of error */
! 	abort();
  }
  
  static void ShmemBackendArrayRemove(pid_t pid)
--- 3453,3460 ----
  		}
  	}
  
! 	ereport(FATAL,
! 			(errmsg_internal("unable to add backend entry")));
  }
  
  static void ShmemBackendArrayRemove(pid_t pid)
***************
*** 3472,3478 ****
  		}
  	}
  
- 	/* Something stronger than WARNING here? */
  	ereport(WARNING,
  			(errmsg_internal("unable to find backend entry with pid %d",
  							 pid)));
--- 3470,3475 ----
***************
*** 3565,3572 ****
  		++win32_numChildren;
  	}
  	else
! 		/* FIXME: [fork/exec] some sort of error */
! 		abort();
  }
  
  static void win32_RemoveChild(pid_t pid)
--- 3562,3570 ----
  		++win32_numChildren;
  	}
  	else
! 		ereport(FATAL,
! 				(errmsg_internal("unable to add child entry with pid %lu",
! 								 pid)));
  }
  
  static void win32_RemoveChild(pid_t pid)
***************
*** 3588,3594 ****
  		}
  	}
  
- 	/* Something stronger than WARNING here? */
  	ereport(WARNING,
  			(errmsg_internal("unable to find child entry with pid %lu",
  							 pid)));
--- 3586,3591 ----
Index: src/backend/storage/smgr/md.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/storage/smgr/md.c,v
retrieving revision 1.103
diff -c -r1.103 md.c
*** src/backend/storage/smgr/md.c	11 Feb 2004 22:55:25 -0000	1.103
--- src/backend/storage/smgr/md.c	13 Apr 2004 05:27:39 -0000
***************
*** 607,613 ****
  {
  	sync();
  	if (IsUnderPostmaster)
! 		sleep(2);
  	sync();
  	return true;
  }
--- 607,613 ----
  {
  	sync();
  	if (IsUnderPostmaster)
! 		pg_usleep(2000000L);
  	sync();
  	return true;
  }
Index: src/backend/tcop/postgres.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/tcop/postgres.c,v
retrieving revision 1.399
diff -c -r1.399 postgres.c
*** src/backend/tcop/postgres.c	11 Apr 2004 00:54:44 -0000	1.399
--- src/backend/tcop/postgres.c	13 Apr 2004 05:27:42 -0000
***************
*** 2456,2462 ****
  				/*
  				 * wait N seconds to allow attach from a debugger
  				 */
! 				sleep(atoi(optarg));
  				break;
  
  			case 'x':
--- 2456,2462 ----
  				/*
  				 * wait N seconds to allow attach from a debugger
  				 */
! 				pg_usleep(atoi(optarg)*1000000L);
  				break;
  
  			case 'x':
Index: src/backend/utils/hash/dynahash.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/hash/dynahash.c,v
retrieving revision 1.50
diff -c -r1.50 dynahash.c
*** src/backend/utils/hash/dynahash.c	29 Dec 2003 23:54:22 -0000	1.50
--- src/backend/utils/hash/dynahash.c	13 Apr 2004 05:27:43 -0000
***************
*** 85,90 ****
--- 85,91 ----
  }
  
  #define MEM_ALLOC		DynaHashAlloc
+ #undef 	MEM_FREE	/* already in windows header files */
  #define MEM_FREE		pfree
  
  
Index: src/backend/utils/init/miscinit.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/init/miscinit.c,v
retrieving revision 1.123
diff -c -r1.123 miscinit.c
*** src/backend/utils/init/miscinit.c	10 Feb 2004 01:55:26 -0000	1.123
--- src/backend/utils/init/miscinit.c	13 Apr 2004 05:27:44 -0000
***************
*** 213,223 ****
  	 * generating funny-looking paths to individual files.
  	 */
  	newlen = strlen(new);
! 	if (newlen > 1 && new[newlen - 1] == '/'
  #ifdef WIN32
  		|| new[newlen - 1] == '\\'
  #endif
! 		)
  		new[newlen - 1] = '\0';
  
  	if (DataDir)
--- 213,223 ----
  	 * generating funny-looking paths to individual files.
  	 */
  	newlen = strlen(new);
! 	if (newlen > 1 && (new[newlen - 1] == '/'
  #ifdef WIN32
  		|| new[newlen - 1] == '\\'
  #endif
! 		))
  		new[newlen - 1] = '\0';
  
  	if (DataDir)
Index: src/bin/psql/common.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/common.h,v
retrieving revision 1.34
diff -c -r1.34 common.h
*** src/bin/psql/common.h	25 Jan 2004 03:07:22 -0000	1.34
--- src/bin/psql/common.h	13 Apr 2004 05:27:45 -0000
***************
*** 60,71 ****
   */
  extern char parse_char(char **buf);
  
- /* Used for all Win32 popen/pclose calls */
- #ifdef WIN32
- #define popen(x,y) _popen(x,y)
- #define pclose(x) _pclose(x)
- #endif
- 
  extern char *expand_tilde(char **filename);
  
  #endif   /* COMMON_H */
--- 60,65 ----
Index: src/bin/psql/copy.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/copy.c,v
retrieving revision 1.43
diff -c -r1.43 copy.c
*** src/bin/psql/copy.c	12 Apr 2004 15:58:52 -0000	1.43
--- src/bin/psql/copy.c	13 Apr 2004 05:27:46 -0000
***************
*** 26,32 ****
  #include "prompt.h"
  #include "stringutils.h"
  
! #ifdef WIN32
  #define strcasecmp(x,y) stricmp(x,y)
  #define __S_ISTYPE(mode, mask)	(((mode) & S_IFMT) == (mask))
  #define S_ISDIR(mode)	 __S_ISTYPE((mode), S_IFDIR)
--- 26,32 ----
  #include "prompt.h"
  #include "stringutils.h"
  
! #if defined(WIN32) && (!defined(__MINGW32__))
  #define strcasecmp(x,y) stricmp(x,y)
  #define __S_ISTYPE(mode, mask)	(((mode) & S_IFMT) == (mask))
  #define S_ISDIR(mode)	 __S_ISTYPE((mode), S_IFDIR)
Index: src/bin/psql/startup.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/startup.c,v
retrieving revision 1.87
diff -c -r1.87 startup.c
*** src/bin/psql/startup.c	24 Mar 2004 03:10:29 -0000	1.87
--- src/bin/psql/startup.c	13 Apr 2004 05:27:46 -0000
***************
*** 573,580 ****
  	char	   *psqlrc;
  	char	   *home;
  
! #ifdef WIN32
! #define R_OK 0
  #endif
  
  	/* Look for one in the home dir */
--- 573,580 ----
  	char	   *psqlrc;
  	char	   *home;
  
! #if defined(WIN32) && (!defined(__MINGW32__))
! #define R_OK 4
  #endif
  
  	/* Look for one in the home dir */
Index: src/bin/scripts/common.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/scripts/common.c,v
retrieving revision 1.6
diff -c -r1.6 common.c
*** src/bin/scripts/common.c	29 Nov 2003 19:52:07 -0000	1.6
--- src/bin/scripts/common.c	13 Apr 2004 05:27:47 -0000
***************
*** 35,44 ****
  	return pw->pw_name;
  #else
  	static char username[128];	/* remains after function exit */
  
! 	GetUserName(username, sizeof(username)-1);
  	return username;
! #endif	
  }
  
  
--- 35,49 ----
  	return pw->pw_name;
  #else
  	static char username[128];	/* remains after function exit */
+ 	DWORD len = sizeof(username)-1;
  
! 	if (!GetUserName(username, &len))
! 	{
! 		perror(progname);
! 		exit(1);
! 	}
  	return username;
! #endif
  }
  
  
Index: src/include/port.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/port.h,v
retrieving revision 1.24
diff -c -r1.24 port.h
*** src/include/port.h	5 Apr 2004 03:16:21 -0000	1.24
--- src/include/port.h	13 Apr 2004 05:27:47 -0000
***************
*** 48,54 ****
  #define pipewrite(a,b,c)	write(a,b,c)
  #else
  extern int pgpipe(int handles[2]);
! #define piperead(a,b,c)		recv(a,b,c,0)
  #define pipewrite(a,b,c)	send(a,b,c,0)
  #endif
  
--- 48,54 ----
  #define pipewrite(a,b,c)	write(a,b,c)
  #else
  extern int pgpipe(int handles[2]);
! extern int piperead(int s, char* buf, int len);
  #define pipewrite(a,b,c)	send(a,b,c,0)
  #endif
  
***************
*** 70,75 ****
--- 70,80 ----
  #define 	open(a,b,...)	win32_open(a,b,##__VA_ARGS__)
  #endif
  
+ #ifndef __BORLANDC__
+ #define popen(a,b) _popen(a,b)
+ #define pclose(a) _pclose(a)
+ #endif
+ 
  extern int	copydir(char *fromdir, char *todir);
  
  /* Missing rand functions */
Index: src/include/port/win32.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/port/win32.h,v
retrieving revision 1.21
diff -c -r1.21 win32.h
*** src/include/port/win32.h	12 Apr 2004 16:19:18 -0000	1.21
--- src/include/port/win32.h	13 Apr 2004 05:27:47 -0000
***************
*** 6,11 ****
--- 6,12 ----
  #undef ERROR
  #include <windows.h>
  #include <winsock.h>
+ #include <process.h>
  #undef near
  
  /* Must be here to avoid conflicting with prototype in windows.h */
***************
*** 191,204 ****
   * 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>.
--- 192,197 ----
Index: src/include/storage/ipc.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/storage/ipc.h,v
retrieving revision 1.65
diff -c -r1.65 ipc.h
*** src/include/storage/ipc.h	25 Feb 2004 19:41:23 -0000	1.65
--- src/include/storage/ipc.h	13 Apr 2004 05:27:47 -0000
***************
*** 32,35 ****
--- 32,42 ----
  extern void CreateSharedMemoryAndSemaphores(bool makePrivate,
  											int maxBackends,
  											int port);
+ 
+ #ifdef EXEC_BACKEND
+ /* postmaster.c */
+ extern size_t	ShmemBackendArraySize(void);
+ extern void		ShmemBackendArrayAllocation(void);
+ #endif
+ 
  #endif   /* IPC_H */
Index: src/interfaces/libpq/Makefile
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/Makefile,v
retrieving revision 1.100
diff -c -r1.100 Makefile
*** src/interfaces/libpq/Makefile	24 Mar 2004 03:54:16 -0000	1.100
--- src/interfaces/libpq/Makefile	13 Apr 2004 05:27:50 -0000
***************
*** 78,81 ****
  	rm -f $(DESTDIR)$(includedir)/libpq-fe.h $(DESTDIR)$(includedir_internal)/libpq-int.h $(DESTDIR)$(includedir_internal)/pqexpbuffer.h
  
  clean distclean maintainer-clean: clean-lib
! 	rm -f $(OBJS) crypt.c getaddrinfo.c inet_aton.c noblock.c snprintf.c strerror.c path.c thread.c dllist.c md5.c ip.c encnames.c wchar.c
--- 78,81 ----
  	rm -f $(DESTDIR)$(includedir)/libpq-fe.h $(DESTDIR)$(includedir_internal)/libpq-int.h $(DESTDIR)$(includedir_internal)/pqexpbuffer.h
  
  clean distclean maintainer-clean: clean-lib
! 	rm -f $(OBJS) crypt.c getaddrinfo.c inet_aton.c noblock.c snprintf.c strerror.c open.c path.c thread.c dllist.c md5.c ip.c encnames.c wchar.c
Index: src/interfaces/libpq/fe-print.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-print.c,v
retrieving revision 1.50
diff -c -r1.50 fe-print.c
*** src/interfaces/libpq/fe-print.c	9 Jan 2004 02:02:43 -0000	1.50
--- src/interfaces/libpq/fe-print.c	13 Apr 2004 05:27:50 -0000
***************
*** 183,193 ****
  				  - (po->header != 0) * 2		/* row count and newline */
  				  )))
  			{
- #ifdef WIN32
- 				fout = _popen(pagerenv, "w");
- #else
  				fout = popen(pagerenv, "w");
- #endif
  				if (fout)
  				{
  					usePipe = 1;
--- 183,189 ----
Index: src/interfaces/libpq/win32.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/win32.c,v
retrieving revision 1.8
diff -c -r1.8 win32.c
*** src/interfaces/libpq/win32.c	2 Feb 2004 00:11:31 -0000	1.8
--- src/interfaces/libpq/win32.c	13 Apr 2004 05:27:51 -0000
***************
*** 309,322 ****
  	}
  
  	if (!success)
! 		sprintf(strerrbuf, "Unknown socket error (0x%08X/%lu)", err, err);
  	else
  	{
  		strerrbuf[buflen - 1] = '\0';
  		offs = strlen(strerrbuf);
  		if (offs > (int)buflen - 64)
  			offs = buflen - 64;
! 		sprintf(strerrbuf + offs, " (0x%08X/%lu)", err, err);
  	}
  	return strerrbuf;
  }
--- 309,322 ----
  	}
  
  	if (!success)
! 		sprintf(strerrbuf, "Unknown socket error (0x%08X/%i)", err, err);
  	else
  	{
  		strerrbuf[buflen - 1] = '\0';
  		offs = strlen(strerrbuf);
  		if (offs > (int)buflen - 64)
  			offs = buflen - 64;
! 		sprintf(strerrbuf + offs, " (0x%08X/%i)", err, err);
  	}
  	return strerrbuf;
  }
Index: src/interfaces/libpq/win32.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/win32.h,v
retrieving revision 1.24
diff -c -r1.24 win32.h
*** src/interfaces/libpq/win32.h	24 Mar 2004 03:54:16 -0000	1.24
--- src/interfaces/libpq/win32.h	13 Apr 2004 05:27:51 -0000
***************
*** 22,29 ****
  #define write(a,b,c) _write(a,b,c)
  #endif
  
- #define popen(a,b) _popen(a,b)
- #define pclose(a) _pclose(a)
  #define vsnprintf(a,b,c,d) _vsnprintf(a,b,c,d)
  #define snprintf _snprintf
  
--- 22,27 ----
Index: src/port/open.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/open.c,v
retrieving revision 1.1
diff -c -r1.1 open.c
*** src/port/open.c	24 Mar 2004 03:54:16 -0000	1.1
--- src/port/open.c	13 Apr 2004 05:27:51 -0000
***************
*** 18,24 ****
  #include <errno.h>
  #include <assert.h>
  
! int openFlagsToCreateFileFlags(int openFlags)
  {
  	switch (openFlags & (O_CREAT|O_TRUNC|O_EXCL))
  	{
--- 18,25 ----
  #include <errno.h>
  #include <assert.h>
  
! static int
! openFlagsToCreateFileFlags(int openFlags)
  {
  	switch (openFlags & (O_CREAT|O_TRUNC|O_EXCL))
  	{
Index: src/port/pipe.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/pipe.c,v
retrieving revision 1.1
diff -c -r1.1 pipe.c
*** src/port/pipe.c	9 Jan 2004 04:58:09 -0000	1.1
--- src/port/pipe.c	13 Apr 2004 05:27:51 -0000
***************
*** 53,55 ****
--- 53,65 ----
  	closesocket(s);
  	return 0;
  }
+ 
+ 
+ int piperead(int s, char* buf, int len)
+ {
+ 	int ret = recv(s,buf,len,0);
+ 	if (ret < 0 && WSAGetLastError() == WSAECONNRESET)
+ 		/* EOF on the pipe! (win32 socket based implementation) */
+ 		errno = EINTR;
+ 	return ret;
+ }
Index: src/port/rand.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/rand.c,v
retrieving revision 1.1
diff -c -r1.1 rand.c
*** src/port/rand.c	2 Feb 2004 00:11:31 -0000	1.1
--- src/port/rand.c	13 Apr 2004 05:27:51 -0000
***************
*** 5,10 ****
--- 5,11 ----
   *
   *-------------------------------------------------------------------------
   */
+ #include "c.h"
  
  /*
   * Copyright (c) 1993 Martin Birgmeier
***************
*** 38,44 ****
  };
  unsigned short _rand48_add = RAND48_ADD;
  
! void
  _dorand48(unsigned short xseed[3])
  {
  	unsigned long accu;
--- 39,45 ----
  };
  unsigned short _rand48_add = RAND48_ADD;
  
! static void
  _dorand48(unsigned short xseed[3])
  {
  	unsigned long accu;
Index: src/port/sprompt.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/sprompt.c,v
retrieving revision 1.4
diff -c -r1.4 sprompt.c
*** src/port/sprompt.c	29 Nov 2003 19:52:13 -0000	1.4
--- src/port/sprompt.c	13 Apr 2004 05:27:51 -0000
***************
*** 54,61 ****
  
  #else
  #ifdef WIN32
! 	HANDLE		t;
! 	LPDWORD		t_orig;
  #endif
  #endif
  
--- 54,61 ----
  
  #else
  #ifdef WIN32
! 	HANDLE		t 		= NULL;
! 	LPDWORD		t_orig	= NULL;
  #endif
  #endif
  
